\doxysection{NDArray.\+hpp} \hypertarget{NDArray_8hpp_source}{}\label{NDArray_8hpp_source}\index{core/include/aare/core/NDArray.hpp@{core/include/aare/core/NDArray.hpp}} \mbox{\hyperlink{NDArray_8hpp}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}} \DoxyCodeLine{00002\ \textcolor{comment}{/*}} \DoxyCodeLine{00003\ \textcolor{comment}{Container\ holding\ image\ data,\ or\ a\ time\ series\ of\ image\ data\ in\ contigious}} \DoxyCodeLine{00004\ \textcolor{comment}{memory.}} \DoxyCodeLine{00005\ \textcolor{comment}{}} \DoxyCodeLine{00006\ \textcolor{comment}{}} \DoxyCodeLine{00007\ \textcolor{comment}{TODO!\ Add\ expression\ templates\ for\ operators}} \DoxyCodeLine{00008\ \textcolor{comment}{}} \DoxyCodeLine{00009\ \textcolor{comment}{*/}} \DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{NDView_8hpp}{aare/core/NDView.hpp}}"{}}} \DoxyCodeLine{00011\ } \DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00019\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00020\ } \DoxyCodeLine{00021\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespaceaare}{aare}}\ \{} \DoxyCodeLine{00022\ } \DoxyCodeLine{00023\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim\ =\ 2>\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \{} \DoxyCodeLine{00024\ \ \ \textcolor{keyword}{public}:} \DoxyCodeLine{00025\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a41d9f4d28c02f18b60a1fa297249559d}{NDArray}}()\ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(0),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(nullptr)\{\};} \DoxyCodeLine{00026\ } \DoxyCodeLine{00027\ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classaare_1_1NDArray_a2e965c4b7501e355b3cbd2bd3b33f32f}{NDArray}}(std::array\ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}})} \DoxyCodeLine{00028\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),} \DoxyCodeLine{00029\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(std::accumulate(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.\mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}}(),\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.\mbox{\hyperlink{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}{end}}(),\ 1,\ std::multiplies())),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(new\ T[\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}])\{\};} \DoxyCodeLine{00030\ } \DoxyCodeLine{00031\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a5f2e568908401ef19e82f63379e80d97}{NDArray}}(std::array\ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}},\ T\ \mbox{\hyperlink{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}{value}})\ :\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}})\ \{\ this-\/>\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{operator=}}(value);\ \}} \DoxyCodeLine{00032\ } \DoxyCodeLine{00033\ \ \ \ \ \textcolor{comment}{/*\ When\ constructing\ from\ a\ NDView\ we\ need\ to\ copy\ the\ data\ since}} \DoxyCodeLine{00034\ \textcolor{comment}{\ \ \ \ NDArray\ expect\ to\ own\ its\ data,\ and\ span\ is\ just\ a\ view*/}} \DoxyCodeLine{00035\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a04cbc1cc0ba2aaac434b43674b0f820e}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}})\ :\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}.\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}())\ \{} \DoxyCodeLine{00036\ \ \ \ \ \ \ \ \ std::copy(\mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}.begin(),\ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}.end(),\ \mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}}());} \DoxyCodeLine{00037\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}NDArray(NDView\ span)\(\backslash\)n"{});}} \DoxyCodeLine{00038\ \ \ \ \ \}} \DoxyCodeLine{00039\ } \DoxyCodeLine{00040\ \ \ \ \ \textcolor{comment}{//\ Move\ constructor}} \DoxyCodeLine{00041\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a804d1971ae1fc08375ec4bad36a42fe7}{NDArray}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\&other)} \DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(nullptr)\ \{} \DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ =\ other.data\_;} \DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ other.reset();} \DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}NDArray(NDArray\ \&\&other)\(\backslash\)n"{});}} \DoxyCodeLine{00046\ \ \ \ \ \}} \DoxyCodeLine{00047\ } \DoxyCodeLine{00048\ \ \ \ \ \textcolor{comment}{//\ Copy\ constructor}} \DoxyCodeLine{00049\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a1485287520ba5919ebb4fa2bc84b3a67}{NDArray}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)} \DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}(\mbox{\hyperlink{namespaceaare_a737039de5f8de78a691a40b9ceb47b64}{c\_strides}}(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})),\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}(other.\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}),\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}(new\ T[\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}])\ \{} \DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ std::copy(other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}},\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ +\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}},\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}});} \DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ fmt::print("{}NDArray(const\ NDArray\ \&other)\(\backslash\)n"{});}} \DoxyCodeLine{00053\ \ \ \ \ \}} \DoxyCodeLine{00054\ } \DoxyCodeLine{00055\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_a702d2a7566dd9796eb891d043159fd41}{\string~NDArray}}()\ \{\ \textcolor{keyword}{delete}[]\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};\ \}} \DoxyCodeLine{00056\ } \DoxyCodeLine{00057\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDArray_a3241eee2a316d350390c3b9a2e3ba091}{begin}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};\ \}} \DoxyCodeLine{00058\ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDArray_aeac1405793b07e8433b53f1e04740ec8}{end}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ +\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ \}} \DoxyCodeLine{00059\ } \DoxyCodeLine{00060\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classaare_1_1NDArray_a0574380e6b0f3d77a8364c942123c24a}{value\_type}}\ =\ T;} \DoxyCodeLine{00061\ } \DoxyCodeLine{00062\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{operator=}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\&other);\ \ \ \ \ \ \textcolor{comment}{//\ Move\ assign}} \DoxyCodeLine{00063\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a713fff54cdec54f27ec92c1f317a46c7}{operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);\ \textcolor{comment}{//\ Copy\ assign}} \DoxyCodeLine{00064\ } \DoxyCodeLine{00065\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{operator+}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00066\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{operator+=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00067\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{operator-\/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00068\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{operator-\/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00069\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{operator*}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00070\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{operator*=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00071\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{operator/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00072\ \ \ \ \ \textcolor{comment}{//\ NDArray\&\ operator/=(const\ NDArray\&\ other);}} \DoxyCodeLine{00073\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ V>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}{operator/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ check\ shape}} \DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}())\ \{} \DoxyCodeLine{00076\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ ++i)\ \{} \DoxyCodeLine{00077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]\ /=\ other(i);} \DoxyCodeLine{00078\ \ \ \ \ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00079\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00080\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} \DoxyCodeLine{00081\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ NDArray\ must\ match"{}}));} \DoxyCodeLine{00082\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00083\ \ \ \ \ \}} \DoxyCodeLine{00084\ } \DoxyCodeLine{00085\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}{operator>}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other);} \DoxyCodeLine{00086\ } \DoxyCodeLine{00087\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \textcolor{keyword}{const};} \DoxyCodeLine{00088\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}{operator!=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \textcolor{keyword}{const};} \DoxyCodeLine{00089\ } \DoxyCodeLine{00090\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a5f249dd42235efcf858caca096300d02}{operator=}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00091\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aa15fe27ef06f8a230345161990ce8381}{operator+=}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00092\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a86042f9185412e1d68422765d56ce769}{operator+}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00093\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_ad65261a50424d112852f046426c66267}{operator-\/=}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00094\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae8fcc0b6cb14d353286ffdf2c914200f}{operator-\/}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00095\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_afe950d8cf1bdc97d450f912d1d903c09}{operator*=}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00096\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a2d6d56700f622c3175b9b82f043c3b94}{operator*}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00097\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a8658f5217fcd0ac6f6900b4f013aed16}{operator/=}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00098\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a6a69a2fce0631e9ef9b1587e75cf1568}{operator/}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00099\ } \DoxyCodeLine{00100\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}{operator\&=}}(\textcolor{keyword}{const}\ T\ \&);} \DoxyCodeLine{00101\ } \DoxyCodeLine{00102\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_af36c03e7a91fe932d60739d5ea30f1f2}{sqrt}}()\ \{} \DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ ++i)\ \{} \DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]\ =\ std::sqrt(\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]);} \DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00106\ \ \ \ \ \}} \DoxyCodeLine{00107\ } \DoxyCodeLine{00108\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}{operator++}}();\ \textcolor{comment}{//\ pre\ inc}} \DoxyCodeLine{00109\ } \DoxyCodeLine{00110\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T\ \&>::type\ \textcolor{keyword}{operator}()(Ix...\ index)\ \{} \DoxyCodeLine{00111\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}},\ index...)];} \DoxyCodeLine{00112\ \ \ \ \ \}} \DoxyCodeLine{00113\ } \DoxyCodeLine{00114\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T\ \&>::type\ \textcolor{keyword}{operator}()(Ix...\ index)\ \textcolor{keyword}{const}\ \{} \DoxyCodeLine{00115\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}},\ index...)];} \DoxyCodeLine{00116\ \ \ \ \ \}} \DoxyCodeLine{00117\ } \DoxyCodeLine{00118\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}...\ Ix>\ \textcolor{keyword}{typename}\ std::enable\_if<\textcolor{keyword}{sizeof}...(Ix)\ ==\ Ndim,\ T>::type\ \mbox{\hyperlink{classaare_1_1NDArray_ad8f804893325ae1553d33accec070e92}{value}}(Ix...\ index)\ \{} \DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[\mbox{\hyperlink{namespaceaare_a45ca88f1c8c15d6e4d08b14e21a3e579}{element\_offset}}(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}},\ index...)];} \DoxyCodeLine{00120\ \ \ \ \ \}} \DoxyCodeLine{00121\ } \DoxyCodeLine{00122\ \ \ \ \ T\ \&\mbox{\hyperlink{classaare_1_1NDArray_a8d75984e7f384c4c9d25bc04c6c14983}{operator()}}(\textcolor{keywordtype}{int}\ i)\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];\ \}} \DoxyCodeLine{00123\ \ \ \ \ \textcolor{keyword}{const}\ T\ \&\mbox{\hyperlink{classaare_1_1NDArray_adf800cbb478a4f24ae24026034bafd43}{operator()}}(\textcolor{keywordtype}{int}\ i)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];\ \}} \DoxyCodeLine{00124\ } \DoxyCodeLine{00125\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDArray_a77b3ca3e85d5a3e394248fdaab01c5a5}{data}}()\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};\ \}} \DoxyCodeLine{00126\ \ \ \ \ std::byte\ *\mbox{\hyperlink{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}{buffer}}()\ \{\ \textcolor{keywordflow}{return}\ \textcolor{keyword}{reinterpret\_cast<}std::byte\ *\textcolor{keyword}{>}(\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}});\ \}} \DoxyCodeLine{00127\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}{size}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};\ \}} \DoxyCodeLine{00128\ \ \ \ \ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classaare_1_1NDArray_ab1f9c68ddce8440f1fc220cbc1d865fc}{total\_bytes}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}\ *\ \textcolor{keyword}{sizeof}(T);\ \}} \DoxyCodeLine{00129\ \ \ \ \ std::array\ \mbox{\hyperlink{classaare_1_1NDArray_a6dfa3b12cb66147effe2a42435dd346d}{shape}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}};\ \}} \DoxyCodeLine{00130\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDArray_af765f5cb619ed79d44a000572b265589}{shape}}(ssize\_t\ i)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept}\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}[i];\ \}} \DoxyCodeLine{00131\ \ \ \ \ std::array\ \mbox{\hyperlink{classaare_1_1NDArray_a07369722ffea061203bfbfd4479c05e9}{strides}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};\ \}} \DoxyCodeLine{00132\ \ \ \ \ std::array\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}}()\ const\ noexcept\ \{} \DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}}\ =\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};} \DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ \&val\ :\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}})} \DoxyCodeLine{00135\ \ \ \ \ \ \ \ \ \ \ \ \ val\ *=\ \textcolor{keyword}{sizeof}(T);} \DoxyCodeLine{00136\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDArray_a2ab19fc488009d3fce95fcf5bff6b10a}{byte\_strides}};} \DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ return\ strides\_;}} \DoxyCodeLine{00138\ \ \ \ \ \}} \DoxyCodeLine{00139\ } \DoxyCodeLine{00140\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\ \mbox{\hyperlink{classaare_1_1NDArray_ac5ffe1a4b9dde8f2ec6dba021951c922}{span}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classaare_1_1NDView}{NDView}}\{\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}},\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}\};\ \}} \DoxyCodeLine{00141\ } \DoxyCodeLine{00142\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}{Print}}();} \DoxyCodeLine{00143\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}{Print\_all}}();} \DoxyCodeLine{00144\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}{Print\_some}}();} \DoxyCodeLine{00145\ } \DoxyCodeLine{00146\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a98d5740082a649135587590dbbaa42e2}{reset}}()\ \{} \DoxyCodeLine{00147\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ =\ \textcolor{keyword}{nullptr};} \DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}}\ =\ 0;} \DoxyCodeLine{00149\ \ \ \ \ \ \ \ \ std::fill(\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.begin(),\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}}.end(),\ 0);} \DoxyCodeLine{00150\ \ \ \ \ \ \ \ \ std::fill(\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}.begin(),\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}}.end(),\ 0);} \DoxyCodeLine{00151\ \ \ \ \ \}} \DoxyCodeLine{00152\ } \DoxyCodeLine{00153\ \ \ \textcolor{keyword}{private}:} \DoxyCodeLine{00154\ \ \ \ \ std::array\ \mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}};} \DoxyCodeLine{00155\ \ \ \ \ std::array\ \mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};} \DoxyCodeLine{00156\ \ \ \ \ ssize\_t\ \mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};} \DoxyCodeLine{00157\ \ \ \ \ T\ *\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};} \DoxyCodeLine{00158\ \};} \DoxyCodeLine{00159\ } \DoxyCodeLine{00160\ \textcolor{comment}{//\ Move\ assign}} \DoxyCodeLine{00161\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{NDArray::operator=}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\&other)\ \{} \DoxyCodeLine{00162\ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{this}\ !=\ \&other)\ \{} \DoxyCodeLine{00163\ \ \ \ \ \ \ \ \ \textcolor{keyword}{delete}[]\ data\_;} \DoxyCodeLine{00164\ \ \ \ \ \ \ \ \ data\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}};} \DoxyCodeLine{00165\ \ \ \ \ \ \ \ \ shape\_\ =\ other.shape\_;} \DoxyCodeLine{00166\ \ \ \ \ \ \ \ \ size\_\ =\ other.size\_;} \DoxyCodeLine{00167\ \ \ \ \ \ \ \ \ strides\_\ =\ other.strides\_;} \DoxyCodeLine{00168\ \ \ \ \ \ \ \ \ other.reset();} \DoxyCodeLine{00169\ \ \ \ \ \}} \DoxyCodeLine{00170\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00171\ \}} \DoxyCodeLine{00172\ } \DoxyCodeLine{00173\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{NDArray::operator+}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00174\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result(*\textcolor{keyword}{this});} \DoxyCodeLine{00175\ \ \ \ \ result\ +=\ other;} \DoxyCodeLine{00176\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00177\ \}} \DoxyCodeLine{00178\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{NDArray::operator+=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00179\ \ \ \ \ \textcolor{comment}{//\ check\ shape}} \DoxyCodeLine{00180\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{} \DoxyCodeLine{00181\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{} \DoxyCodeLine{00182\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ +=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];} \DoxyCodeLine{00183\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00184\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00185\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} \DoxyCodeLine{00186\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));} \DoxyCodeLine{00187\ \ \ \ \ \}} \DoxyCodeLine{00188\ \}} \DoxyCodeLine{00189\ } \DoxyCodeLine{00190\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{NDArray::operator-\/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00191\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\{*\textcolor{keyword}{this}\};} \DoxyCodeLine{00192\ \ \ \ \ result\ -\/=\ other;} \DoxyCodeLine{00193\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00194\ \}} \DoxyCodeLine{00195\ } \DoxyCodeLine{00196\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{NDArray::operator-\/=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00197\ \ \ \ \ \textcolor{comment}{//\ check\ shape}} \DoxyCodeLine{00198\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{} \DoxyCodeLine{00199\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{} \DoxyCodeLine{00200\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ -\/=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];} \DoxyCodeLine{00201\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00202\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00203\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} \DoxyCodeLine{00204\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));} \DoxyCodeLine{00205\ \ \ \ \ \}} \DoxyCodeLine{00206\ \}} \DoxyCodeLine{00207\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{NDArray::operator*}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00208\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};} \DoxyCodeLine{00209\ \ \ \ \ result\ *=\ other;} \DoxyCodeLine{00210\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00211\ \}} \DoxyCodeLine{00212\ } \DoxyCodeLine{00213\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{NDArray::operator*=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00214\ \ \ \ \ \textcolor{comment}{//\ check\ shape}} \DoxyCodeLine{00215\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{} \DoxyCodeLine{00216\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{} \DoxyCodeLine{00217\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ *=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i];} \DoxyCodeLine{00218\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00219\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00220\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} \DoxyCodeLine{00221\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));} \DoxyCodeLine{00222\ \ \ \ \ \}} \DoxyCodeLine{00223\ \}} \DoxyCodeLine{00224\ } \DoxyCodeLine{00225\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{NDArray::operator/}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00226\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};} \DoxyCodeLine{00227\ \ \ \ \ result\ /=\ other;} \DoxyCodeLine{00228\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00229\ \}} \DoxyCodeLine{00230\ } \DoxyCodeLine{00231\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_ab01fdad1a92b1629996f15ff0cf79ac3}{NDArray::operator\&=}}(\textcolor{keyword}{const}\ T\ \&mask)\ \{} \DoxyCodeLine{00232\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ it\ =\ begin();\ it\ !=\ end();\ ++it)} \DoxyCodeLine{00233\ \ \ \ \ \ \ \ \ *it\ \&=\ mask;} \DoxyCodeLine{00234\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00235\ \}} \DoxyCodeLine{00236\ } \DoxyCodeLine{00237\ \textcolor{comment}{//\ template\ }} \DoxyCodeLine{00238\ \textcolor{comment}{//\ NDArray\&\ NDArray::operator/=(const\ NDArray\&}} \DoxyCodeLine{00239\ \textcolor{comment}{//\ other)}} \DoxyCodeLine{00240\ \textcolor{comment}{//\ \{}} \DoxyCodeLine{00241\ \textcolor{comment}{//\ \ \ \ \ //check\ shape}} \DoxyCodeLine{00242\ \textcolor{comment}{//\ \ \ \ \ if\ (shape\_\ ==\ other.shape\_)\ \{}} \DoxyCodeLine{00243\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ for\ (int\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{}} \DoxyCodeLine{00244\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ \ data\_[i]\ /=\ other.data\_[i];}} \DoxyCodeLine{00245\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \}}} \DoxyCodeLine{00246\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ return\ *this;}} \DoxyCodeLine{00247\ \textcolor{comment}{//\ \ \ \ \ \}\ else\ \{}} \DoxyCodeLine{00248\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ throw(std::runtime\_error("{}Shape\ of\ ImageDatas\ must\ match"{}));}} \DoxyCodeLine{00249\ \textcolor{comment}{//\ \ \ \ \ \}}} \DoxyCodeLine{00250\ \textcolor{comment}{//\ \}}} \DoxyCodeLine{00251\ } \DoxyCodeLine{00252\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a569e8de85121a4a6315c556870b48931}{NDArray::operator>}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00253\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ ==\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})\ \{} \DoxyCodeLine{00254\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\{shape\_\};} \DoxyCodeLine{00255\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)\ \{} \DoxyCodeLine{00256\ \ \ \ \ \ \ \ \ \ \ \ \ result(i)\ =\ (data\_[i]\ >\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i]);} \DoxyCodeLine{00257\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00258\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00259\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} \DoxyCodeLine{00260\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}(std::runtime\_error(\textcolor{stringliteral}{"{}Shape\ of\ ImageDatas\ must\ match"{}}));} \DoxyCodeLine{00261\ \ \ \ \ \}} \DoxyCodeLine{00262\ \}} \DoxyCodeLine{00263\ } \DoxyCodeLine{00264\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{NDArray::operator=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\ \{} \DoxyCodeLine{00265\ \ \ \ \ \textcolor{keywordflow}{if}\ (\textcolor{keyword}{this}\ !=\ \&other)\ \{} \DoxyCodeLine{00266\ \ \ \ \ \ \ \ \ \textcolor{keyword}{delete}[]\ data\_;} \DoxyCodeLine{00267\ \ \ \ \ \ \ \ \ shape\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}};} \DoxyCodeLine{00268\ \ \ \ \ \ \ \ \ strides\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_a5275d4999e7422458d472620f792573a}{strides\_}};} \DoxyCodeLine{00269\ \ \ \ \ \ \ \ \ size\_\ =\ other.\mbox{\hyperlink{classaare_1_1NDArray_ac64b3e00ad3b69f6bc46def403614ccd}{size\_}};} \DoxyCodeLine{00270\ \ \ \ \ \ \ \ \ data\_\ =\ \textcolor{keyword}{new}\ T[size\_];} \DoxyCodeLine{00271\ \ \ \ \ \ \ \ \ std::copy(other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}},\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}\ +\ size\_,\ data\_);} \DoxyCodeLine{00272\ \ \ \ \ \}} \DoxyCodeLine{00273\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00274\ \}} \DoxyCodeLine{00275\ } \DoxyCodeLine{00276\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_ad20b30f1abea56b82196f030b1492027}{NDArray::operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\textcolor{keyword}{\ const\ }\{} \DoxyCodeLine{00277\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_\ !=\ other.\mbox{\hyperlink{classaare_1_1NDArray_af00f150a2867b13b37a3f711ba5f7c3b}{shape\_}})} \DoxyCodeLine{00278\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};} \DoxyCodeLine{00279\ } \DoxyCodeLine{00280\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ !=\ size\_;\ ++i)} \DoxyCodeLine{00281\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (data\_[i]\ !=\ other.\mbox{\hyperlink{classaare_1_1NDArray_ad2357b3a2dca6ff0ef6705d9913227ca}{data\_}}[i])} \DoxyCodeLine{00282\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};} \DoxyCodeLine{00283\ } \DoxyCodeLine{00284\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};} \DoxyCodeLine{00285\ \}} \DoxyCodeLine{00286\ } \DoxyCodeLine{00287\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classaare_1_1NDArray_a90408ebad72f63d0288b869b3e32e50b}{NDArray::operator!=}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&other)\textcolor{keyword}{\ const\ }\{} \DoxyCodeLine{00288\ \ \ \ \ \textcolor{keywordflow}{return}\ !((*this)\ ==\ other);} \DoxyCodeLine{00289\ \}} \DoxyCodeLine{00290\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a040dd143e6dc040703b33d91ba929271}{NDArray::operator++}}()\ \{} \DoxyCodeLine{00291\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)} \DoxyCodeLine{00292\ \ \ \ \ \ \ \ \ data\_[i]\ +=\ 1;} \DoxyCodeLine{00293\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00294\ \}} \DoxyCodeLine{00295\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a06c658e8a6490c74fb9878b14a4faf1d}{NDArray::operator=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00296\ \ \ \ \ std::fill\_n(data\_,\ size\_,\ value);} \DoxyCodeLine{00297\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00298\ \}} \DoxyCodeLine{00299\ } \DoxyCodeLine{00300\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a27eb7b3599cb62297832d4a3d8022f32}{NDArray::operator+=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00301\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)} \DoxyCodeLine{00302\ \ \ \ \ \ \ \ \ data\_[i]\ +=\ value;} \DoxyCodeLine{00303\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00304\ \}} \DoxyCodeLine{00305\ } \DoxyCodeLine{00306\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_afcc5f259b1bd0cadcadbf2b52795babc}{NDArray::operator+}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00307\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};} \DoxyCodeLine{00308\ \ \ \ \ result\ +=\ value;} \DoxyCodeLine{00309\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00310\ \}} \DoxyCodeLine{00311\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_aad602fc6734cb85112f2a8edf91d1c70}{NDArray::operator-\/=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00312\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)} \DoxyCodeLine{00313\ \ \ \ \ \ \ \ \ data\_[i]\ -\/=\ value;} \DoxyCodeLine{00314\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00315\ \}} \DoxyCodeLine{00316\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_aac96eb2ce76cd90d44eb3b19408d2434}{NDArray::operator-\/}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00317\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};} \DoxyCodeLine{00318\ \ \ \ \ result\ -\/=\ value;} \DoxyCodeLine{00319\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00320\ \}} \DoxyCodeLine{00321\ } \DoxyCodeLine{00322\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a2a6260113ca73c86d37d0444b5148c49}{NDArray::operator/=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00323\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)} \DoxyCodeLine{00324\ \ \ \ \ \ \ \ \ data\_[i]\ /=\ value;} \DoxyCodeLine{00325\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00326\ \}} \DoxyCodeLine{00327\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_a59dc47216852c36191e0cecc869131e1}{NDArray::operator/}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00328\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};} \DoxyCodeLine{00329\ \ \ \ \ result\ /=\ value;} \DoxyCodeLine{00330\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00331\ \}} \DoxyCodeLine{00332\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&\mbox{\hyperlink{classaare_1_1NDArray_a54edf15f9669a1e4601fa4aa936a2d92}{NDArray::operator*=}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00333\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keywordtype}{int}\ i\ =\ 0;\ i\ <\ size\_;\ ++i)} \DoxyCodeLine{00334\ \ \ \ \ \ \ \ \ data\_[i]\ *=\ value;} \DoxyCodeLine{00335\ \ \ \ \ \textcolor{keywordflow}{return}\ *\textcolor{keyword}{this};} \DoxyCodeLine{00336\ \}} \DoxyCodeLine{00337\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{classaare_1_1NDArray_ae67f899470bc9f8c8df8b54d544f9171}{NDArray::operator*}}(\textcolor{keyword}{const}\ T\ \&value)\ \{} \DoxyCodeLine{00338\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ result\ =\ *\textcolor{keyword}{this};} \DoxyCodeLine{00339\ \ \ \ \ result\ *=\ value;} \DoxyCodeLine{00340\ \ \ \ \ \textcolor{keywordflow}{return}\ result;} \DoxyCodeLine{00341\ \}} \DoxyCodeLine{00342\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_ad49628442cc054b7c0b56b3104d9ef20}{NDArray::Print}}()\ \{} \DoxyCodeLine{00343\ \ \ \ \ \textcolor{keywordflow}{if}\ (shape\_[0]\ <\ 20\ \&\&\ shape\_[1]\ <\ 20)} \DoxyCodeLine{00344\ \ \ \ \ \ \ \ \ Print\_all();} \DoxyCodeLine{00345\ \ \ \ \ \textcolor{keywordflow}{else}} \DoxyCodeLine{00346\ \ \ \ \ \ \ \ \ Print\_some();} \DoxyCodeLine{00347\ \}} \DoxyCodeLine{00348\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a6084445eed769b89387b4aca53306513}{NDArray::Print\_all}}()\ \{} \DoxyCodeLine{00349\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ row\ =\ 0;\ row\ <\ shape\_[0];\ ++row)\ \{} \DoxyCodeLine{00350\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ col\ =\ 0;\ col\ <\ shape\_[1];\ ++col)\ \{} \DoxyCodeLine{00351\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ std::setw(3);} \DoxyCodeLine{00352\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ (*this)(row,\ col)\ <<\ \textcolor{stringliteral}{"{}\ "{}};} \DoxyCodeLine{00353\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00354\ \ \ \ \ \ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{00355\ \ \ \ \ \}} \DoxyCodeLine{00356\ \}} \DoxyCodeLine{00357\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classaare_1_1NDArray_a5dec49e82ec3abfa28bddfc328b1c4e9}{NDArray::Print\_some}}()\ \{} \DoxyCodeLine{00358\ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ row\ =\ 0;\ row\ <\ 5;\ ++row)\ \{} \DoxyCodeLine{00359\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ col\ =\ 0;\ col\ <\ 5;\ ++col)\ \{} \DoxyCodeLine{00360\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ std::setw(7);} \DoxyCodeLine{00361\ \ \ \ \ \ \ \ \ \ \ \ \ std::cout\ <<\ (*this)(row,\ col)\ <<\ \textcolor{stringliteral}{"{}\ "{}};} \DoxyCodeLine{00362\ \ \ \ \ \ \ \ \ \}} \DoxyCodeLine{00363\ \ \ \ \ \ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{00364\ \ \ \ \ \}} \DoxyCodeLine{00365\ \}} \DoxyCodeLine{00366\ } \DoxyCodeLine{00367\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{namespaceaare_aac5d322f266bccdc416bcd66098eae33}{save}}(\mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \&img,\ std::string\ pathname)\ \{} \DoxyCodeLine{00368\ \ \ \ \ std::ofstream\ f;} \DoxyCodeLine{00369\ \ \ \ \ f.open(pathname,\ std::ios::binary);} \DoxyCodeLine{00370\ \ \ \ \ f.write(img.\mbox{\hyperlink{classaare_1_1NDArray_af289b6a162612ed74ad2fd0606a479a9}{buffer}}(),\ img.\mbox{\hyperlink{classaare_1_1NDArray_a86632c60ddbdf7af8cfd3939df472127}{size}}()\ *\ \textcolor{keyword}{sizeof}(T));} \DoxyCodeLine{00371\ \ \ \ \ f.close();} \DoxyCodeLine{00372\ \}} \DoxyCodeLine{00373\ } \DoxyCodeLine{00374\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T,\ s\textcolor{keywordtype}{size\_t}\ Ndim>} \DoxyCodeLine{00375\ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ \mbox{\hyperlink{namespaceaare_a2868d09c334b1aa09be4da1979100ec5}{load}}(\textcolor{keyword}{const}\ std::string\ \&pathname,\ std::array\ shape)\ \{} \DoxyCodeLine{00376\ \ \ \ \ \mbox{\hyperlink{classaare_1_1NDArray}{NDArray}}\ img\{shape\};} \DoxyCodeLine{00377\ \ \ \ \ std::ifstream\ f;} \DoxyCodeLine{00378\ \ \ \ \ f.open(pathname,\ std::ios::binary);} \DoxyCodeLine{00379\ \ \ \ \ f.read(img.buffer(),\ img.size()\ *\ \textcolor{keyword}{sizeof}(T));} \DoxyCodeLine{00380\ \ \ \ \ f.close();} \DoxyCodeLine{00381\ \ \ \ \ \textcolor{keywordflow}{return}\ img;} \DoxyCodeLine{00382\ \}} \DoxyCodeLine{00383\ } \DoxyCodeLine{00384\ \}\ \textcolor{comment}{//\ namespace\ aare}} \end{DoxyCode}