Squashed 'third_party/boostorg/multi_array/' content from commit abcb283
Change-Id: I4b93f75f0b15b00216d918bd6db5fc4fcb9c4cc2
git-subtree-dir: third_party/boostorg/multi_array
git-subtree-split: abcb2839d56669d1b5bb8a240ec644f47c66beb2
diff --git a/doc/xml/const_multi_array_ref.xml b/doc/xml/const_multi_array_ref.xml
new file mode 100644
index 0000000..edf43bf
--- /dev/null
+++ b/doc/xml/const_multi_array_ref.xml
@@ -0,0 +1,190 @@
+<sect2 id="const_multi_array_ref">
+<title><literal>const_multi_array_ref</literal></title>
+
+<para>
+<literal>const_multi_array_ref</literal> is a multi-dimensional container
+adaptor. It provides the MultiArray interface over any contiguous
+block of elements. <literal>const_multi_array_ref</literal> exports the
+same interface as <literal>multi_array</literal>, with the exception
+of the constructors.
+</para>
+
+
+<formalpara>
+ <title>Model Of.</title>
+<para>
+<literal>const_multi_array_ref</literal> models
+<link linkend="MultiArray">MultiArray</link>,
+<ulink url="../../../libs/utility/CopyConstructible.html">CopyConstructible</ulink>.
+and depending on the element type, it may also model
+<ulink url="http://www.sgi.com/tech/stl/EqualityComparable.html">EqualityComparable</ulink> and <ulink url="http://www.sgi.com/tech/stl/LessThanComparable.html">LessThanComparable</ulink>.
+
+Detailed descriptions are provided here only for operations that are
+not described in the <literal>multi_array</literal> reference.
+</para>
+</formalpara>
+
+<formalpara>
+<title>Synopsis</title>
+
+<programlisting>
+< const;
+ const_array_view<Dims>::type operator[](const indices_tuple& r) const;
+
+ // queries
+ const element* data() const;
+ const element* origin() const;
+ const size_type* shape() const;
+ const index* strides() const;
+ const index* index_bases() const;
+ const storage_order_type& storage_order() const;
+
+ // comparators
+ bool operator==(const const_multi_array_ref& rhs);
+ bool operator!=(const const_multi_array_ref& rhs);
+ bool operator<(const const_multi_array_ref& rhs);
+ bool operator>(const const_multi_array_ref& rhs);
+ bool operator>=(const const_multi_array_ref& rhs);
+ bool operator<=(const const_multi_array_ref& rhs);
+
+ // modifiers:
+ template <typename SizeList>
+ void reshape(const SizeList& sizes)
+ template <typename BaseList> void reindex(const BaseList& values);
+ void reindex(index value);
+};
+]]>
+</programlisting>
+</formalpara>
+
+<formalpara>
+<title>Constructors</title>
+
+<variablelist>
+<varlistentry>
+<term><programlisting>template <typename ExtentList>
+explicit const_multi_array_ref(TPtr data,
+ const ExtentList& sizes,
+ const storage_order& store = c_storage_order());
+</programlisting></term>
+<listitem>
+
+<para>
+This constructs a <literal>const_multi_array_ref</literal> using the specified
+parameters. <literal>sizes</literal> specifies the shape of the
+constructed <literal>const_multi_array_ref</literal>. <literal>store</literal>
+specifies the storage order or layout in memory of the array
+dimensions.
+</para>
+
+<formalpara><title><literal>ExtentList</literal> Requirements</title>
+<para>
+<literal>ExtentList</literal> must model <ulink url="../../utility/Collection.html">Collection</ulink>.
+</para>
+</formalpara>
+
+<formalpara><title>Preconditions</title>
+<para><literal>sizes.size() == NumDims;</literal></para>
+</formalpara>
+
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<programlisting><![CDATA[explicit const_multi_array_ref(TPtr data,
+ extent_gen::gen_type<NumDims>::type ranges,
+ const storage_order& store = c_storage_order());]]>
+</programlisting></term>
+<listitem>
+<formalpara><title>Effects</title>
+<para>
+This constructs a <literal>const_multi_array_ref</literal> using the specified
+ parameters. <literal>ranges</literal> specifies the shape and
+index bases of the constructed const_multi_array_ref. It is the result of
+<literal>NumDims</literal> chained calls to
+ <literal>extent_gen::operator[]</literal>. <literal>store</literal>
+specifies the storage order or layout in memory of the array
+dimensions.
+</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term><programlisting>
+<![CDATA[const_multi_array_ref(const const_multi_array_ref& x);]]>
+</programlisting></term>
+<listitem>
+<formalpara>
+<title>Effects</title>
+ <para>This constructs a shallow copy of <literal>x</literal>.
+</para></formalpara>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+</formalpara>
+
+</sect2>