\hypertarget{group__Array2}{}\section{Two-\/\+Dimensional Arrays}
\label{group__Array2}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}


Two-\/dimensional arrays.  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classSPL_1_1Array2}{S\+P\+L\+::\+Array2$<$ T $>$}
\begin{DoxyCompactList}\small\item\em A two-\/dimensional array class with lazy copying and reference counting. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef Array2$<$ double $>$ \hyperlink{group__Array2_ga6f6767386c60b70020a0ae7234f01c4d}{S\+P\+L\+::\+Real\+Array2}
\begin{DoxyCompactList}\small\item\em A two-\/dimensional array with real elements. \end{DoxyCompactList}\item 
typedef Array2$<$ int $>$ \hyperlink{group__Array2_ga1ba969b4ce1ad39ce9f82f28a50fb9e9}{S\+P\+L\+::\+Int\+Array2}
\begin{DoxyCompactList}\small\item\em A two-\/dimensional array with integer elements. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T $>$ }\\std\+::ostream \& \hyperlink{group__Array2_gac953c6214899b45c01de2909fb56fe10}{S\+P\+L\+::operator$<$$<$} (std\+::ostream \&out, const Array2$<$ T $>$ \&a)
\begin{DoxyCompactList}\small\item\em Output an array to the specified stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T $>$ }\\std\+::istream \& \hyperlink{group__Array2_ga92f705cda5901a78e47ccc889a952bac}{S\+P\+L\+::operator$>$$>$} (std\+::istream \&in, Array2$<$ T $>$ \&a)
\begin{DoxyCompactList}\small\item\em Input an array from the specified stream. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T $>$ }\\Array2$<$ T $>$ \hyperlink{group__Array2_gafdaa32bb45e93ecd3d17b0e63fd75bb4}{S\+P\+L\+::transpose} (const Array2$<$ T $>$ \&a)
\begin{DoxyCompactList}\small\item\em Get the transpose of the array. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{group__Array2_ga5881c41f91f7ba4feed11827e1bec889}{S\+P\+L\+::operator==} (const Array2$<$ T $>$ \&a, const Array2$<$ T $>$ \&b)
\begin{DoxyCompactList}\small\item\em Test two arrays for equality. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{group__Array2_ga09b6593fb069e49d23056114253fa437}{S\+P\+L\+::operator!=} (const Array2$<$ T $>$ \&a, const Array2$<$ T $>$ \&b)
\begin{DoxyCompactList}\small\item\em Test two arrays for inequality. \end{DoxyCompactList}\item 
\hyperlink{group__Array2_ga5aa618e7413e50d9973d1e27576fc6a1}{S\+P\+L\+::\+Array2$<$ T $>$\+::\+Array2} ()
\begin{DoxyCompactList}\small\item\em Create an empty array. \end{DoxyCompactList}\item 
\hyperlink{group__Array2_ga6a9941c3006d8f4b7a490c03e2142bd0}{S\+P\+L\+::\+Array2$<$ T $>$\+::\+Array2} (int width, int height)
\begin{DoxyCompactList}\small\item\em Create an array of the specified width and height. \end{DoxyCompactList}\item 
\hyperlink{group__Array2_gadc13140f952c49805f65f47ac99f7ecf}{S\+P\+L\+::\+Array2$<$ T $>$\+::\+Array2} (const Array2 \&a)
\begin{DoxyCompactList}\small\item\em The copy constructor. \end{DoxyCompactList}\item 
\hyperlink{group__Array2_gac1b3aff7eef8f3b9ddf610fe9849f6e1}{S\+P\+L\+::\+Array2$<$ T $>$\+::\+Array2} (int width, int height, const T \&value)
\begin{DoxyCompactList}\small\item\em Create an array of the specified width and height with the elements of the array initialized to the specified value. \end{DoxyCompactList}\item 
\hyperlink{group__Array2_ga53c7bd94a738ceca2a2a84a1047f75d3}{S\+P\+L\+::\+Array2$<$ T $>$\+::$\sim$\+Array2} ()
\begin{DoxyCompactList}\small\item\em The destructor. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_ga8e9592670f587abe516077e5e5d13c6f}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator=} (const Array2 \&a)
\begin{DoxyCompactList}\small\item\em The assignment operator. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_ga0ca70d9b33c7e9f42b93654ce55075d5}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator+=} (const Array2 \&a)
\begin{DoxyCompactList}\small\item\em Add another array (elementwise) to this array. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_gad7346b63d940cd0c42732ca592adcf84}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator-\/=} (const Array2 \&a)
\begin{DoxyCompactList}\small\item\em Subtract another array (elementwise) from this array. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_gab60e933732788ffee4e26875c7deea18}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator$\ast$=} (const Array2 \&a)
\begin{DoxyCompactList}\small\item\em Multiply another array (elementwise) by this array. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_gad556a91f65834866afecd96208538b38}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator/=} (const Array2 \&a)
\begin{DoxyCompactList}\small\item\em Divide this array (elementwise) by another array. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_ga9a7f12edcdb663527750a2368a015ea4}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator+=} (const T \&a)
\begin{DoxyCompactList}\small\item\em Add the specified value to each element in the array. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_ga18442527e81af8e08558b2a6067750d8}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator-\/=} (const T \&a)
\begin{DoxyCompactList}\small\item\em Subtract the specified value from each element in the array. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_gaefa83167536db0054464ca68763b8433}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator$\ast$=} (const T \&a)
\begin{DoxyCompactList}\small\item\em Multiply each element in the array by the specified value. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_ga56493ccb3e09343a5a8d4cbcfcb81561}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator/=} (const T \&a)
\begin{DoxyCompactList}\small\item\em Divide each element in the array by the specified value. \end{DoxyCompactList}\item 
int \hyperlink{group__Array2_ga6a991a8f2930f9699458a277a85157b1}{S\+P\+L\+::\+Array2$<$ T $>$\+::get\+Width} () const 
\begin{DoxyCompactList}\small\item\em Get the width of the array. \end{DoxyCompactList}\item 
int \hyperlink{group__Array2_gad52b5442564d753206ae075e5c2cf494}{S\+P\+L\+::\+Array2$<$ T $>$\+::get\+Height} () const 
\begin{DoxyCompactList}\small\item\em Get the height of the array. \end{DoxyCompactList}\item 
int \hyperlink{group__Array2_ga9cbc2696ba458cad86f13223564efbb7}{S\+P\+L\+::\+Array2$<$ T $>$\+::get\+Size} () const 
\begin{DoxyCompactList}\small\item\em Get the number of elements in the array. \end{DoxyCompactList}\item 
bool \hyperlink{group__Array2_gab718f5755e2c3bdd3c2be4138cc664cb}{S\+P\+L\+::\+Array2$<$ T $>$\+::is\+Shared} () const 
\begin{DoxyCompactList}\small\item\em Is the data for this array shared with another array? \end{DoxyCompactList}\item 
bool \hyperlink{group__Array2_ga8ad5bb0e8c484ed311692b6c2616c6d5}{S\+P\+L\+::\+Array2$<$ T $>$\+::is\+Shared\+With} (const Array2 \&a) const 
\begin{DoxyCompactList}\small\item\em Is the data for this array shared with the specified array? \end{DoxyCompactList}\item 
T \& \hyperlink{group__Array2_ga4603104b12404c79b4975209d1a2b294}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator()} (int x, int y)
\begin{DoxyCompactList}\small\item\em Get a mutable reference to the (x,y)-\/th element in the array. \end{DoxyCompactList}\item 
const T \& \hyperlink{group__Array2_gaf24d3c1c5fdd84b952eade392a6bf454}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator()} (int x, int y) const 
\begin{DoxyCompactList}\small\item\em Get a const reference to the (x,y)-\/th element in the array. \end{DoxyCompactList}\item 
T \& \hyperlink{group__Array2_gac7f80e2b31d5374b8aab54393cd1e3a7}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator()} (int i)
\begin{DoxyCompactList}\small\item\em Get a mutable reference to the i-\/th element in the array. \end{DoxyCompactList}\item 
const T \& \hyperlink{group__Array2_gafecb3babb6295a57d1dda54a1b3fa992}{S\+P\+L\+::\+Array2$<$ T $>$\+::operator()} (int i) const 
\begin{DoxyCompactList}\small\item\em Get a const reference to the i-\/th element in the array. \end{DoxyCompactList}\item 
Const\+Iterator \hyperlink{group__Array2_gaa183dd4c4827989e5f26191ddcca645c}{S\+P\+L\+::\+Array2$<$ T $>$\+::begin} () const 
\begin{DoxyCompactList}\small\item\em Get a const iterator for the first element in the array. \end{DoxyCompactList}\item 
Iterator \hyperlink{group__Array2_ga13706fb6a876761c4fa6eab4e47b1c4c}{S\+P\+L\+::\+Array2$<$ T $>$\+::begin} ()
\begin{DoxyCompactList}\small\item\em Get a mutable iterator for the first element in the array. \end{DoxyCompactList}\item 
Const\+Iterator \hyperlink{group__Array2_ga255d2d66afb65f65e3168e32a26c6081}{S\+P\+L\+::\+Array2$<$ T $>$\+::end} () const 
\begin{DoxyCompactList}\small\item\em Get a const iterator for one past the last element in the array. \end{DoxyCompactList}\item 
Iterator \hyperlink{group__Array2_ga6d5424b6d2c1c779b23792cd8f73c1df}{S\+P\+L\+::\+Array2$<$ T $>$\+::end} ()
\begin{DoxyCompactList}\small\item\em Get a mutable iterator for one past the last element in the array. \end{DoxyCompactList}\item 
Const\+X\+Iterator \hyperlink{group__Array2_ga67f18134a71f46c738e4e7271966092f}{S\+P\+L\+::\+Array2$<$ T $>$\+::row\+Begin} (int y) const 
\begin{DoxyCompactList}\small\item\em Get a const iterator for the first element in the specified row of the array. \end{DoxyCompactList}\item 
X\+Iterator \hyperlink{group__Array2_gaae5efbd884e5bcc82b902fa5ee4a8530}{S\+P\+L\+::\+Array2$<$ T $>$\+::row\+Begin} (int y)
\begin{DoxyCompactList}\small\item\em Get a mutable iterator for the first element in the specified row of the array. \end{DoxyCompactList}\item 
Const\+X\+Iterator \hyperlink{group__Array2_ga1adf299cd4daf6fd99f31ca938388396}{S\+P\+L\+::\+Array2$<$ T $>$\+::row\+End} (int y) const 
\begin{DoxyCompactList}\small\item\em Get a const iterator for one past the end in the specified row of the array. \end{DoxyCompactList}\item 
X\+Iterator \hyperlink{group__Array2_ga1bbc2bd211a0b2e19e5503c0eedd6c7b}{S\+P\+L\+::\+Array2$<$ T $>$\+::row\+End} (int y)
\begin{DoxyCompactList}\small\item\em Get a mutable iterator for one past the end in the specified row of the array. \end{DoxyCompactList}\item 
Const\+Y\+Iterator \hyperlink{group__Array2_ga627f171dad0df33b0f138a120d90231f}{S\+P\+L\+::\+Array2$<$ T $>$\+::col\+Begin} (int x) const 
\begin{DoxyCompactList}\small\item\em Get a const iterator for the first element in the specified column of the array. \end{DoxyCompactList}\item 
Y\+Iterator \hyperlink{group__Array2_ga56b7676d19820859f1032e1ed36195d0}{S\+P\+L\+::\+Array2$<$ T $>$\+::col\+Begin} (int x)
\begin{DoxyCompactList}\small\item\em Get a mutable iterator for the first element in the specified column of the array. \end{DoxyCompactList}\item 
Const\+Y\+Iterator \hyperlink{group__Array2_gaba60eed8a2d10418e7733f9d931ec5ca}{S\+P\+L\+::\+Array2$<$ T $>$\+::col\+End} (int x) const 
\begin{DoxyCompactList}\small\item\em Get a const iterator for one past the end in the specified column of the array. \end{DoxyCompactList}\item 
Y\+Iterator \hyperlink{group__Array2_gad15f2e88d1d8d30b9f6d2cdc3e31deae}{S\+P\+L\+::\+Array2$<$ T $>$\+::col\+End} (int x)
\begin{DoxyCompactList}\small\item\em Get a mutable iterator for one past the end in the specified column of the array. \end{DoxyCompactList}\item 
void \hyperlink{group__Array2_ga5bc109710897b6bb57446f852973f419}{S\+P\+L\+::\+Array2$<$ T $>$\+::resize} (int width, int height)
\begin{DoxyCompactList}\small\item\em Change the size of the array. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Input\+Iterator $>$ }\\void \hyperlink{group__Array2_ga051660f1aade8ca8b7756bdb9d9b2f79}{S\+P\+L\+::\+Array2$<$ T $>$\+::resize} (int width, int height, Input\+Iterator data)
\begin{DoxyCompactList}\small\item\em Change the size of the array, initializing the resized array with the data obtained from the specified input iterator. \end{DoxyCompactList}\item 
T \hyperlink{group__Array2_gacb74e7435884ac2c04067ab7694d042d}{S\+P\+L\+::\+Array2$<$ T $>$\+::max} () const 
\begin{DoxyCompactList}\small\item\em Get the maximum of the elements in the array. \end{DoxyCompactList}\item 
T \hyperlink{group__Array2_ga25b27615badc4cfb5be99f37b8deb14b}{S\+P\+L\+::\+Array2$<$ T $>$\+::min} () const 
\begin{DoxyCompactList}\small\item\em Get the minimum of the elements in the array. \end{DoxyCompactList}\item 
T \hyperlink{group__Array2_ga1629bd05ae0942ea48280889107c0e0c}{S\+P\+L\+::\+Array2$<$ T $>$\+::sum} () const 
\begin{DoxyCompactList}\small\item\em Get the sum of the elements in the array. \end{DoxyCompactList}\item 
std\+::ostream \& \hyperlink{group__Array2_gaa2175ad44764fcf43b4d61ab5b71aab9}{S\+P\+L\+::\+Array2$<$ T $>$\+::output} (std\+::ostream \&out, int field\+Width) const 
\begin{DoxyCompactList}\small\item\em Output an array to a stream using the specified field width for each array element. \end{DoxyCompactList}\item 
int \hyperlink{group__Array2_ga3b3f27facc324043d11c24b867982bde}{S\+P\+L\+::\+Array2$<$ T $>$\+::load} (const char $\ast$file\+Name)
\begin{DoxyCompactList}\small\item\em Load an array from the file with the specified name. \end{DoxyCompactList}\item 
int \hyperlink{group__Array2_gae814cd75c4b73c7d6eaa9326f54ffd32}{S\+P\+L\+::\+Array2$<$ T $>$\+::save} (const char $\ast$file\+Name) const 
\begin{DoxyCompactList}\small\item\em Save an array to the file with the specified name. \end{DoxyCompactList}\item 
void \hyperlink{group__Array2_gaffc13232a2867e15760699ad77bec551}{S\+P\+L\+::\+Array2$<$ T $>$\+::swap} (Array2 \&a)
\begin{DoxyCompactList}\small\item\em Swap the array data with the data of the specified array. \end{DoxyCompactList}\item 
void \hyperlink{group__Array2_ga4da2ad7ec4d2842f19cf7e4cc7660d88}{S\+P\+L\+::\+Array2$<$ T $>$\+::fill} (const T \&value=T(0))
\begin{DoxyCompactList}\small\item\em Set all elements in the array to the specified value. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_ga8c3966edbb86ee145e8bee592cfe698c}{S\+P\+L\+::\+Array2$<$ T $>$\+::flipud} ()
\begin{DoxyCompactList}\small\item\em Flip the array upside down. \end{DoxyCompactList}\item 
Array2 \& \hyperlink{group__Array2_gabb7990f7b7050f317111573854889ffb}{S\+P\+L\+::\+Array2$<$ T $>$\+::fliplr} ()
\begin{DoxyCompactList}\small\item\em Flip the array left to right. \end{DoxyCompactList}\item 
void \hyperlink{group__Array2_gae298672d183f466fa8697588d1f5e7f8}{S\+P\+L\+::\+Array2$<$ T $>$\+::dump} (std\+::ostream \&out) const 
\begin{DoxyCompactList}\small\item\em Output information about an array to a stream for debugging. \end{DoxyCompactList}\item 
void \hyperlink{group__Array2_ga3744ba5cddc2172f42da4875d160edfc}{S\+P\+L\+::\+Array2$<$ T $>$\+::unshare} () const 
\begin{DoxyCompactList}\small\item\em Force the underlying data to be copied if the data is shared. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Two-\/dimensional arrays. 



\subsection{Typedef Documentation}
\hypertarget{group__Array2_ga1ba969b4ce1ad39ce9f82f28a50fb9e9}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!Int\+Array2@{Int\+Array2}}
\index{Int\+Array2@{Int\+Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{Int\+Array2}]{\setlength{\rightskip}{0pt plus 5cm}typedef Array2$<$int$>$ {\bf S\+P\+L\+::\+Int\+Array2}}\label{group__Array2_ga1ba969b4ce1ad39ce9f82f28a50fb9e9}


A two-\/dimensional array with integer elements. 

\hypertarget{group__Array2_ga6f6767386c60b70020a0ae7234f01c4d}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!Real\+Array2@{Real\+Array2}}
\index{Real\+Array2@{Real\+Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{Real\+Array2}]{\setlength{\rightskip}{0pt plus 5cm}typedef Array2$<$double$>$ {\bf S\+P\+L\+::\+Real\+Array2}}\label{group__Array2_ga6f6767386c60b70020a0ae7234f01c4d}


A two-\/dimensional array with real elements. 



\subsection{Function Documentation}
\hypertarget{group__Array2_ga5aa618e7413e50d9973d1e27576fc6a1}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!Array2@{Array2}}
\index{Array2@{Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{Array2}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::Array2 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{group__Array2_ga5aa618e7413e50d9973d1e27576fc6a1}


Create an empty array. 

\hypertarget{group__Array2_ga6a9941c3006d8f4b7a490c03e2142bd0}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!Array2@{Array2}}
\index{Array2@{Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{Array2}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::Array2 (
\begin{DoxyParamCaption}
\item[{int}]{width, }
\item[{int}]{height}
\end{DoxyParamCaption}
)}\label{group__Array2_ga6a9941c3006d8f4b7a490c03e2142bd0}


Create an array of the specified width and height. 

\hypertarget{group__Array2_gac1b3aff7eef8f3b9ddf610fe9849f6e1}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!Array2@{Array2}}
\index{Array2@{Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{Array2}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::Array2 (
\begin{DoxyParamCaption}
\item[{int}]{width, }
\item[{int}]{height, }
\item[{const T \&}]{value}
\end{DoxyParamCaption}
)}\label{group__Array2_gac1b3aff7eef8f3b9ddf610fe9849f6e1}


Create an array of the specified width and height with the elements of the array initialized to the specified value. 

\hypertarget{group__Array2_gadc13140f952c49805f65f47ac99f7ecf}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!Array2@{Array2}}
\index{Array2@{Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{Array2}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::Array2 (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gadc13140f952c49805f65f47ac99f7ecf}


The copy constructor. 

\hypertarget{group__Array2_gaa183dd4c4827989e5f26191ddcca645c}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!begin@{begin}}
\index{begin@{begin}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Const\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::begin (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_gaa183dd4c4827989e5f26191ddcca645c}


Get a const iterator for the first element in the array. 

\hypertarget{group__Array2_ga13706fb6a876761c4fa6eab4e47b1c4c}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!begin@{begin}}
\index{begin@{begin}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::begin (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{group__Array2_ga13706fb6a876761c4fa6eab4e47b1c4c}


Get a mutable iterator for the first element in the array. 

\hypertarget{group__Array2_ga627f171dad0df33b0f138a120d90231f}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!col\+Begin@{col\+Begin}}
\index{col\+Begin@{col\+Begin}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{col\+Begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Const\+Y\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::col\+Begin (
\begin{DoxyParamCaption}
\item[{int}]{x}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga627f171dad0df33b0f138a120d90231f}


Get a const iterator for the first element in the specified column of the array. 

\hypertarget{group__Array2_ga56b7676d19820859f1032e1ed36195d0}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!col\+Begin@{col\+Begin}}
\index{col\+Begin@{col\+Begin}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{col\+Begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Y\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::col\+Begin (
\begin{DoxyParamCaption}
\item[{int}]{x}
\end{DoxyParamCaption}
)}\label{group__Array2_ga56b7676d19820859f1032e1ed36195d0}


Get a mutable iterator for the first element in the specified column of the array. 

\hypertarget{group__Array2_gaba60eed8a2d10418e7733f9d931ec5ca}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!col\+End@{col\+End}}
\index{col\+End@{col\+End}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{col\+End}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Const\+Y\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::col\+End (
\begin{DoxyParamCaption}
\item[{int}]{x}
\end{DoxyParamCaption}
) const}\label{group__Array2_gaba60eed8a2d10418e7733f9d931ec5ca}


Get a const iterator for one past the end in the specified column of the array. 

\hypertarget{group__Array2_gad15f2e88d1d8d30b9f6d2cdc3e31deae}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!col\+End@{col\+End}}
\index{col\+End@{col\+End}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{col\+End}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Y\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::col\+End (
\begin{DoxyParamCaption}
\item[{int}]{x}
\end{DoxyParamCaption}
)}\label{group__Array2_gad15f2e88d1d8d30b9f6d2cdc3e31deae}


Get a mutable iterator for one past the end in the specified column of the array. 

\hypertarget{group__Array2_gae298672d183f466fa8697588d1f5e7f8}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!dump@{dump}}
\index{dump@{dump}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{dump}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::dump (
\begin{DoxyParamCaption}
\item[{std\+::ostream \&}]{out}
\end{DoxyParamCaption}
) const}\label{group__Array2_gae298672d183f466fa8697588d1f5e7f8}


Output information about an array to a stream for debugging. 

Ouput information about an array to the specified stream for debugging purposes. \hypertarget{group__Array2_ga255d2d66afb65f65e3168e32a26c6081}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!end@{end}}
\index{end@{end}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Const\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga255d2d66afb65f65e3168e32a26c6081}


Get a const iterator for one past the last element in the array. 

\hypertarget{group__Array2_ga6d5424b6d2c1c779b23792cd8f73c1df}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!end@{end}}
\index{end@{end}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{group__Array2_ga6d5424b6d2c1c779b23792cd8f73c1df}


Get a mutable iterator for one past the last element in the array. 

\hypertarget{group__Array2_ga4da2ad7ec4d2842f19cf7e4cc7660d88}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!fill@{fill}}
\index{fill@{fill}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{fill}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} void {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::fill (
\begin{DoxyParamCaption}
\item[{const T \&}]{value = {\ttfamily T(0)}}
\end{DoxyParamCaption}
)}\label{group__Array2_ga4da2ad7ec4d2842f19cf7e4cc7660d88}


Set all elements in the array to the specified value. 

\hypertarget{group__Array2_gabb7990f7b7050f317111573854889ffb}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!fliplr@{fliplr}}
\index{fliplr@{fliplr}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{fliplr}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::fliplr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{group__Array2_gabb7990f7b7050f317111573854889ffb}


Flip the array left to right. 

\hypertarget{group__Array2_ga8c3966edbb86ee145e8bee592cfe698c}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!flipud@{flipud}}
\index{flipud@{flipud}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{flipud}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::flipud (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{group__Array2_ga8c3966edbb86ee145e8bee592cfe698c}


Flip the array upside down. 

\hypertarget{group__Array2_gad52b5442564d753206ae075e5c2cf494}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!get\+Height@{get\+Height}}
\index{get\+Height@{get\+Height}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{get\+Height}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} int {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::get\+Height (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_gad52b5442564d753206ae075e5c2cf494}


Get the height of the array. 

\hypertarget{group__Array2_ga9cbc2696ba458cad86f13223564efbb7}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!get\+Size@{get\+Size}}
\index{get\+Size@{get\+Size}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{get\+Size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} int {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::get\+Size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga9cbc2696ba458cad86f13223564efbb7}


Get the number of elements in the array. 

\hypertarget{group__Array2_ga6a991a8f2930f9699458a277a85157b1}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!get\+Width@{get\+Width}}
\index{get\+Width@{get\+Width}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{get\+Width}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} int {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::get\+Width (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga6a991a8f2930f9699458a277a85157b1}


Get the width of the array. 

\hypertarget{group__Array2_gab718f5755e2c3bdd3c2be4138cc664cb}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!is\+Shared@{is\+Shared}}
\index{is\+Shared@{is\+Shared}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{is\+Shared}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} bool {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::is\+Shared (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_gab718f5755e2c3bdd3c2be4138cc664cb}


Is the data for this array shared with another array? 

Under most normal circumstances, one should never need to call this function. In some instances, however, it might be necessary to know whether data is shared in order to write more optimal code. \hypertarget{group__Array2_ga8ad5bb0e8c484ed311692b6c2616c6d5}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!is\+Shared\+With@{is\+Shared\+With}}
\index{is\+Shared\+With@{is\+Shared\+With}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{is\+Shared\+With}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} bool {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::is\+Shared\+With (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga8ad5bb0e8c484ed311692b6c2616c6d5}


Is the data for this array shared with the specified array? 

\hypertarget{group__Array2_ga3b3f27facc324043d11c24b867982bde}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!load@{load}}
\index{load@{load}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{load}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ int {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::load (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file\+Name}
\end{DoxyParamCaption}
)}\label{group__Array2_ga3b3f27facc324043d11c24b867982bde}


Load an array from the file with the specified name. 

\hypertarget{group__Array2_gacb74e7435884ac2c04067ab7694d042d}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!max@{max}}
\index{max@{max}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{max}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} T {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::max (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_gacb74e7435884ac2c04067ab7694d042d}


Get the maximum of the elements in the array. 

The array must contain at least one element. \hypertarget{group__Array2_ga25b27615badc4cfb5be99f37b8deb14b}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!min@{min}}
\index{min@{min}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{min}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} T {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::min (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga25b27615badc4cfb5be99f37b8deb14b}


Get the minimum of the elements in the array. 

The array must contain at least one element. \hypertarget{group__Array2_ga09b6593fb069e49d23056114253fa437}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator"!=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ bool S\+P\+L\+::operator!= (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a, }
\item[{const {\bf Array2}$<$ T $>$ \&}]{b}
\end{DoxyParamCaption}
)}\label{group__Array2_ga09b6593fb069e49d23056114253fa437}


Test two arrays for inequality. 

\hypertarget{group__Array2_ga4603104b12404c79b4975209d1a2b294}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator()@{operator()}}
\index{operator()@{operator()}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} T \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)}\label{group__Array2_ga4603104b12404c79b4975209d1a2b294}


Get a mutable reference to the (x,y)-\/th element in the array. 

\hypertarget{group__Array2_gaf24d3c1c5fdd84b952eade392a6bf454}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator()@{operator()}}
\index{operator()@{operator()}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} const T \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
) const}\label{group__Array2_gaf24d3c1c5fdd84b952eade392a6bf454}


Get a const reference to the (x,y)-\/th element in the array. 

\hypertarget{group__Array2_gac7f80e2b31d5374b8aab54393cd1e3a7}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator()@{operator()}}
\index{operator()@{operator()}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} T \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{int}]{i}
\end{DoxyParamCaption}
)}\label{group__Array2_gac7f80e2b31d5374b8aab54393cd1e3a7}


Get a mutable reference to the i-\/th element in the array. 

The array must have either a width or height of one. \hypertarget{group__Array2_gafecb3babb6295a57d1dda54a1b3fa992}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator()@{operator()}}
\index{operator()@{operator()}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} const T \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{int}]{i}
\end{DoxyParamCaption}
) const}\label{group__Array2_gafecb3babb6295a57d1dda54a1b3fa992}


Get a const reference to the i-\/th element in the array. 

The array must have either a width or height of one. \hypertarget{group__Array2_gab60e933732788ffee4e26875c7deea18}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator$\ast$=@{operator$\ast$=}}
\index{operator$\ast$=@{operator$\ast$=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator$\ast$=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator$\ast$= (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gab60e933732788ffee4e26875c7deea18}


Multiply another array (elementwise) by this array. 

\hypertarget{group__Array2_gaefa83167536db0054464ca68763b8433}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator$\ast$=@{operator$\ast$=}}
\index{operator$\ast$=@{operator$\ast$=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator$\ast$=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator$\ast$= (
\begin{DoxyParamCaption}
\item[{const T \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gaefa83167536db0054464ca68763b8433}


Multiply each element in the array by the specified value. 

\hypertarget{group__Array2_ga0ca70d9b33c7e9f42b93654ce55075d5}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator+=@{operator+=}}
\index{operator+=@{operator+=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator+=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator+= (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_ga0ca70d9b33c7e9f42b93654ce55075d5}


Add another array (elementwise) to this array. 

\hypertarget{group__Array2_ga9a7f12edcdb663527750a2368a015ea4}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator+=@{operator+=}}
\index{operator+=@{operator+=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator+=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator+= (
\begin{DoxyParamCaption}
\item[{const T \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_ga9a7f12edcdb663527750a2368a015ea4}


Add the specified value to each element in the array. 

\hypertarget{group__Array2_gad7346b63d940cd0c42732ca592adcf84}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator-\/=@{operator-\/=}}
\index{operator-\/=@{operator-\/=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator-\/=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator-\/= (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gad7346b63d940cd0c42732ca592adcf84}


Subtract another array (elementwise) from this array. 

\hypertarget{group__Array2_ga18442527e81af8e08558b2a6067750d8}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator-\/=@{operator-\/=}}
\index{operator-\/=@{operator-\/=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator-\/=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator-\/= (
\begin{DoxyParamCaption}
\item[{const T \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_ga18442527e81af8e08558b2a6067750d8}


Subtract the specified value from each element in the array. 

\hypertarget{group__Array2_gad556a91f65834866afecd96208538b38}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator/=@{operator/=}}
\index{operator/=@{operator/=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator/=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator/= (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gad556a91f65834866afecd96208538b38}


Divide this array (elementwise) by another array. 

\hypertarget{group__Array2_ga56493ccb3e09343a5a8d4cbcfcb81561}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator/=@{operator/=}}
\index{operator/=@{operator/=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator/=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator/= (
\begin{DoxyParamCaption}
\item[{const T \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_ga56493ccb3e09343a5a8d4cbcfcb81561}


Divide each element in the array by the specified value. 

\hypertarget{group__Array2_gac953c6214899b45c01de2909fb56fe10}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator$<$$<$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ std\+::ostream\& S\+P\+L\+::operator$<$$<$ (
\begin{DoxyParamCaption}
\item[{std\+::ostream \&}]{out, }
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gac953c6214899b45c01de2909fb56fe10}


Output an array to the specified stream. 

\hypertarget{group__Array2_ga8e9592670f587abe516077e5e5d13c6f}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator=@{operator=}}
\index{operator=@{operator=}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$ \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_ga8e9592670f587abe516077e5e5d13c6f}


The assignment operator. 

\hypertarget{group__Array2_ga5881c41f91f7ba4feed11827e1bec889}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator==@{operator==}}
\index{operator==@{operator==}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ bool S\+P\+L\+::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a, }
\item[{const {\bf Array2}$<$ T $>$ \&}]{b}
\end{DoxyParamCaption}
)}\label{group__Array2_ga5881c41f91f7ba4feed11827e1bec889}


Test two arrays for equality. 

\hypertarget{group__Array2_ga92f705cda5901a78e47ccc889a952bac}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!operator$>$$>$@{operator$>$$>$}}
\index{operator$>$$>$@{operator$>$$>$}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{operator$>$$>$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ std\+::istream\& S\+P\+L\+::operator$>$$>$ (
\begin{DoxyParamCaption}
\item[{std\+::istream \&}]{in, }
\item[{{\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_ga92f705cda5901a78e47ccc889a952bac}


Input an array from the specified stream. 

\hypertarget{group__Array2_gaa2175ad44764fcf43b4d61ab5b71aab9}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!output@{output}}
\index{output@{output}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{output}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ std\+::ostream \& {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::output (
\begin{DoxyParamCaption}
\item[{std\+::ostream \&}]{out, }
\item[{int}]{field\+Width}
\end{DoxyParamCaption}
) const}\label{group__Array2_gaa2175ad44764fcf43b4d61ab5b71aab9}


Output an array to a stream using the specified field width for each array element. 

\hypertarget{group__Array2_ga5bc109710897b6bb57446f852973f419}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!resize@{resize}}
\index{resize@{resize}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{resize}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::resize (
\begin{DoxyParamCaption}
\item[{int}]{width, }
\item[{int}]{height}
\end{DoxyParamCaption}
)}\label{group__Array2_ga5bc109710897b6bb57446f852973f419}


Change the size of the array. 

Effects\+: The array size is changed to the specified size. If the new size is the same as the old size, this function does nothing. \hypertarget{group__Array2_ga051660f1aade8ca8b7756bdb9d9b2f79}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!resize@{resize}}
\index{resize@{resize}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{resize}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ template$<$class Input\+Iterator $>$ void {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::resize (
\begin{DoxyParamCaption}
\item[{int}]{width, }
\item[{int}]{height, }
\item[{Input\+Iterator}]{data}
\end{DoxyParamCaption}
)}\label{group__Array2_ga051660f1aade8ca8b7756bdb9d9b2f79}


Change the size of the array, initializing the resized array with the data obtained from the specified input iterator. 

\hypertarget{group__Array2_ga67f18134a71f46c738e4e7271966092f}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!row\+Begin@{row\+Begin}}
\index{row\+Begin@{row\+Begin}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{row\+Begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Const\+X\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::row\+Begin (
\begin{DoxyParamCaption}
\item[{int}]{y}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga67f18134a71f46c738e4e7271966092f}


Get a const iterator for the first element in the specified row of the array. 

\hypertarget{group__Array2_gaae5efbd884e5bcc82b902fa5ee4a8530}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!row\+Begin@{row\+Begin}}
\index{row\+Begin@{row\+Begin}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{row\+Begin}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::X\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::row\+Begin (
\begin{DoxyParamCaption}
\item[{int}]{y}
\end{DoxyParamCaption}
)}\label{group__Array2_gaae5efbd884e5bcc82b902fa5ee4a8530}


Get a mutable iterator for the first element in the specified row of the array. 

\hypertarget{group__Array2_ga1adf299cd4daf6fd99f31ca938388396}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!row\+End@{row\+End}}
\index{row\+End@{row\+End}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{row\+End}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::Const\+X\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::row\+End (
\begin{DoxyParamCaption}
\item[{int}]{y}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga1adf299cd4daf6fd99f31ca938388396}


Get a const iterator for one past the end in the specified row of the array. 

\hypertarget{group__Array2_ga1bbc2bd211a0b2e19e5503c0eedd6c7b}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!row\+End@{row\+End}}
\index{row\+End@{row\+End}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{row\+End}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} Array2$<$ T $>$\+::X\+Iterator {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::row\+End (
\begin{DoxyParamCaption}
\item[{int}]{y}
\end{DoxyParamCaption}
)}\label{group__Array2_ga1bbc2bd211a0b2e19e5503c0eedd6c7b}


Get a mutable iterator for one past the end in the specified row of the array. 

\hypertarget{group__Array2_gae814cd75c4b73c7d6eaa9326f54ffd32}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!save@{save}}
\index{save@{save}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{save}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ int {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::save (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file\+Name}
\end{DoxyParamCaption}
) const}\label{group__Array2_gae814cd75c4b73c7d6eaa9326f54ffd32}


Save an array to the file with the specified name. 

\hypertarget{group__Array2_ga1629bd05ae0942ea48280889107c0e0c}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!sum@{sum}}
\index{sum@{sum}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{sum}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} T {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::sum (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga1629bd05ae0942ea48280889107c0e0c}


Get the sum of the elements in the array. 

\hypertarget{group__Array2_gaffc13232a2867e15760699ad77bec551}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!swap@{swap}}
\index{swap@{swap}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{swap}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ void {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::swap (
\begin{DoxyParamCaption}
\item[{{\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gaffc13232a2867e15760699ad77bec551}


Swap the array data with the data of the specified array. 

\hypertarget{group__Array2_gafdaa32bb45e93ecd3d17b0e63fd75bb4}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!transpose@{transpose}}
\index{transpose@{transpose}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{transpose}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ Array2$<$T$>$ S\+P\+L\+::transpose (
\begin{DoxyParamCaption}
\item[{const {\bf Array2}$<$ T $>$ \&}]{a}
\end{DoxyParamCaption}
)}\label{group__Array2_gafdaa32bb45e93ecd3d17b0e63fd75bb4}


Get the transpose of the array. 

\hypertarget{group__Array2_ga3744ba5cddc2172f42da4875d160edfc}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!unshare@{unshare}}
\index{unshare@{unshare}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{unshare}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} void {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::unshare (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Array2_ga3744ba5cddc2172f42da4875d160edfc}


Force the underlying data to be copied if the data is shared. 

\hypertarget{group__Array2_ga53c7bd94a738ceca2a2a84a1047f75d3}{}\index{Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}!````~Array2@{$\sim$\+Array2}}
\index{````~Array2@{$\sim$\+Array2}!Two-\/\+Dimensional Arrays@{Two-\/\+Dimensional Arrays}}
\subsubsection[{$\sim$\+Array2}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T $>$ {\bf S\+P\+L\+\_\+\+A\+R\+R\+A\+Y2\+\_\+\+I\+N\+L\+I\+N\+E} {\bf S\+P\+L\+::\+Array2}$<$ T $>$\+::$\sim$Array2 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{group__Array2_ga53c7bd94a738ceca2a2a84a1047f75d3}


The destructor. 

