diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index af64045c..00000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,72 +0,0 @@ -name: build_and_test - -on: - - push - - pull_request - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build_and_test: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] - steps: - - uses: actions/checkout@v2 - - uses: conda-incubator/setup-miniconda@v3 - with: - auto-update-conda: true - miniconda-version: "latest" - channel-priority: strict - channels: conda-forge - python-version: ${{ matrix.python-version }} - environment-file: etc/conda-forge-testing.yaml - activate-environment: ndarray - - - name: Print conda environment - run: conda list -n ndarray - - - name: Create Build Environment - # Some projects don't allow in-source building, so create a separate build directory - # We'll use this as our working directory for all subsequent commands - run: cmake -E make_directory ${{github.workspace}}/build - - - name: Configure CMake - # Use a bash shell so we can use the same syntax for environment variable - # access regardless of the host operating system - shell: bash -l {0} - working-directory: ${{github.workspace}}/build - # Note the current convention is to use the -S and -B options here to specify source - # and build directories, but this is only available with CMake 3.13 and higher. - # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DNDARRAY_PYBIND11=ON -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DPYTHON_VERSION=${{matrix.python-version}} - - - name: Build - working-directory: ${{github.workspace}}/build - shell: bash -l {0} - # Execute the build. You can specify a specific target with "--target " - run: cmake --build . --config $BUILD_TYPE - - - name: Test - working-directory: ${{github.workspace}}/build - shell: bash -l {0} - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C $BUILD_TYPE - - - name: Build Documentation - working-directory: ${{github.workspace}}/build - shell: bash -l {0} - run: make doc - - - name: Deploy Documentation (master/py3.8 only) - uses: JamesIves/github-pages-deploy-action@3.7.1 - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.python-version == 3.8 }} - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: build/doc/html # The folder the action should deploy. - CLEAN: true # Automatically remove deleted files from the deploy branch diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 567609b1..00000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build/ diff --git a/ArrayAccess_8h.html b/ArrayAccess_8h.html new file mode 100644 index 00000000..20ce68d2 --- /dev/null +++ b/ArrayAccess_8h.html @@ -0,0 +1,102 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/ArrayAccess.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ArrayAccess.h File Reference
+
+
+ +

Definitions for ArrayAccess. +More...

+ +

Go to the source code of this file.

+ + + + +

+Classes

class  ndarray::detail::ArrayAccess< Array_ >
 
+

Detailed Description

+

Definitions for ArrayAccess.

+
+ + + + diff --git a/ArrayAccess_8h_source.html b/ArrayAccess_8h_source.html new file mode 100644 index 00000000..4cc00fa5 --- /dev/null +++ b/ArrayAccess_8h_source.html @@ -0,0 +1,128 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/ArrayAccess.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ArrayAccess.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_ArrayAccess_h_INCLUDED
+
12#define NDARRAY_DETAIL_ArrayAccess_h_INCLUDED
+
13
+ +
21
+
22namespace ndarray {
+
23namespace detail {
+
24
+
25template <typename Array_>
+ +
27public:
+
28 typedef typename ExpressionTraits< Array_ >::Element Element;
+
29 typedef typename ExpressionTraits< Array_ >::Core Core;
+
30 typedef typename ExpressionTraits< Array_ >::CorePtr CorePtr;
+
31
+
32 static CorePtr const & getCore(Array_ const & array) {
+
33 return array._core;
+
34 }
+
35
+
36 static Array_ construct(Element * data, CorePtr const & core) {
+
37 return Array_(data, core);
+
38 }
+
39
+
40};
+
41
+
42} // namespace detail
+
43} // namespace ndarray
+
44
+
45#endif // !NDARRAY_DETAIL_ArrayAccess_h_INCLUDED
+
Traits for Expression.
+
Definition ArrayAccess.h:26
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
+ + + + diff --git a/ArrayBaseN_8h.html b/ArrayBaseN_8h.html new file mode 100644 index 00000000..f8485ec7 --- /dev/null +++ b/ArrayBaseN_8h.html @@ -0,0 +1,121 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayBaseN.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ArrayBaseN.h File Reference
+
+
+ +

Definition of ArrayBaseN, a dimension-specialized CRTP base class for Array and ArrayRef. +More...

+
#include "ndarray/ArrayBase.h"
+
+

Go to the source code of this file.

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

+Classes

class  ndarray::ArrayBaseN< Derived, N >
 An intermediate CRTP base class for Array and ArrayRef. More...
 
class  ndarray::ArrayBaseN< Derived, 1 >
 An intermediate CRTP base class for Array and ArrayRef (specialization for 1). More...
 
class  ndarray::ArrayBaseN< Derived, 2 >
 An intermediate CRTP base class for Array and ArrayRef (specialization for 2). More...
 
class  ndarray::ArrayBaseN< Derived, 3 >
 An intermediate CRTP base class for Array and ArrayRef (specialization for 3). More...
 
class  ndarray::ArrayBaseN< Derived, 4 >
 An intermediate CRTP base class for Array and ArrayRef (specialization for 4). More...
 
class  ndarray::ArrayBaseN< Derived, 5 >
 An intermediate CRTP base class for Array and ArrayRef (specialization for 5). More...
 
class  ndarray::ArrayBaseN< Derived, 6 >
 An intermediate CRTP base class for Array and ArrayRef (specialization for 6). More...
 
+

Detailed Description

+

Definition of ArrayBaseN, a dimension-specialized CRTP base class for Array and ArrayRef.

+
+ + + + diff --git a/ArrayBaseN_8h_source.html b/ArrayBaseN_8h_source.html new file mode 100644 index 00000000..a873c141 --- /dev/null +++ b/ArrayBaseN_8h_source.html @@ -0,0 +1,294 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayBaseN.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ArrayBaseN.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11
+
12#ifndef NDARRAY_ArrayBaseN_h_INCLUDED
+
13#define NDARRAY_ArrayBaseN_h_INCLUDED
+
14
+
21#include "ndarray/ArrayBase.h"
+
22
+
23namespace ndarray {
+
24
+
28template <typename Derived, int N = ArrayBase<Derived>::ND::value>
+
29class ArrayBaseN : public ArrayBase< Derived > {
+ +
31protected:
+
32 typedef typename Super::Core Core;
+
33 typedef typename Super::CorePtr CorePtr;
+
34public:
+
35 typedef typename Super::Element Element;
+
36private:
+
37 template <typename T_, int N_, int C_> friend class Array;
+
38 template <typename T_, int N_, int C_> friend class ArrayRef;
+
39 void operator=(ArrayBaseN const & other) {
+
40 Super::operator=(other);
+
41 }
+
43 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
44};
+
45
+
46
+
50template <typename Derived>
+
51class ArrayBaseN<Derived,1> : public ArrayBase< Derived > {
+ +
53protected:
+
54 typedef typename Super::Core Core;
+
55 typedef typename Super::CorePtr CorePtr;
+
56public:
+
57 typedef typename Super::Element Element;
+
58
+
59 Element & operator()(int n0) const {
+
60 return this->operator[](makeVector(n0));
+
61 }
+
62
+
63private:
+
64 template <typename T_, int N_, int C_> friend class Array;
+
65 template <typename T_, int N_, int C_> friend class ArrayRef;
+
66
+
67 void operator=(ArrayBaseN const & other) {
+
68 Super::operator=(other);
+
69 }
+
70
+
71 template <typename Other>
+
72 ArrayBaseN(ArrayBaseN<Other,1> const & other) : Super(other) {}
+
73
+
74 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
75};
+
76
+
80template <typename Derived>
+
81class ArrayBaseN<Derived,2> : public ArrayBase< Derived > {
+ +
83protected:
+
84 typedef typename Super::Core Core;
+
85 typedef typename Super::CorePtr CorePtr;
+
86public:
+
87 typedef typename Super::Element Element;
+
88
+
89 Element & operator()(int n0, int n1) const {
+
90 return this->operator[](makeVector(n0, n1));
+
91 }
+
92
+
93private:
+
94 template <typename T_, int N_, int C_> friend class Array;
+
95 template <typename T_, int N_, int C_> friend class ArrayRef;
+
96
+
97 void operator=(ArrayBaseN const & other) {
+
98 Super::operator=(other);
+
99 }
+
100
+
101 template <typename Other>
+
102 ArrayBaseN(ArrayBaseN<Other,2> const & other) : Super(other) {}
+
103
+
104 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
105};
+
106
+
110template <typename Derived>
+
111class ArrayBaseN<Derived,3> : public ArrayBase< Derived > {
+ +
113protected:
+
114 typedef typename Super::Core Core;
+
115 typedef typename Super::CorePtr CorePtr;
+
116public:
+
117 typedef typename Super::Element Element;
+
118
+
119 Element & operator()(int n0, int n1, int n2) const {
+
120 return this->operator[](makeVector(n0, n1, n2));
+
121 }
+
122
+
123private:
+
124 template <typename T_, int N_, int C_> friend class Array;
+
125 template <typename T_, int N_, int C_> friend class ArrayRef;
+
126
+
127 void operator=(ArrayBaseN const & other) {
+
128 Super::operator=(other);
+
129 }
+
130
+
131 template <typename Other>
+
132 ArrayBaseN(ArrayBaseN<Other,3> const & other) : Super(other) {}
+
133
+
134 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
135};
+
136
+
140template <typename Derived>
+
141class ArrayBaseN<Derived,4> : public ArrayBase< Derived > {
+ +
143protected:
+
144 typedef typename Super::Core Core;
+
145 typedef typename Super::CorePtr CorePtr;
+
146public:
+
147 typedef typename Super::Element Element;
+
148
+
149 Element & operator()(int n0, int n1, int n2, int n3) const {
+
150 return this->operator[](makeVector(n0, n1, n2, n3));
+
151 }
+
152
+
153private:
+
154 template <typename T_, int N_, int C_> friend class Array;
+
155 template <typename T_, int N_, int C_> friend class ArrayRef;
+
156
+
157 void operator=(ArrayBaseN const & other) {
+
158 Super::operator=(other);
+
159 }
+
160
+
161 template <typename Other>
+
162 ArrayBaseN(ArrayBaseN<Other,4> const & other) : Super(other) {}
+
163
+
164 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
165};
+
166
+
170template <typename Derived>
+
171class ArrayBaseN<Derived,5> : public ArrayBase< Derived > {
+ +
173protected:
+
174 typedef typename Super::Core Core;
+
175 typedef typename Super::CorePtr CorePtr;
+
176public:
+
177 typedef typename Super::Element Element;
+
178
+
179 Element & operator()(int n0, int n1, int n2, int n3, int n4) const {
+
180 return this->operator[](makeVector(n0, n1, n2, n3, n4));
+
181 }
+
182
+
183private:
+
184 template <typename T_, int N_, int C_> friend class Array;
+
185 template <typename T_, int N_, int C_> friend class ArrayRef;
+
186
+
187 void operator=(ArrayBaseN const & other) {
+
188 Super::operator=(other);
+
189 }
+
190
+
191 template <typename Other>
+
192 ArrayBaseN(ArrayBaseN<Other,5> const & other) : Super(other) {}
+
193
+
194 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
195};
+
196
+
200template <typename Derived>
+
201class ArrayBaseN<Derived,6> : public ArrayBase< Derived > {
+ +
203protected:
+
204 typedef typename Super::Core Core;
+
205 typedef typename Super::CorePtr CorePtr;
+
206public:
+
207 typedef typename Super::Element Element;
+
208
+
209 Element & operator()(int n0, int n1, int n2, int n3, int n4, int n5) const {
+
210 return this->operator[](makeVector(n0, n1, n2, n3, n4, n5));
+
211 }
+
212
+
213private:
+
214 template <typename T_, int N_, int C_> friend class Array;
+
215 template <typename T_, int N_, int C_> friend class ArrayRef;
+
216
+
217 void operator=(ArrayBaseN const & other) {
+
218 Super::operator=(other);
+
219 }
+
220
+
221 template <typename Other>
+
222 ArrayBaseN(ArrayBaseN<Other,6> const & other) : Super(other) {}
+
223
+
224 ArrayBaseN(Element * data, CorePtr const & core) : Super(data, core) {}
+
225};
+
226
+
227} // namespace ndarray
+
228
+
229#endif // !NDARRAY_ArrayBaseN_h_INCLUDED
+
Definitions for ArrayBase.
+
An intermediate CRTP base class for Array and ArrayRef.
Definition ArrayBaseN.h:29
+
CRTP implementation for Array and ArrayRef.
Definition ArrayBase.h:43
+
Reference operator[](Size n) const
Return a single subarray.
Definition ArrayBase.h:75
+
Traits::Element Element
Data type of array elements.
Definition ArrayBase.h:50
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
A multidimensional strided array.
Definition Array.h:35
+
+ + + + diff --git a/ArrayBase_8h.html b/ArrayBase_8h.html new file mode 100644 index 00000000..2a1bd747 --- /dev/null +++ b/ArrayBase_8h.html @@ -0,0 +1,114 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayBase.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ArrayBase.h File Reference
+
+
+ +

Definitions for ArrayBase. +More...

+
#include <boost/iterator/counting_iterator.hpp>
+#include "ndarray/ExpressionBase.h"
+#include "ndarray/Vector.h"
+#include "ndarray/detail/Core.h"
+#include "ndarray/detail/NestedIterator.h"
+#include "ndarray/detail/StridedIterator.h"
+#include "ndarray/detail/ArrayAccess.h"
+#include "ndarray/detail/ViewBuilder.h"
+#include "ndarray/ArrayTraits.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  ndarray::ArrayBase< Derived >
 CRTP implementation for Array and ArrayRef. More...
 
struct  ndarray::ArrayBase< Derived >::ResultOf< View_ >
 A template metafunction class to determine the result of a view indexing operation. More...
 
+

Detailed Description

+

Definitions for ArrayBase.

+
+ + + + diff --git a/ArrayBase_8h_source.html b/ArrayBase_8h_source.html new file mode 100644 index 00000000..3acfad94 --- /dev/null +++ b/ArrayBase_8h_source.html @@ -0,0 +1,325 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ArrayBase.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_ArrayBase_h_INCLUDED
+
12#define NDARRAY_ArrayBase_h_INCLUDED
+
13
+
21#include <boost/iterator/counting_iterator.hpp>
+
22
+ +
24#include "ndarray/Vector.h"
+
25#include "ndarray/detail/Core.h"
+ + + + +
30#include "ndarray/ArrayTraits.h"
+
31
+
32namespace ndarray {
+
33
+
42template <typename Derived>
+
43class ArrayBase : public ExpressionBase<Derived> {
+
44protected:
+ +
46 typedef typename Traits::Core Core;
+
47 typedef typename Traits::CorePtr CorePtr;
+
48public:
+
50 typedef typename Traits::Element Element;
+
52 typedef typename Traits::Iterator Iterator;
+
54 typedef typename Traits::Reference Reference;
+
56 typedef typename Traits::Value Value;
+
58 typedef typename Traits::ND ND;
+
60 typedef typename Traits::RMC RMC;
+ + +
66 typedef ArrayRef<Element,ND::value,-RMC::value> FullTranspose;
+ + + +
73
+
75 Reference operator[](Size n) const {
+
76 return Traits::makeReference(
+
77 this->_data + n * this->
+
78 #ifndef _MSC_VER
+
79 template
+
80 #endif
+
81 getStride<0>(),
+
82 this->_core
+
83 );
+
84 }
+
85
+
87 Element & operator[](Index const & i) const {
+
88 return *(this->_data + this->_core->
+
89 #ifndef _MSC_VER
+
90 template
+
91 #endif
+
92 computeOffset(i));
+
93 }
+
94
+
96 Iterator begin() const {
+
97 return Traits::makeIterator(
+
98 this->_data,
+
99 this->_core,
+
100 this->
+
101 #ifndef _MSC_VER
+
102 template
+
103 #endif
+
104 getStride<0>()
+
105 );
+
106 }
+
107
+
109 Iterator end() const {
+
110 return Traits::makeIterator(
+
111 this->_data + this->
+
112 #ifndef _MSC_VER
+
113 template
+
114 #endif
+
115 getSize<0>() * this->
+
116 #ifndef _MSC_VER
+
117 template
+
118 #endif
+
119 getStride<0>(),
+
120 this->_core,
+
121 this->
+
122 #ifndef _MSC_VER
+
123 template
+
124 #endif
+
125 getStride<0>()
+
126 );
+
127 }
+
128
+
130 Element * getData() const { return _data; }
+
131
+
133 bool isEmpty() const { return _data == 0; }
+
134
+
136 Manager::Ptr getManager() const { return this->_core->getManager(); }
+
137
+
139 template <int P> Size getSize() const {
+
140 return detail::getDimension<P>(*this->_core).getSize();
+
141 }
+
142
+
144 template <int P> Offset getStride() const {
+
145 return detail::getDimension<P>(*this->_core).getStride();
+
146 }
+
147
+
149 Index getShape() const { Index r; this->_core->fillShape(r); return r; }
+
150
+
152 Strides getStrides() const { Strides r; this->_core->fillStrides(r); return r; }
+
153
+
155 Size getNumElements() const { return this->_core->getNumElements(); }
+
156
+ +
159 Index shape = getShape();
+
160 Strides strides = getStrides();
+
161 for (int n=0; n < ND::value / 2; ++n) {
+
162 std::swap(shape[n], shape[ND::value-n-1]);
+
163 std::swap(strides[n], strides[ND::value-n-1]);
+
164 }
+
165 return FullTranspose(
+
166 getData(),
+
167 Core::create(shape, strides, getManager())
+
168 );
+
169 }
+
170
+
172 Transpose transpose(Index const & order) const {
+
173 Index newShape;
+
174 Strides newStrides;
+
175 Index oldShape = getShape();
+
176 Strides oldStrides = getStrides();
+
177 for (int n=0; n < ND::value; ++n) {
+
178 newShape[n] = oldShape[order[n]];
+
179 newStrides[n] = oldStrides[order[n]];
+
180 }
+
181 return Transpose(
+
182 getData(),
+
183 Core::create(newShape, newStrides, getManager())
+
184 );
+
185 }
+
186
+
188 Shallow const shallow() const { return Shallow(this->getSelf()); }
+
189
+
191 Deep const deep() const { return Deep(this->getSelf()); }
+
192
+
194 template <typename View_>
+
195 struct ResultOf {
+
196 typedef Element Element_;
+ + + + +
201 };
+
202
+
204 template <typename Seq>
+
205 typename ResultOf< View<Seq> >::Type
+
206 operator[](View<Seq> const & def) const {
+
207 return detail::buildView(this->getSelf(), def._seq);
+
208 }
+
209
+
210protected:
+
211 template <typename T_, int N_, int C_> friend class Array;
+
212 template <typename T_, int N_, int C_> friend class ArrayRef;
+
213 template <typename T_, int N_, int C_> friend struct ArrayTraits;
+
214 template <typename T_, int N_, int C_> friend class detail::NestedIterator;
+
215 template <typename Derived_> friend class ArrayBase;
+
216 template <typename Array_> friend class detail::ArrayAccess;
+
217
+
218 Element * _data;
+
219 CorePtr _core;
+
220
+
221 void operator=(ArrayBase const & other) {
+
222 _data = other._data;
+
223 _core = other._core;
+
224 }
+
225
+
226 template <typename Other>
+
227 ArrayBase(ArrayBase<Other> const & other) : _data(other._data), _core(other._core) {}
+
228
+
229 ArrayBase(Element * data, CorePtr const & core) : _data(data), _core(core) {}
+
230};
+
231
+
232} // namespace ndarray
+
233
+
234#endif // !NDARRAY_ArrayBase_h_INCLUDED
+
Definitions for ArrayAccess.
+
Traits for Array.
+
Definitions for Core.
+
Definitions for ExpressionBase.
+
Definition of NestedIterator.
+
Definition of StridedIterator.
+
Definition for Vector.
+
Implementation of arbitrary views into arrays.
+
CRTP implementation for Array and ArrayRef.
Definition ArrayBase.h:43
+
Offset getStride() const
Return the stride in a specific dimension.
Definition ArrayBase.h:144
+
Manager::Ptr getManager() const
Return the opaque object responsible for memory management.
Definition ArrayBase.h:136
+
Shallow const shallow() const
Return a Array view to this.
Definition ArrayBase.h:188
+
Reference operator[](Size n) const
Return a single subarray.
Definition ArrayBase.h:75
+
FullTranspose transpose() const
Return a view of the array with the order of the dimensions reversed.
Definition ArrayBase.h:158
+
ArrayRef< Element, ND::value,-RMC::value > FullTranspose
ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
Definition ArrayBase.h:66
+
Array< Element, ND::value, RMC::value > Shallow
The corresponding Array type.
Definition ArrayBase.h:70
+
ArrayRef< Element, ND::value, 0 > Transpose
ArrayRef to a noncontiguous array; the result of a call to transpose(...).
Definition ArrayBase.h:68
+
bool isEmpty() const
Return true if the array has a null data point.
Definition ArrayBase.h:133
+
ResultOf< View< Seq > >::Type operator[](View< Seq > const &def) const
Return a general view into this array (see Tutorial).
Definition ArrayBase.h:206
+
Transpose transpose(Index const &order) const
Return a view of the array with the dimensions permuted.
Definition ArrayBase.h:172
+
Traits::ND ND
Number of dimensions (boost::mpl::int_).
Definition ArrayBase.h:58
+
Size getNumElements() const
Return the total number of elements in the array.
Definition ArrayBase.h:155
+
Size getSize() const
Return the size of a specific dimension.
Definition ArrayBase.h:139
+
Traits::Element Element
Data type of array elements.
Definition ArrayBase.h:50
+
Traits::Iterator Iterator
Nested array or element iterator.
Definition ArrayBase.h:52
+
Traits::Value Value
Nested array or element value type.
Definition ArrayBase.h:56
+
Deep const deep() const
Return an ArrayRef view to this.
Definition ArrayBase.h:191
+
Iterator end() const
Return an Iterator to one past the end of the array.
Definition ArrayBase.h:109
+
Vector< Offset, ND::value > Strides
Vector type for N-dimensional offsets and strides.
Definition ArrayBase.h:64
+
Traits::Reference Reference
Nested array or element reference.
Definition ArrayBase.h:54
+
ArrayRef< Element, ND::value, RMC::value > Deep
The corresponding ArrayRef type.
Definition ArrayBase.h:72
+
Element * getData() const
Return a raw pointer to the first element of the array.
Definition ArrayBase.h:130
+
Strides getStrides() const
Return a Vector of the strides of all dimensions.
Definition ArrayBase.h:152
+
Iterator begin() const
Return an Iterator to the beginning of the array.
Definition ArrayBase.h:96
+
Element & operator[](Index const &i) const
Return a single element from the array.
Definition ArrayBase.h:87
+
Index getShape() const
Return a Vector of the sizes of all dimensions.
Definition ArrayBase.h:149
+
Vector< Size, ND::value > Index
Vector type for N-dimensional indices and shapes.
Definition ArrayBase.h:62
+
Traits::RMC RMC
Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
Definition ArrayBase.h:60
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
A multidimensional strided array.
Definition Array.h:35
+
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
+
Definition ArrayAccess.h:26
+
Definition NestedIterator.h:46
+
A template metafunction class to determine the result of a view indexing operation.
Definition ArrayBase.h:195
+
Dimension-specialized traits shared by Array and ArrayRef.
Definition ArrayTraits.h:44
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
A fixed-size 1D array class.
Definition Vector.h:82
+
A template meta-sequence that defines an arbitrary view into an unspecified array.
Definition views.h:74
+
Sequence _seq
A boost::fusion sequence of index objects.
Definition views.h:76
+
Definition ViewBuilder.h:206
+
+ + + + diff --git a/ArrayRef_8h.html b/ArrayRef_8h.html new file mode 100644 index 00000000..0b7d8cbd --- /dev/null +++ b/ArrayRef_8h.html @@ -0,0 +1,109 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayRef.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ArrayRef.h File Reference
+
+
+ +

Definitions for ArrayRef. +More...

+
#include "ndarray_fwd.h"
+#include "ndarray/ArrayTraits.h"
+#include "ndarray/ArrayBaseN.h"
+#include "ndarray/detail/ArrayAccess.h"
+#include "ndarray/Vector.h"
+#include "ndarray/detail/Core.h"
+#include "ndarray/views.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  ndarray::ArrayRef< T, N, C >
 A proxy class for Array with deep assignment operators. More...
 
+

Detailed Description

+

Definitions for ArrayRef.

+
+ + + + diff --git a/ArrayRef_8h_source.html b/ArrayRef_8h_source.html new file mode 100644 index 00000000..14b6946d --- /dev/null +++ b/ArrayRef_8h_source.html @@ -0,0 +1,453 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayRef.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ArrayRef.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_ArrayRef_h_INCLUDED
+
12#define NDARRAY_ArrayRef_h_INCLUDED
+
13
+
20#include "ndarray_fwd.h"
+
21#include "ndarray/ArrayTraits.h"
+
22#include "ndarray/ArrayBaseN.h"
+ +
24#include "ndarray/Vector.h"
+
25#include "ndarray/detail/Core.h"
+
26#include "ndarray/views.h"
+
27
+
28namespace ndarray {
+
29
+
33template <typename T, int N, int C>
+
34class ArrayRef : public ArrayBaseN< ArrayRef<T,N,C> > {
+ +
36 typedef typename Super::Core Core;
+
37 typedef typename Super::CorePtr CorePtr;
+
38public:
+
39 typedef typename Super::Iterator Iterator;
+
40
+
49 explicit ArrayRef(Size n1, Size n2=1, Size n3=1, Size n4=1, Size n5=1, Size n6=1, Size n7=1, Size n8=1);
+
50
+
56 template <typename U>
+
57 explicit ArrayRef(Vector<U,N> const & shape);
+
58
+
62 ArrayRef(ArrayRef const & other) : Super(other._data, other._core) {}
+
63
+
70 template <typename T_, int C_>
+
71 explicit ArrayRef(
+
72 Array<T_,N,C_> const & other
+
73#ifndef DOXYGEN
+
74 , typename boost::enable_if<detail::Convertible<N,T_,C_,T,C>,void*>::type=0
+
75#endif
+
76 ) : Super(other._data, other._core) {}
+
77
+
84 template <typename T_, int C_>
+ +
86 ArrayRef<T_,N,C_> const & other
+
87#ifndef DOXYGEN
+
88 , typename boost::enable_if<detail::Convertible<N,T_,C_,T,C>,void*>::type=0
+
89#endif
+
90 ) : Super(other._data, other._core) {}
+
91
+
101 ArrayRef const & operator=(Array<T,N,C> const & other) const {
+
102 NDARRAY_ASSERT(other.getShape() == this->getShape());
+
103 std::copy(other.begin(), other.end(), this->begin());
+
104 return *this;
+
105 }
+
106
+
107 ArrayRef const & operator=(ArrayRef const & other) const {
+
108 NDARRAY_ASSERT(other.getShape() == this->getShape());
+
109 std::copy(other.begin(), other.end(), this->begin());
+
110 return *this;
+
111 }
+
112
+
113
+
115 template <typename Other>
+
116 ArrayRef const &
+
117 operator =(ExpressionBase<Other> const & expr) const {
+
118 NDARRAY_ASSERT(expr.getShape()
+
119 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
120 std::copy(expr.begin(),expr.end(),this->begin());
+
121 return *this;
+
122 }
+
123
+
125 template <typename Scalar>
+
126#ifndef DOXYGEN
+
127 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
128#else
+
129 ArrayRef const &
+
130#endif
+
131 operator =(Scalar const & scalar) const {
+
132 Super::Traits::fill(this->begin(),this->end(),scalar);
+
133 return *this;
+
134 }
+
135
+
137 template <typename Other>
+
138 ArrayRef const &
+
139 operator +=(ExpressionBase<Other> const & expr) const {
+
140 NDARRAY_ASSERT(expr.getShape()
+
141 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
142 Iterator const i_end = this->end();
+
143 typename Other::Iterator j = expr.begin();
+
144 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) += (*j);
+
145 return *this;
+
146 }
+
147
+
149 template <typename Scalar>
+
150#ifndef DOXYGEN
+
151 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
152#else
+
153 ArrayRef const &
+
154#endif
+
155 operator +=(Scalar const & scalar) const {
+
156 Iterator const i_end = this->end();
+
157 for (Iterator i = this->begin(); i != i_end; ++i) (*i) += scalar;
+
158 return *this;
+
159 }
+
160
+
162 template <typename Other>
+
163 ArrayRef const &
+
164 operator -=(ExpressionBase<Other> const & expr) const {
+
165 NDARRAY_ASSERT(expr.getShape()
+
166 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
167 Iterator const i_end = this->end();
+
168 typename Other::Iterator j = expr.begin();
+
169 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) -= (*j);
+
170 return *this;
+
171 }
+
172
+
174 template <typename Scalar>
+
175#ifndef DOXYGEN
+
176 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
177#else
+
178 ArrayRef const &
+
179#endif
+
180 operator -=(Scalar const & scalar) const {
+
181 Iterator const i_end = this->end();
+
182 for (Iterator i = this->begin(); i != i_end; ++i) (*i) -= scalar;
+
183 return *this;
+
184 }
+
185
+
187 template <typename Other>
+
188 ArrayRef const &
+
189 operator *=(ExpressionBase<Other> const & expr) const {
+
190 NDARRAY_ASSERT(expr.getShape()
+
191 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
192 Iterator const i_end = this->end();
+
193 typename Other::Iterator j = expr.begin();
+
194 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) *= (*j);
+
195 return *this;
+
196 }
+
197
+
199 template <typename Scalar>
+
200#ifndef DOXYGEN
+
201 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
202#else
+
203 ArrayRef const &
+
204#endif
+
205 operator *=(Scalar const & scalar) const {
+
206 Iterator const i_end = this->end();
+
207 for (Iterator i = this->begin(); i != i_end; ++i) (*i) *= scalar;
+
208 return *this;
+
209 }
+
210
+
212 template <typename Other>
+
213 ArrayRef const &
+
214 operator /=(ExpressionBase<Other> const & expr) const {
+
215 NDARRAY_ASSERT(expr.getShape()
+
216 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
217 Iterator const i_end = this->end();
+
218 typename Other::Iterator j = expr.begin();
+
219 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) /= (*j);
+
220 return *this;
+
221 }
+
222
+
224 template <typename Scalar>
+
225#ifndef DOXYGEN
+
226 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
227#else
+
228 ArrayRef const &
+
229#endif
+
230 operator /=(Scalar const & scalar) const {
+
231 Iterator const i_end = this->end();
+
232 for (Iterator i = this->begin(); i != i_end; ++i) (*i) /= scalar;
+
233 return *this;
+
234 }
+
235
+
237 template <typename Other>
+
238 ArrayRef const &
+
239 operator %=(ExpressionBase<Other> const & expr) const {
+
240 NDARRAY_ASSERT(expr.getShape()
+
241 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
242 Iterator const i_end = this->end();
+
243 typename Other::Iterator j = expr.begin();
+
244 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) %= (*j);
+
245 return *this;
+
246 }
+
247
+
249 template <typename Scalar>
+
250#ifndef DOXYGEN
+
251 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
252#else
+
253 ArrayRef const &
+
254#endif
+
255 operator %=(Scalar const & scalar) const {
+
256 Iterator const i_end = this->end();
+
257 for (Iterator i = this->begin(); i != i_end; ++i) (*i) %= scalar;
+
258 return *this;
+
259 }
+
260
+
262 template <typename Other>
+
263 ArrayRef const &
+
264 operator ^=(ExpressionBase<Other> const & expr) const {
+
265 NDARRAY_ASSERT(expr.getShape()
+
266 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
267 Iterator const i_end = this->end();
+
268 typename Other::Iterator j = expr.begin();
+
269 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) ^= (*j);
+
270 return *this;
+
271 }
+
272
+
274 template <typename Scalar>
+
275#ifndef DOXYGEN
+
276 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
277#else
+
278 ArrayRef const &
+
279#endif
+
280 operator ^=(Scalar const & scalar) const {
+
281 Iterator const i_end = this->end();
+
282 for (Iterator i = this->begin(); i != i_end; ++i) (*i) ^= scalar;
+
283 return *this;
+
284 }
+
285
+
287 template <typename Other>
+
288 ArrayRef const &
+
289 operator &=(ExpressionBase<Other> const & expr) const {
+
290 NDARRAY_ASSERT(expr.getShape()
+
291 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
292 Iterator const i_end = this->end();
+
293 typename Other::Iterator j = expr.begin();
+
294 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) &= (*j);
+
295 return *this;
+
296 }
+
297
+
299 template <typename Scalar>
+
300#ifndef DOXYGEN
+
301 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
302#else
+
303 ArrayRef const &
+
304#endif
+
305 operator &=(Scalar const & scalar) const {
+
306 Iterator const i_end = this->end();
+
307 for (Iterator i = this->begin(); i != i_end; ++i) (*i) &= scalar;
+
308 return *this;
+
309 }
+
310
+
312 template <typename Other>
+
313 ArrayRef const &
+
314 operator |=(ExpressionBase<Other> const & expr) const {
+
315 NDARRAY_ASSERT(expr.getShape()
+
316 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
317 Iterator const i_end = this->end();
+
318 typename Other::Iterator j = expr.begin();
+
319 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) |= (*j);
+
320 return *this;
+
321 }
+
322
+
324 template <typename Scalar>
+
325#ifndef DOXYGEN
+
326 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
327#else
+
328 ArrayRef const &
+
329#endif
+
330 operator |=(Scalar const & scalar) const {
+
331 Iterator const i_end = this->end();
+
332 for (Iterator i = this->begin(); i != i_end; ++i) (*i) |= scalar;
+
333 return *this;
+
334 }
+
335
+
337 template <typename Other>
+
338 ArrayRef const &
+
339 operator <<=(ExpressionBase<Other> const & expr) const {
+
340 NDARRAY_ASSERT(expr.getShape()
+
341 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
342 Iterator const i_end = this->end();
+
343 typename Other::Iterator j = expr.begin();
+
344 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) <<= (*j);
+
345 return *this;
+
346 }
+
347
+
349 template <typename Scalar>
+
350#ifndef DOXYGEN
+
351 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
352#else
+
353 ArrayRef const &
+
354#endif
+
355 operator <<=(Scalar const & scalar) const {
+
356 Iterator const i_end = this->end();
+
357 for (Iterator i = this->begin(); i != i_end; ++i) (*i) <<= scalar;
+
358 return *this;
+
359 }
+
360
+
362 template <typename Other>
+
363 ArrayRef const &
+ +
365 NDARRAY_ASSERT(expr.getShape()
+
366 == this->getShape().template first<ExpressionBase<Other>::ND::value>());
+
367 Iterator const i_end = this->end();
+
368 typename Other::Iterator j = expr.begin();
+
369 for (Iterator i = this->begin(); i != i_end; ++i, ++j) (*i) >>= (*j);
+
370 return *this;
+
371 }
+
372
+
374 template <typename Scalar>
+
375#ifndef DOXYGEN
+
376 typename boost::enable_if<boost::is_convertible<Scalar,T>, ArrayRef const &>::type
+
377#else
+
378 ArrayRef const &
+
379#endif
+
380 operator >>=(Scalar const & scalar) const {
+
381 Iterator const i_end = this->end();
+
382 for (Iterator i = this->begin(); i != i_end; ++i) (*i) >>= scalar;
+
383 return *this;
+
384 }
+
386
+
387private:
+
388 template <typename T_, int N_, int C_> friend class Array;
+
389 template <typename T_, int N_, int C_> friend class ArrayRef;
+
390 template <typename T_, int N_, int C_> friend struct ArrayTraits;
+
391 template <typename Derived> friend class ArrayBase;
+
392 template <typename Array_> friend class detail::ArrayAccess;
+
393
+
395 ArrayRef(T * data, CorePtr const & core) : Super(data, core) {}
+
396
+
397};
+
398
+
399} // namespace ndarray
+
400
+
401#endif // !NDARRAY_ArrayRef_h_INCLUDED
+
Definitions for ArrayAccess.
+
Definition of ArrayBaseN, a dimension-specialized CRTP base class for Array and ArrayRef.
+
Traits for Array.
+
Definitions for Core.
+
Definition for Vector.
+
An intermediate CRTP base class for Array and ArrayRef.
Definition ArrayBaseN.h:29
+
CRTP implementation for Array and ArrayRef.
Definition ArrayBase.h:43
+
Traits::Iterator Iterator
Nested array or element iterator.
Definition ArrayBase.h:52
+
Iterator end() const
Return an Iterator to one past the end of the array.
Definition ArrayBase.h:109
+
Iterator begin() const
Return an Iterator to the beginning of the array.
Definition ArrayBase.h:96
+
Index getShape() const
Return a Vector of the sizes of all dimensions.
Definition ArrayBase.h:149
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
ArrayRef const & operator|=(ExpressionBase< Other > const &expr) const
|= assignment of arrays and array expressions.
Definition ArrayRef.h:314
+
ArrayRef const & operator^=(ExpressionBase< Other > const &expr) const
^= assignment of arrays and array expressions.
Definition ArrayRef.h:264
+
ArrayRef const & operator*=(ExpressionBase< Other > const &expr) const
*= assignment of arrays and array expressions.
Definition ArrayRef.h:189
+
ArrayRef const & operator&=(ExpressionBase< Other > const &expr) const
&= assignment of arrays and array expressions.
Definition ArrayRef.h:289
+
ArrayRef const & operator%=(ExpressionBase< Other > const &expr) const
%= assignment of arrays and array expressions.
Definition ArrayRef.h:239
+
ArrayRef const & operator/=(ExpressionBase< Other > const &expr) const
/= assignment of arrays and array expressions.
Definition ArrayRef.h:214
+
ArrayRef const & operator-=(ExpressionBase< Other > const &expr) const
-= assignment of arrays and array expressions.
Definition ArrayRef.h:164
+
ArrayRef const & operator+=(ExpressionBase< Other > const &expr) const
+= assignment of arrays and array expressions.
Definition ArrayRef.h:139
+
ArrayRef(Array< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
Converting copy constructor.
Definition ArrayRef.h:71
+
ArrayRef const & operator>>=(ExpressionBase< Other > const &expr) const
>>= assignment of arrays and array expressions.
Definition ArrayRef.h:364
+
ArrayRef const & operator<<=(ExpressionBase< Other > const &expr) const
<<= assignment of arrays and array expressions.
Definition ArrayRef.h:339
+
ArrayRef(ArrayRef< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
Converting copy constructor.
Definition ArrayRef.h:85
+
ArrayRef(ArrayRef const &other)
Non-converting copy constructor.
Definition ArrayRef.h:62
+
A multidimensional strided array.
Definition Array.h:35
+
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
+
Index getShape() const
Return a Vector of the sizes of all dimensions.
Definition ExpressionBase.h:76
+
Iterator end() const
Return an Iterator to one past the end of the expression.
Definition ExpressionBase.h:70
+
Iterator begin() const
Return an Iterator to the beginning of the expression.
Definition ExpressionBase.h:67
+
Definition ArrayAccess.h:26
+
Forward declarations and default template parameters for ndarray.
+
Dimension-specialized traits shared by Array and ArrayRef.
Definition ArrayTraits.h:44
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Definition ArrayTraits.h:33
+
Public interface for arbitrary views into arrays.
+
+ + + + diff --git a/ArrayTraits_8h.html b/ArrayTraits_8h.html new file mode 100644 index 00000000..47d787e0 --- /dev/null +++ b/ArrayTraits_8h.html @@ -0,0 +1,119 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayTraits.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ArrayTraits.h File Reference
+
+
+ +

Traits for Array. +More...

+
#include "ndarray_fwd.h"
+#include "ndarray/ExpressionTraits.h"
+#include "ndarray/detail/Core.h"
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/bool.hpp>
+
+

Go to the source code of this file.

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

+Classes

struct  ndarray::detail::Convertible< N, T2, C2, T1, C1 >
 
struct  ndarray::ArrayTraits< T, N, C >
 Dimension-specialized traits shared by Array and ArrayRef. More...
 
struct  ndarray::ArrayTraits< T, 1, 0 >
 
struct  ndarray::ArrayTraits< T, 1, 1 >
 
struct  ndarray::ArrayTraits< T, 1,-1 >
 
struct  ndarray::ExpressionTraits< Array< T, N, C > >
 
struct  ndarray::ExpressionTraits< ArrayRef< T, N, C > >
 
+

Detailed Description

+

Traits for Array.

+
+ + + + diff --git a/ArrayTraits_8h_source.html b/ArrayTraits_8h_source.html new file mode 100644 index 00000000..607f9121 --- /dev/null +++ b/ArrayTraits_8h_source.html @@ -0,0 +1,239 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ArrayTraits.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ArrayTraits.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_ArrayTraits_h_INCLUDED
+
12#define NDARRAY_ArrayTraits_h_INCLUDED
+
13
+
20#include "ndarray_fwd.h"
+ +
22#include "ndarray/detail/Core.h"
+
23#include <boost/mpl/int.hpp>
+
24#include <boost/mpl/bool.hpp>
+
25
+
26namespace ndarray {
+
27namespace detail {
+
28
+
29template <int N, typename T2, int C2, typename T1, int C1>
+
30struct Convertible : public boost::mpl::bool_<
+
31 (((C2>=C1 && C1>=0) || (C2<=C1 && C1<=0) || (N == 1 && C2 == -C1))
+
32 && boost::is_convertible<T2*,T1*>::value)
+
33> {};
+
34
+
35} // namespace detail
+
36
+
37
+
43template <typename T, int N, int C>
+ +
45 typedef T Element;
+
46 typedef boost::mpl::int_<N> ND;
+
47 typedef boost::mpl::int_<C> RMC;
+ +
49 typedef ArrayRef<T,N-1,(N==C)?(N-1):((C>0)?C:0)> Reference;
+
50 typedef Array<T,N-1,(N==C)?(N-1):((C>0)?C:0)> Value;
+
51 typedef detail::Core<N> Core;
+
52 typedef typename Core::ConstPtr CorePtr;
+
53
+
54 static Reference makeReference(Element * data, CorePtr const & core) {
+
55 return Reference(data, core);
+
56 }
+
57 static Iterator makeIterator(Element * data, CorePtr const & core, Offset stride) {
+
58 return Iterator(Reference(data, core), stride);
+
59 }
+
60 static void fill(Iterator iter, Iterator const & end, Element value) {
+
61 // We can't use std::fill here because NestedIterator is not formally an STL ForwardIterator;
+
62 // it has random access traversal, but it does not dereference to an addressable type (see
+
63 // http://www.boost.org/doc/libs/1_55_0/libs/iterator/doc/new-iter-concepts.html#motivation)
+
64 // Most C++ standard libraries have a fill implementation that will accept NestedIterator
+
65 // anyway, but Clang's libc++ is more strictly compliant and does not.
+
66 for (; iter != end; ++iter) {
+
67 *iter = value;
+
68 }
+
69 }
+
70};
+
71
+
72template <typename T>
+
73struct ArrayTraits<T,1,0> {
+
74 typedef T Element;
+
75 typedef boost::mpl::int_<1> ND;
+
76 typedef boost::mpl::int_<0> RMC;
+ +
78 typedef Element & Reference;
+
79 typedef Element Value;
+
80 typedef detail::Core<1> Core;
+
81 typedef typename Core::ConstPtr CorePtr;
+
82
+
83 static Reference makeReference(Element * data, CorePtr const & core) {
+
84 return *data;
+
85 }
+
86 static Iterator makeIterator(Element * data, CorePtr const & core, Offset stride) {
+
87 return Iterator(data, stride);
+
88 }
+
89 static void fill(Iterator iter, Iterator const & end, Element value) {
+
90 std::fill(iter, end, value);
+
91 }
+
92};
+
93
+
94template <typename T>
+
95struct ArrayTraits<T,1,1> {
+
96 typedef T Element;
+
97 typedef boost::mpl::int_<1> ND;
+
98 typedef boost::mpl::int_<1> RMC;
+
99 typedef Element * Iterator;
+
100 typedef Element & Reference;
+
101 typedef Element Value;
+
102 typedef detail::Core<1> Core;
+
103 typedef typename Core::ConstPtr CorePtr;
+
104
+
105 static Reference makeReference(Element * data, CorePtr const & core) {
+
106 return *data;
+
107 }
+
108 static Iterator makeIterator(Element * data, CorePtr const & core, Offset stride) {
+
109 return data;
+
110 }
+
111 static void fill(Iterator iter, Iterator const & end, Element value) {
+
112 std::fill(iter, end, value);
+
113 }
+
114};
+
115
+
116template <typename T>
+
117struct ArrayTraits<T,1,-1> {
+
118 typedef T Element;
+
119 typedef boost::mpl::int_<1> ND;
+
120 typedef boost::mpl::int_<-1> RMC;
+
121 typedef Element * Iterator;
+
122 typedef Element & Reference;
+
123 typedef Element Value;
+
124 typedef detail::Core<1> Core;
+
125 typedef typename Core::ConstPtr CorePtr;
+
126
+
127 static Reference makeReference(Element * data, CorePtr const & core) {
+
128 return *data;
+
129 }
+
130 static Iterator makeIterator(Element * data, CorePtr const & core, Offset stride) {
+
131 return data;
+
132 }
+
133 static void fill(Iterator iter, Iterator const & end, Element value) {
+
134 std::fill(iter, end, value);
+
135 }
+
136};
+
137
+
138template <typename T, int N, int C>
+
139struct ExpressionTraits< Array<T,N,C> > : public ArrayTraits<T,N,C> {
+
140 typedef Array<T,N,C> Self;
+
141 typedef boost::mpl::false_ IsScalar;
+
142};
+
143
+
144template <typename T, int N, int C>
+
145struct ExpressionTraits< ArrayRef<T,N,C> > : public ArrayTraits<T,N,C> {
+
146 typedef ArrayRef<T,N,C> Self;
+
147 typedef boost::mpl::false_ IsScalar;
+
148};
+
149
+
150} // namespace ndarray
+
151
+
152#endif // !NDARRAY_ArrayTraits_h_INCLUDED
+
Definitions for Core.
+
Traits for Expression.
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
A multidimensional strided array.
Definition Array.h:35
+
Definition Core.h:47
+
boost::intrusive_ptr< Core const > ConstPtr
const intrusive_ptr to Core
Definition Core.h:52
+
Definition NestedIterator.h:46
+
Definition StridedIterator.h:36
+
Forward declarations and default template parameters for ndarray.
+
Dimension-specialized traits shared by Array and ArrayRef.
Definition ArrayTraits.h:44
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
Definition ArrayTraits.h:33
+
+ + + + diff --git a/Array_8h.html b/Array_8h.html new file mode 100644 index 00000000..efbe0d25 --- /dev/null +++ b/Array_8h.html @@ -0,0 +1,108 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/Array.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Array.h File Reference
+
+
+ +

Definitions for Array. +More...

+
#include "ndarray_fwd.h"
+#include "ndarray/ArrayTraits.h"
+#include "ndarray/ArrayBaseN.h"
+#include "ndarray/Vector.h"
+#include "ndarray/detail/Core.h"
+#include "ndarray/views.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  ndarray::Array< T, N, C >
 A multidimensional strided array. More...
 
+

Detailed Description

+

Definitions for Array.

+
+ + + + diff --git a/Array_8h_source.html b/Array_8h_source.html new file mode 100644 index 00000000..d3aa0659 --- /dev/null +++ b/Array_8h_source.html @@ -0,0 +1,232 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/Array.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Array.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_Array_h_INCLUDED
+
12#define NDARRAY_Array_h_INCLUDED
+
13
+
20#include "ndarray_fwd.h"
+
21#include "ndarray/ArrayTraits.h"
+
22#include "ndarray/ArrayBaseN.h"
+
23#include "ndarray/Vector.h"
+
24#include "ndarray/detail/Core.h"
+
25#include "ndarray/views.h"
+
26
+
27namespace ndarray {
+
28
+
34template <typename T, int N, int C>
+
35class Array : public ArrayBaseN< Array<T,N,C> > {
+ +
37 typedef typename Super::Core Core;
+
38 typedef typename Super::CorePtr CorePtr;
+
39public:
+
40
+
46 Array() : Super(0, Core::create()) {}
+
47
+
51 Array(Array const & other) : Super(other._data, other._core) {}
+
52
+
59 template <typename T_, int C_>
+ +
61 Array<T_,N,C_> const & other
+
62#ifndef DOXYGEN
+
63 , typename boost::enable_if<detail::Convertible<N,T_,C_,T,C>,void*>::type=0
+
64#endif
+
65 ) : Super(other._data, other._core) {}
+
66
+
73 template <typename T_, int C_>
+ +
75 ArrayRef<T_,N,C_> const & other
+
76#ifndef DOXYGEN
+
77 , typename boost::enable_if<detail::Convertible<N,T_,C_,T,C>,void*>::type=0
+
78#endif
+
79 ) : Super(other._data, other._core) {}
+
80
+
89 explicit Array(Size n1, Size n2=1, Size n3=1, Size n4=1, Size n5=1, Size n6=1, Size n7=1, Size n8=1);
+
90
+
96 template <typename U>
+
97 explicit Array(Vector<U,N> const & shape);
+
98
+
102 Array & operator=(Array const & other) {
+
103 if (&other != this) {
+
104 this->_data = other._data;
+
105 this->_core = other._core;
+
106 }
+
107 return *this;
+
108 }
+
109
+
116 template <typename T_, int C_>
+
117#ifndef DOXYGEN
+
118 typename boost::enable_if<detail::Convertible<N,T_,C_,T,C>, Array &>::type
+
119#else
+
120 Array &
+
121#endif
+
122 operator=(Array<T_,N,C_> const & other) {
+
123 this->_data = other._data;
+
124 this->_core = other._core;
+
125 return *this;
+
126 }
+
127
+
134 template <typename T_, int C_>
+
135#ifndef DOXYGEN
+
136 typename boost::enable_if<detail::Convertible<N,T_,C_,T,C>, Array &>::type
+
137#else
+
138 Array &
+
139#endif
+ +
141 this->_data = other._data;
+
142 this->_core = other._core;
+
143 return *this;
+
144 }
+
145
+
150 template <typename T_, int N_, int C_>
+
151 bool operator==(Array<T_,N_,C_> const & other) const {
+
152 return this->getData() == other.getData()
+
153 && this->getShape() == other.getShape()
+
154 && this->getStrides() == other.getStrides();
+
155 }
+
156
+
160 template <typename T_, int N_, int C_>
+
161 bool operator!=(Array<T_,N_,C_> const & other) const {
+
162 return !this->operator==(other);
+
163 }
+
164
+
166 void swap(Array & other) {
+
167 std::swap(this->_data, other._data);
+
168 this->_core.swap(other._core);
+
169 }
+
170
+
178 bool isUnique() const { return this->_core->isUnique(); }
+
179
+
180private:
+
181 template <typename T_, int N_, int C_> friend class Array;
+
182 template <typename T_, int N_, int C_> friend class ArrayRef;
+
183 template <typename T_, int N_, int C_> friend struct ArrayTraits;
+
184 template <typename Derived> friend class ArrayBase;
+
185 template <typename Array_> friend class detail::ArrayAccess;
+
186
+
188 Array(T * data, CorePtr const & core) : Super(data, core) {}
+
189};
+
190
+
191} // namespace ndarray
+
192
+
193#endif // !NDARRAY_Array_h_INCLUDED
+
Definition of ArrayBaseN, a dimension-specialized CRTP base class for Array and ArrayRef.
+
Traits for Array.
+
Definitions for Core.
+
Definition for Vector.
+
An intermediate CRTP base class for Array and ArrayRef.
Definition ArrayBaseN.h:29
+
CRTP implementation for Array and ArrayRef.
Definition ArrayBase.h:43
+
Element * getData() const
Return a raw pointer to the first element of the array.
Definition ArrayBase.h:130
+
Strides getStrides() const
Return a Vector of the strides of all dimensions.
Definition ArrayBase.h:152
+
Index getShape() const
Return a Vector of the sizes of all dimensions.
Definition ArrayBase.h:149
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
A multidimensional strided array.
Definition Array.h:35
+
bool operator==(Array< T_, N_, C_ > const &other) const
Shallow equality comparison: return true if the arrays share data and have the same shape and strides...
Definition Array.h:151
+
Array(Array< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
Converting copy constructor.
Definition Array.h:60
+
Array(ArrayRef< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
Converting copy constructor.
Definition Array.h:74
+
Array(Array const &other)
Non-converting copy constructor.
Definition Array.h:51
+
Array()
Default constructor.
Definition Array.h:46
+
Array & operator=(Array const &other)
Non-converting shallow assignment.
Definition Array.h:102
+
boost::enable_if< detail::Convertible< N, T_, C_, T, C >, Array & >::type operator=(ArrayRef< T_, N, C_ > const &other)
Converting shallow assignment.
Definition Array.h:140
+
bool isUnique() const
Return true if the Array is definitely unique.
Definition Array.h:178
+
void swap(Array &other)
Lightweight shallow swap.
Definition Array.h:166
+
boost::enable_if< detail::Convertible< N, T_, C_, T, C >, Array & >::type operator=(Array< T_, N, C_ > const &other)
Converting shallow assignment.
Definition Array.h:122
+
bool operator!=(Array< T_, N_, C_ > const &other) const
Shallow inequality comparison.
Definition Array.h:161
+
Definition ArrayAccess.h:26
+
Forward declarations and default template parameters for ndarray.
+
Dimension-specialized traits shared by Array and ArrayRef.
Definition ArrayTraits.h:44
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Definition ArrayTraits.h:33
+
Public interface for arbitrary views into arrays.
+
+ + + + diff --git a/BinaryOp_8h.html b/BinaryOp_8h.html new file mode 100644 index 00000000..054cd5a3 --- /dev/null +++ b/BinaryOp_8h.html @@ -0,0 +1,108 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/BinaryOp.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
BinaryOp.h File Reference
+
+
+ +

Lazy binary expression templates. +More...

+
#include "ndarray/ExpressionBase.h"
+#include "ndarray/vectorize.h"
+#include <boost/iterator/iterator_adaptor.hpp>
+#include <boost/iterator/zip_iterator.hpp>
+#include <boost/tuple/tuple.hpp>
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >
 
class  ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
 
+

Detailed Description

+

Lazy binary expression templates.

+
+ + + + diff --git a/BinaryOp_8h_source.html b/BinaryOp_8h_source.html new file mode 100644 index 00000000..11a30288 --- /dev/null +++ b/BinaryOp_8h_source.html @@ -0,0 +1,212 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/BinaryOp.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
BinaryOp.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_BinaryOp_h_INCLUDED
+
12#define NDARRAY_DETAIL_BinaryOp_h_INCLUDED
+
13
+ +
21#include "ndarray/vectorize.h"
+
22#include <boost/iterator/iterator_adaptor.hpp>
+
23#include <boost/iterator/zip_iterator.hpp>
+
24#include <boost/tuple/tuple.hpp>
+
25
+
26namespace ndarray {
+
27namespace detail {
+
28
+
36template <typename Operand1, typename Operand2, typename BinaryFunction>
+
37class BinaryOpIterator : public boost::iterator_adaptor<
+
38 BinaryOpIterator<Operand1,Operand2,BinaryFunction>,
+
39 boost::zip_iterator<
+
40 boost::tuple<
+
41 typename ExpressionTraits<Operand1>::Iterator,
+
42 typename ExpressionTraits<Operand2>::Iterator
+
43 >
+
44 >,
+
45 typename ExpressionTraits< BinaryOpExpression<Operand1,Operand2,BinaryFunction> >::Value,
+
46 boost::use_default,
+
47 typename ExpressionTraits< BinaryOpExpression<Operand1,Operand2,BinaryFunction> >::Reference
+
48 > {
+ +
50public:
+
51 typedef typename ExpressionTraits<Operand1>::Iterator BaseIterator1;
+
52 typedef typename ExpressionTraits<Operand2>::Iterator BaseIterator2;
+
53 typedef typename ExpressionTraits<Operation>::Value Value;
+
54 typedef typename ExpressionTraits<Operation>::Reference Reference;
+
55
+
56 BinaryOpIterator() : BinaryOpIterator::iterator_adaptor_(), _functor() {}
+
57
+ +
59 BaseIterator1 const & baseIter1,
+
60 BaseIterator2 const & baseIter2,
+
61 BinaryFunction const & functor
+
62 ) :
+
63 BinaryOpIterator::iterator_adaptor_(boost::make_tuple(baseIter1,baseIter2)),
+
64 _functor(functor) {}
+
65
+
66 BinaryOpIterator(BinaryOpIterator const & other) :
+
67 BinaryOpIterator::iterator_adaptor_(other), _functor(other._functor) {}
+
68
+
69private:
+
70 friend class boost::iterator_core_access;
+
71
+
72 Reference dereference() const {
+
73 return vectorize(
+
74 _functor,
+
75 this->base_reference()->template get<0>(),
+
76 this->base_reference()->template get<1>()
+
77 );
+
78 }
+
79
+
80 BinaryFunction _functor;
+
81};
+
82
+
90template <typename Operand1, typename Operand2, typename BinaryFunction, int N>
+
91class BinaryOpExpression : public ExpressionBase< BinaryOpExpression<Operand1,Operand2,BinaryFunction,N> > {
+ +
93public:
+
94 typedef typename ExpressionTraits<Self>::Element Element;
+
95 typedef typename ExpressionTraits<Self>::ND ND;
+
96 typedef typename ExpressionTraits<Self>::Iterator Iterator;
+
97 typedef typename ExpressionTraits<Self>::Value Value;
+
98 typedef typename ExpressionTraits<Self>::Reference Reference;
+
99 typedef Vector<Size,N> Index;
+
100
+ +
102 Operand1 const & operand1,
+
103 Operand2 const & operand2,
+
104 BinaryFunction const & functor
+
105 ) :
+
106 _operand1(operand1), _operand2(operand2), _functor(functor) {
+
107 NDARRAY_ASSERT(_operand1.getShape() == _operand2.getShape());
+
108 }
+
109
+
110 Reference operator[](Size n) const {
+
111 return Reference(_operand1[n],_operand2[n],_functor);
+
112 }
+
113
+
114 Iterator begin() const {
+
115 return Iterator(_operand1.begin(),_operand2.begin(),_functor);
+
116 }
+
117
+
118 Iterator end() const {
+
119 return Iterator(_operand1.end(),_operand2.end(),_functor);
+
120 }
+
121
+
122 template <int P> Size getSize() const {
+
123 return _operand1.template getSize<P>();
+
124 }
+
125
+
126 Index getShape() const {
+
127 return _operand1.getShape();
+
128 }
+
129
+
130 Operand1 _operand1;
+
131 Operand2 _operand2;
+
132 BinaryFunction _functor;
+
133};
+
134
+
135} // namespace detail
+
136} // namespace ndarray
+
137
+
138#endif // !NDARRAY_DETAIL_BinaryOp_h_INCLUDED
+
Definitions for ExpressionBase.
+
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
+
Definition BinaryOp.h:91
+
Definition BinaryOp.h:48
+
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, typenameUnaryFunction::result_type >::type vectorize(UnaryFunction const &functor, Scalar const &scalar)
Apply a non-mutating unary function object to a scalar.
Definition vectorize.h:73
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Code to apply arbitrary scalar functors to arrays.
+
+ + + + diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 33a8de5e..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,38 +0,0 @@ -# ndarray change log - -## 1.6.5 - -### Bug fixes - -Fix compilation issues with newer compiler and boost versions. - -## 1.5.1 - -### Bug fixes - -Reverted a non-portable workaround for bad module suffixes with pybind11 2.1.x. Please just use pybind11 2.2.x instead. - -## 1.5.0 - -### New features - -`ndarray::EigenView` is not compatible with Eigen 3.3 and fixing this appears to be more work than it's worth, -so this version deprecates `ndarray::EigenView` and adds new free functions `asEigen`, `asEigenArray` -and `asEigenMatrix` which return an `eigen::Map` view of an ndarray array. Unlike `ndarray::EigenView`, -the returned eigen map does not own the memory, so you must be careful to keep the ndarray array around -until you are done with the map. - -Added build option `-DNDARRAY_EIGENVIEW` which controls whether to build ndarray::EigenView. The default is OFF. - -Added build option `-DNDARRAY_STDPYBIND11EIGEN` which, if ON, imports `pybind11/eigen.h` into `ndarray/eigen.h`. -The intent is to make it easier to port old pybind11 wrappers that used EigenView. The default is `OFF`. -`-DNDARRAY_EIGENVIEW` and `-DNDARRAY_STDPYBIND11EIGEN` cannot both be `ON`. - -### Deprecations and removals - -Support for SWIG has been dropped as of the 1.5.0 release. - -### Bug fixes - -Fixed a race condition in the cmake build files: ArrayBaseN.h.m4 might not be processed before other -m4 include files that rely on it. This may fix ndarray issue 71. diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 477666c7..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -cmake_minimum_required(VERSION 3.15) -project(ndarray LANGUAGES CXX) -set (CMAKE_CXX_STANDARD 11) - -# Build is split into two broad passes: -# (1) Generation, which performs macro-expansion and header installation. -# (2) Test, which builds & executes zero-dependency core and (optional) dependent tests. -# -# The generation phase does not rely on the presence of external libraries, -# though the installed headers may be dependent on these libraries. This allows -# generation & installation of ndarray as a vendorized dependency of external -# projects without ndarry's optional dependencies. -# -# The test phase may rely on external libraries, which are enabled via the -# options below. Library resolution is deferred to tests/CMakeLists.txt and -# only executed if NDARRAY_TEST is enabled. - -option(NDARRAY_TEST "Enable tests?" ON) -option(NDARRAY_EIGEN "Enable Eigen tests?" ON) -option(NDARRAY_FFTW "Enable FFTW tests?" ON) -option(NDARRAY_PYBIND11 "Enable Pybind11 tests?" OFF) - -add_subdirectory(include) - -find_package(Doxygen) -if(DOXYGEN_FOUND) - add_subdirectory(doc) -endif(DOXYGEN_FOUND) - -if(NDARRAY_TEST) - enable_testing() - add_subdirectory(tests) -endif(NDARRAY_TEST) - -# installation -install(DIRECTORY include/ DESTINATION include/ - FILES_MATCHING PATTERN "*.h") diff --git a/Core_8h.html b/Core_8h.html new file mode 100644 index 00000000..4e1e78f8 --- /dev/null +++ b/Core_8h.html @@ -0,0 +1,119 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/Core.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Core.h File Reference
+
+
+ +

Definitions for Core. +More...

+
#include <boost/intrusive_ptr.hpp>
+#include <boost/mpl/int.hpp>
+#include "ndarray/Vector.h"
+#include "ndarray/Manager.h"
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  ndarray::detail::Core< N >
 
class  ndarray::detail::Core< 0 >
 
+ + + + + + + +

+Functions

+template<int P, int N>
Core< N-P > const & ndarray::detail::getDimension (Core< N > const &core)
 
+template<int P, int N>
Core< N-P >::Ptr ndarray::detail::getDimension (typename Core< N >::Ptr const &core)
 
+

Detailed Description

+

Definitions for Core.

+
+ + + + diff --git a/Core_8h_source.html b/Core_8h_source.html new file mode 100644 index 00000000..320fee23 --- /dev/null +++ b/Core_8h_source.html @@ -0,0 +1,326 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/Core.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Core.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_Core_h_INCLUDED
+
12#define NDARRAY_DETAIL_Core_h_INCLUDED
+
13
+
20#include <boost/intrusive_ptr.hpp>
+
21#include <boost/mpl/int.hpp>
+
22#include "ndarray/Vector.h"
+
23#include "ndarray/Manager.h"
+
24
+
25namespace ndarray {
+
26namespace detail {
+
27
+
46template <int N>
+
47class Core : public Core<N-1> {
+
48public:
+
49 typedef boost::mpl::int_<N> ND;
+
50 typedef Core<N-1> Super;
+
51 typedef boost::intrusive_ptr<Core> Ptr;
+
52 typedef boost::intrusive_ptr<Core const> ConstPtr;
+
53
+
55 template <int M>
+
56 static Ptr create(
+
57 Vector<Size,M> const & shape,
+
58 Vector<Offset,M> const & strides,
+
59 Manager::Ptr const & manager = Manager::Ptr()
+
60 ) {
+
61 return Ptr(new Core(shape, strides, manager), false);
+
62 }
+
63
+
65 template <int M>
+
66 static Ptr create(
+
67 Vector<Size,M> const & shape,
+
68 DataOrderEnum order,
+
69 Manager::Ptr const & manager = Manager::Ptr()
+
70 ) {
+
71 if (order == ROW_MAJOR) {
+
72 return Ptr(new Core(shape, manager), false);
+
73 } else {
+
74 return Ptr(new Core(shape, 1, manager), false);
+
75 }
+
76 }
+
77
+
79 static Ptr create(
+
80 Manager::Ptr const & manager = Manager::Ptr()
+
81 ) {
+
82 return Ptr(new Core(manager), false);
+
83 }
+
84
+
85 Ptr copy() const { return Ptr(new Core(*this)); }
+
86
+
88 Size getSize() const { return _size; }
+
89
+
91 Offset getStride() const { return _stride; }
+
92
+
94 void setSize(Size size) { _size = size; }
+
95
+
97 void setStride(Offset stride) { _stride = stride; }
+
98
+
100 template <int M>
+
101 Offset computeOffset(Vector<Size,M> const & index) const {
+
102 return index[M-N] * this->getStride() + Super::computeOffset(index);
+
103 }
+
104
+
106 template <int M>
+
107 void fillShape(Vector<Size,M> & shape) const {
+
108 shape[M-N] = this->getSize();
+
109 Super::fillShape(shape);
+
110 }
+
111
+
113 template <int M>
+
114 void fillStrides(Vector<Offset,M> & strides) const {
+
115 strides[M-N] = this->getStride();
+
116 Super::fillStrides(strides);
+
117 }
+
118
+
120 Size getNumElements() const {
+
121 return getSize() * Super::getNumElements();
+
122 }
+
123
+
124protected:
+
125
+
126 // Explicit strides
+
127 template <int M>
+
128 Core (
+
129 Vector<Size,M> const & shape,
+
130 Vector<Offset,M> const & strides,
+
131 Manager::Ptr const & manager
+
132 ) : Super(shape, strides, manager), _size(shape[M-N]), _stride(strides[M-N]) {}
+
133
+
134 // Row-major strides
+
135 template <int M>
+
136 Core (
+
137 Vector<Size,M> const & shape,
+
138 Manager::Ptr const & manager
+
139 ) : Super(shape, manager), _size(shape[M-N]), _stride(Super::getStride() * Super::getSize()) {}
+
140
+
141 // Column-major strides
+
142 template <int M>
+
143 Core (
+
144 Vector<Size,M> const & shape,
+
145 Offset stride,
+
146 Manager::Ptr const & manager
+
147 ) : Super(shape, stride * shape[M-N], manager), _size(shape[M-N]), _stride(stride) {}
+
148
+
149 // Zero shape and strides
+
150 Core (
+
151 Manager::Ptr const & manager
+
152 ) : Super(manager), _size(0), _stride(0) {}
+
153
+
154 Core(Core const & other) : Super(other), _size(other._size), _stride(other._stride) {}
+
155
+
156private:
+
157 Size _size;
+
158 Offset _stride;
+
159};
+
160
+
170template <>
+
171class Core<0> {
+
172public:
+
173 typedef boost::mpl::int_<0> ND;
+
174 typedef boost::intrusive_ptr<Core> Ptr;
+
175 typedef boost::intrusive_ptr<Core const> ConstPtr;
+
176
+
177 friend inline void intrusive_ptr_add_ref(Core const * core) {
+
178 ++core->_rc;
+
179 }
+
180
+
181 friend inline void intrusive_ptr_release(Core const * core) {
+
182 if ((--core->_rc)==0) delete core;
+
183 }
+
184
+
185 Ptr copy() const { return Ptr(new Core(*this)); }
+
186
+
187 Size getSize() const { return 1; }
+
188 Offset getStride() const { return 1; }
+
189
+
191 template <int M>
+
192 Offset computeOffset(Vector<Size,M> const & index) const { return 0; }
+
193
+
195 Manager::Ptr getManager() const { return _manager; }
+
196
+
198 void setManager(Manager::Ptr const & manager) { _manager = manager; }
+
199
+
201 template <int M>
+
202 void fillShape(Vector<Size,M> const & shape) const {}
+
203
+
205 template <int M>
+
206 void fillStrides(Vector<Offset,M> const & strides) const {}
+
207
+
209 Size getNumElements() const { return 1; }
+
210
+
212 int getRC() const { return _rc; }
+
213
+
215 bool isUnique() const { return (_rc == 1) && (_manager->getRC() == 1) && _manager->isUnique(); }
+
216
+
217protected:
+
218
+
219 virtual ~Core() {}
+
220
+
221 template <int M>
+
222 Core(
+
223 Vector<Size,M> const & shape,
+
224 Vector<Offset,M> const & strides,
+
225 Manager::Ptr const & manager
+
226 ) : _manager(manager), _rc(1) {}
+
227
+
228 template <int M>
+
229 Core(
+
230 Vector<Size,M> const & shape,
+
231 Manager::Ptr const & manager
+
232 ) : _manager(manager), _rc(1) {}
+
233
+
234 template <int M>
+
235 Core(
+
236 Vector<Size,M> const & shape,
+
237 Offset stride,
+
238 Manager::Ptr const & manager
+
239 ) : _manager(manager), _rc(1) {}
+
240
+
241 Core(
+
242 Manager::Ptr const & manager
+
243 ) : _manager(manager), _rc(1) {}
+
244
+
245 Core(Core const & other) : _manager(other._manager), _rc(1) {}
+
246
+
247private:
+
248 Manager::Ptr _manager;
+
249 mutable int _rc;
+
250};
+
251
+
252
+
258template <int P, int N>
+
259inline Core<N-P> const &
+
260getDimension(Core<N> const & core) { return core; }
+
261
+
267template <int P, int N>
+
268inline typename Core<N-P>::Ptr
+
269getDimension(typename Core<N>::Ptr const & core) { return core; }
+
270
+
271} // namespace detail
+
272} // namespace ndarray
+
273
+
274#endif // !NDARRAY_DETAIL_Core_h_INCLUDED
+
Definition of Manager, which manages the ownership of array data.
+
Definition for Vector.
+
bool isUnique() const
Return true if the Core and Manager reference counts are 1 and the manager is unique.
Definition Core.h:215
+
void setManager(Manager::Ptr const &manager)
Set the Manager that determines the lifetime of the array data.
Definition Core.h:198
+
Manager::Ptr getManager() const
Return the Manager that determines the lifetime of the array data.
Definition Core.h:195
+
Offset computeOffset(Vector< Size, M > const &index) const
Recursively compute the offset to an element.
Definition Core.h:192
+
Size getNumElements() const
Recursively determine the total number of elements.
Definition Core.h:209
+
void fillShape(Vector< Size, M > const &shape) const
Recursively fill a shape vector.
Definition Core.h:202
+
int getRC() const
Return the reference count (for debugging purposes).
Definition Core.h:212
+
void fillStrides(Vector< Offset, M > const &strides) const
Recursively fill a strides vector.
Definition Core.h:206
+
Definition Core.h:47
+
static Ptr create(Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager=Manager::Ptr())
Create a Core::Ptr with the given shape, strides, and manager.
Definition Core.h:56
+
Size getSize() const
Return the size of the Nth dimension.
Definition Core.h:88
+
void fillStrides(Vector< Offset, M > &strides) const
Recursively fill a strides vector.
Definition Core.h:114
+
void fillShape(Vector< Size, M > &shape) const
Recursively fill a shape vector.
Definition Core.h:107
+
static Ptr create(Vector< Size, M > const &shape, DataOrderEnum order, Manager::Ptr const &manager=Manager::Ptr())
Create a Core::Ptr with the given shape and manager with contiguous strides.
Definition Core.h:66
+
Offset computeOffset(Vector< Size, M > const &index) const
Recursively compute the offset to an element.
Definition Core.h:101
+
Size getNumElements() const
Recursively determine the total number of elements.
Definition Core.h:120
+
void setSize(Size size)
Set the size of the Nth dimension.
Definition Core.h:94
+
boost::intrusive_ptr< Core > Ptr
intrusive_ptr to Core
Definition Core.h:51
+
boost::intrusive_ptr< Core const > ConstPtr
const intrusive_ptr to Core
Definition Core.h:52
+
static Ptr create(Manager::Ptr const &manager=Manager::Ptr())
Create a Core::Ptr with the given manager and zero shape and strides.
Definition Core.h:79
+
boost::mpl::int_< N > ND
number of dimensions
Definition Core.h:49
+
Core< N-1 > Super
base class
Definition Core.h:50
+
void setStride(Offset stride)
Set the stride of the Nth dimension.
Definition Core.h:97
+
Offset getStride() const
Return the stride of the Nth dimension.
Definition Core.h:91
+
DataOrderEnum
An enumeration for stride computation.
Definition ndarray_fwd.h:51
+
A fixed-size 1D array class.
Definition Vector.h:82
+
+ + + + diff --git a/ExpressionBase_8h.html b/ExpressionBase_8h.html new file mode 100644 index 00000000..5d48ab11 --- /dev/null +++ b/ExpressionBase_8h.html @@ -0,0 +1,104 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ExpressionBase.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ExpressionBase.h File Reference
+
+
+ +

Definitions for ExpressionBase. +More...

+ +

Go to the source code of this file.

+ + + + + +

+Classes

class  ndarray::ExpressionBase< Derived >
 CRTP base class for all multidimensional expressions. More...
 
+

Detailed Description

+

Definitions for ExpressionBase.

+
+ + + + diff --git a/ExpressionBase_8h_source.html b/ExpressionBase_8h_source.html new file mode 100644 index 00000000..9c8026e3 --- /dev/null +++ b/ExpressionBase_8h_source.html @@ -0,0 +1,178 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ExpressionBase.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ExpressionBase.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_ExpressionBase_h_INCLUDED
+
12#define NDARRAY_ExpressionBase_h_INCLUDED
+
13
+ +
21#include "ndarray/Vector.h"
+
22
+
23namespace ndarray {
+
24
+
39template <typename Derived>
+ +
41public:
+ + + + + + +
55 typedef Derived Self;
+
56
+
58 Reference operator[](Size n) const { return getSelf().operator[](n); }
+
59
+
61 Reference front() const { return this->operator[](0); }
+
62
+
64 Reference back() const { return this->operator[](this->template getSize<0>()-1); }
+
65
+
67 Iterator begin() const { return getSelf().begin(); }
+
68
+
70 Iterator end() const { return getSelf().end(); }
+
71
+
73 template <int P> Size getSize() const { return getSelf().template getSize<P>(); }
+
74
+
76 Index getShape() const { return getSelf().getShape(); }
+
77
+
79 Size getNumElements() const { return getSelf().getNumElements(); }
+
80
+
81 /* ------------------------- STL Compatibility -------------------------- */
+
82
+
83 typedef Value value_type;
+
84 typedef Iterator iterator;
+
85 typedef Iterator const_iterator;
+
86 typedef Reference reference;
+
87 typedef Reference const_reference;
+
88 typedef Iterator pointer;
+
89 typedef Offset difference_type;
+
90 typedef Size size_type;
+
91
+
93 size_type size() const { return this->template getSize<0>(); }
+
94
+
96 bool empty() const { return this->template getSize<0>() == 0; }
+
97
+
98 /* ---------------------------------------------------------------------- */
+
99
+
100protected:
+
101 Self & getSelf() { return *static_cast<Self *>(this); }
+
102 Self const & getSelf() const { return *static_cast<Self const *>(this); }
+
103};
+
104
+
105} // namespace ndarray
+
106
+
107#endif // !NDARRAY_ExpressionBase_h_INCLUDED
+
Traits for Expression.
+
Definition for Vector.
+
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
+
ExpressionTraits< Derived >::Value Value
Nested expression or element value type.
Definition ExpressionBase.h:51
+
size_type size() const
Return the size of the first dimension.
Definition ExpressionBase.h:93
+
Reference front() const
Return the first nested expression or element.
Definition ExpressionBase.h:61
+
Reference back() const
Return the last nested expression or element.
Definition ExpressionBase.h:64
+
Vector< Size, ND::value > Index
Vector type for N-dimensional indices.
Definition ExpressionBase.h:53
+
Reference operator[](Size n) const
Return a single nested expression or element.
Definition ExpressionBase.h:58
+
ExpressionTraits< Derived >::ND ND
Number of dimensions (boost::mpl::int_).
Definition ExpressionBase.h:45
+
ExpressionTraits< Derived >::Reference Reference
Nested expression or element reference.
Definition ExpressionBase.h:49
+
Index getShape() const
Return a Vector of the sizes of all dimensions.
Definition ExpressionBase.h:76
+
Size getNumElements() const
Return the total number of elements in the expression.
Definition ExpressionBase.h:79
+
ExpressionTraits< Derived >::Element Element
Data type of expression elements.
Definition ExpressionBase.h:43
+
Iterator end() const
Return an Iterator to one past the end of the expression.
Definition ExpressionBase.h:70
+
Iterator begin() const
Return an Iterator to the beginning of the expression.
Definition ExpressionBase.h:67
+
Derived Self
CRTP derived type.
Definition ExpressionBase.h:55
+
bool empty() const
Return true if the first dimension has no elements.
Definition ExpressionBase.h:96
+
ExpressionTraits< Derived >::Iterator Iterator
Nested expression or element iterator.
Definition ExpressionBase.h:47
+
Size getSize() const
Return the size of a specific dimension.
Definition ExpressionBase.h:73
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
A fixed-size 1D array class.
Definition Vector.h:82
+
+ + + + diff --git a/ExpressionTraits_8h.html b/ExpressionTraits_8h.html new file mode 100644 index 00000000..930afda6 --- /dev/null +++ b/ExpressionTraits_8h.html @@ -0,0 +1,112 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ExpressionTraits.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ExpressionTraits.h File Reference
+
+
+ +

Traits for Expression. +More...

+
#include "ndarray_fwd.h"
+#include <boost/static_assert.hpp>
+
+

Go to the source code of this file.

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

+Classes

struct  ndarray::ExpressionTraits< Expression_ >
 Traits for expressions. More...
 
struct  ndarray::ExpressionTraits< detail::UnaryOpExpression< Operand, UnaryFunction, N > >
 
struct  ndarray::ExpressionTraits< detail::UnaryOpExpression< Operand, UnaryFunction, 1 > >
 
struct  ndarray::ExpressionTraits< detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >
 
struct  ndarray::ExpressionTraits< detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, 1 > >
 
+

Detailed Description

+

Traits for Expression.

+
+ + + + diff --git a/ExpressionTraits_8h_source.html b/ExpressionTraits_8h_source.html new file mode 100644 index 00000000..c49d31d1 --- /dev/null +++ b/ExpressionTraits_8h_source.html @@ -0,0 +1,168 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/ExpressionTraits.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ExpressionTraits.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_ExpressionTraits_h_INCLUDED
+
12#define NDARRAY_ExpressionTraits_h_INCLUDED
+
13
+
20#include "ndarray_fwd.h"
+
21#include <boost/static_assert.hpp>
+
22
+
23namespace ndarray {
+
24
+
30template <typename Expression_> struct ExpressionTraits {
+
31 typedef boost::mpl::true_ IsScalar;
+
32};
+
33
+
34#ifndef GCC_45
+
35
+
41template <typename Operand, typename UnaryFunction, int N>
+
42struct ExpressionTraits< detail::UnaryOpExpression<Operand,UnaryFunction,N> > {
+
43 typedef typename UnaryFunction::result_type Element;
+
44 typedef typename ExpressionTraits<Operand>::ND ND;
+ + +
47 typename ExpressionTraits<Operand>::Reference,UnaryFunction,N-1
+
48 > Value;
+
49 typedef Value Reference;
+
50 typedef boost::mpl::false_ IsScalar;
+
51};
+
52
+
58template <typename Operand, typename UnaryFunction>
+
59struct ExpressionTraits< detail::UnaryOpExpression<Operand,UnaryFunction,1> > {
+
60 typedef typename UnaryFunction::result_type Element;
+
61 typedef typename ExpressionTraits<Operand>::ND ND;
+ +
63 typedef typename boost::remove_const<Element>::type Value;
+
64 typedef Value const Reference;
+
65 typedef boost::mpl::false_ IsScalar;
+
66};
+
67
+
73template <typename Operand1, typename Operand2, typename BinaryFunction, int N>
+
74struct ExpressionTraits< detail::BinaryOpExpression<Operand1,Operand2,BinaryFunction,N> > {
+
75 typedef typename BinaryFunction::result_type Element;
+
76 typedef typename ExpressionTraits<Operand1>::ND ND;
+ + + + +
81 BinaryFunction, N-1 > Reference;
+
82 typedef Reference Value;
+
83 typedef boost::mpl::false_ IsScalar;
+
84 BOOST_STATIC_ASSERT((ND::value == ExpressionTraits<Operand2>::ND::value));
+
85};
+
86
+
92template <typename Operand1, typename Operand2, typename BinaryFunction>
+
93struct ExpressionTraits< detail::BinaryOpExpression<Operand1,Operand2,BinaryFunction,1> > {
+
94 typedef typename BinaryFunction::result_type Element;
+
95 typedef typename ExpressionTraits<Operand1>::ND ND;
+ +
97 typedef typename boost::remove_const<Element>::type Value;
+
98 typedef Value const Reference;
+
99 typedef boost::mpl::false_ IsScalar;
+
100 BOOST_STATIC_ASSERT((ND::value == ExpressionTraits<Operand2>::ND::value));
+
101};
+
102
+
103#endif // GCC_45
+
104
+
105} // namespace ndarray
+
106
+
107#endif // !NDARRAY_ExpressionTraits_h_INCLUDED
+
Definition BinaryOp.h:91
+
Definition BinaryOp.h:48
+
Definition UnaryOp.h:74
+
Definition UnaryOp.h:41
+
Forward declarations and default template parameters for ndarray.
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
+ + + + diff --git a/FFTWTraits_8h.html b/FFTWTraits_8h.html new file mode 100644 index 00000000..df353762 --- /dev/null +++ b/FFTWTraits_8h.html @@ -0,0 +1,96 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FFTWTraits.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FFTWTraits.h File Reference
+
+
+ +

Traits classes that wrap FFTW in a template-friendly interface. +More...

+
#include <complex>
+#include <fftw3.h>
+#include "ndarray/fft/FourierTraits.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

Traits classes that wrap FFTW in a template-friendly interface.

+
+ + + + diff --git a/FFTWTraits_8h_source.html b/FFTWTraits_8h_source.html new file mode 100644 index 00000000..f9c7fba3 --- /dev/null +++ b/FFTWTraits_8h_source.html @@ -0,0 +1,399 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FFTWTraits.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FFTWTraits.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11// THIS FILE IS MACHINE GENERATED BY SCONS. DO NOT EDIT MANUALLY.
+
12#ifndef NDARRAY_FFT_FFTWTraits_h_INCLUDED
+
13#define NDARRAY_FFT_FFTWTraits_h_INCLUDED
+
14
+
21#include <complex>
+
22#include <fftw3.h>
+ +
24
+
25namespace ndarray {
+
27namespace detail {
+
28
+
33template <typename T> struct FFTWTraits { BOOST_STATIC_ASSERT(sizeof(T) < 0); };
+
34
+
36
+
37 template <> struct FFTWTraits<float> {
+
38 BOOST_STATIC_ASSERT((!boost::is_const<float>::value));
+
39 typedef fftwf_plan Plan;
+
40 typedef FourierTraits<float>::ElementX ElementX;
+
41 typedef FourierTraits<float>::ElementK ElementK;
+
42 typedef boost::shared_ptr<ElementX> OwnerX;
+
43 typedef boost::shared_ptr<ElementK> OwnerK;
+
44 static inline Plan forward(int rank, const int *n, int howmany,
+
45 ElementX *in, const int *inembed, int istride, int idist,
+
46 ElementK *out, const int *onembed, int ostride, int odist,
+
47 unsigned flags) {
+
48 return fftwf_plan_many_dft_r2c(rank, n, howmany,
+
49 in, inembed, istride, idist,
+
50 reinterpret_cast<fftwf_complex*>(out),
+
51 onembed, ostride, odist,
+
52 flags);
+
53 }
+
54 static inline Plan inverse(int rank, const int *n, int howmany,
+
55 ElementK *in, const int *inembed, int istride, int idist,
+
56 ElementX *out, const int *onembed, int ostride, int odist,
+
57 unsigned flags) {
+
58 return fftwf_plan_many_dft_c2r(rank, n, howmany,
+
59 reinterpret_cast<fftwf_complex*>(in),
+
60 inembed, istride, idist,
+
61 out, onembed, ostride, odist,
+
62 flags);
+
63 }
+
64 static inline void destroy(Plan p) { fftwf_destroy_plan(p); }
+
65 static inline void execute(Plan p) { fftwf_execute(p); }
+
66 static inline OwnerX allocateX(int n) {
+
67 return OwnerX(
+
68 reinterpret_cast<ElementX*>(
+
69 fftwf_malloc(sizeof(ElementX)*n)
+
70 ),
+
71 fftwf_free
+
72 );
+
73 }
+
74 static inline OwnerK allocateK(int n) {
+
75 return OwnerK(
+
76 reinterpret_cast<ElementK*>(
+
77 fftwf_malloc(sizeof(ElementK)*n)
+
78 ),
+
79 fftwf_free
+
80 );
+
81 }
+
82 };
+
83 template <> struct FFTWTraits< std::complex<float> > {
+
84 typedef fftwf_plan Plan;
+
85 typedef FourierTraits< std::complex<float> >::ElementX ElementX;
+
86 typedef FourierTraits< std::complex<float> >::ElementK ElementK;
+
87 typedef boost::shared_ptr<ElementX> OwnerX;
+
88 typedef boost::shared_ptr<ElementK> OwnerK;
+
89 static inline Plan forward(int rank, const int *n, int howmany,
+
90 ElementX *in, const int *inembed, int istride, int idist,
+
91 ElementK *out, const int *onembed, int ostride, int odist,
+
92 unsigned flags) {
+
93 return fftwf_plan_many_dft(rank, n, howmany,
+
94 reinterpret_cast<fftwf_complex*>(in),
+
95 inembed, istride, idist,
+
96 reinterpret_cast<fftwf_complex*>(out),
+
97 onembed, ostride, odist,
+
98 FFTW_FORWARD, flags);
+
99 }
+
100 static inline Plan inverse(int rank, const int *n, int howmany,
+
101 ElementK *in, const int *inembed, int istride, int idist,
+
102 ElementX *out, const int *onembed, int ostride, int odist,
+
103 unsigned flags) {
+
104 return fftwf_plan_many_dft(rank, n, howmany,
+
105 reinterpret_cast<fftwf_complex*>(in),
+
106 inembed, istride, idist,
+
107 reinterpret_cast<fftwf_complex*>(out),
+
108 onembed, ostride, odist,
+
109 FFTW_BACKWARD,flags);
+
110 }
+
111 static inline void destroy(Plan p) { fftwf_destroy_plan(p); }
+
112 static inline void execute(Plan p) { fftwf_execute(p); }
+
113 static inline OwnerX allocateX(int n) {
+
114 return OwnerX(
+
115 reinterpret_cast<ElementX*>(
+
116 fftwf_malloc(sizeof(ElementX)*n)
+
117 ),
+
118 fftwf_free
+
119 );
+
120 }
+
121 static inline OwnerK allocateK(int n) {
+
122 return OwnerK(
+
123 reinterpret_cast<ElementK*>(
+
124 fftwf_malloc(sizeof(ElementK)*n)
+
125 ),
+
126 fftwf_free
+
127 );
+
128 }
+
129 };
+
130
+
131 template <> struct FFTWTraits<double> {
+
132 BOOST_STATIC_ASSERT((!boost::is_const<double>::value));
+
133 typedef fftw_plan Plan;
+
134 typedef FourierTraits<double>::ElementX ElementX;
+
135 typedef FourierTraits<double>::ElementK ElementK;
+
136 typedef boost::shared_ptr<ElementX> OwnerX;
+
137 typedef boost::shared_ptr<ElementK> OwnerK;
+
138 static inline Plan forward(int rank, const int *n, int howmany,
+
139 ElementX *in, const int *inembed, int istride, int idist,
+
140 ElementK *out, const int *onembed, int ostride, int odist,
+
141 unsigned flags) {
+
142 return fftw_plan_many_dft_r2c(rank, n, howmany,
+
143 in, inembed, istride, idist,
+
144 reinterpret_cast<fftw_complex*>(out),
+
145 onembed, ostride, odist,
+
146 flags);
+
147 }
+
148 static inline Plan inverse(int rank, const int *n, int howmany,
+
149 ElementK *in, const int *inembed, int istride, int idist,
+
150 ElementX *out, const int *onembed, int ostride, int odist,
+
151 unsigned flags) {
+
152 return fftw_plan_many_dft_c2r(rank, n, howmany,
+
153 reinterpret_cast<fftw_complex*>(in),
+
154 inembed, istride, idist,
+
155 out, onembed, ostride, odist,
+
156 flags);
+
157 }
+
158 static inline void destroy(Plan p) { fftw_destroy_plan(p); }
+
159 static inline void execute(Plan p) { fftw_execute(p); }
+
160 static inline OwnerX allocateX(int n) {
+
161 return OwnerX(
+
162 reinterpret_cast<ElementX*>(
+
163 fftw_malloc(sizeof(ElementX)*n)
+
164 ),
+
165 fftw_free
+
166 );
+
167 }
+
168 static inline OwnerK allocateK(int n) {
+
169 return OwnerK(
+
170 reinterpret_cast<ElementK*>(
+
171 fftw_malloc(sizeof(ElementK)*n)
+
172 ),
+
173 fftw_free
+
174 );
+
175 }
+
176 };
+
177 template <> struct FFTWTraits< std::complex<double> > {
+
178 typedef fftw_plan Plan;
+
179 typedef FourierTraits< std::complex<double> >::ElementX ElementX;
+
180 typedef FourierTraits< std::complex<double> >::ElementK ElementK;
+
181 typedef boost::shared_ptr<ElementX> OwnerX;
+
182 typedef boost::shared_ptr<ElementK> OwnerK;
+
183 static inline Plan forward(int rank, const int *n, int howmany,
+
184 ElementX *in, const int *inembed, int istride, int idist,
+
185 ElementK *out, const int *onembed, int ostride, int odist,
+
186 unsigned flags) {
+
187 return fftw_plan_many_dft(rank, n, howmany,
+
188 reinterpret_cast<fftw_complex*>(in),
+
189 inembed, istride, idist,
+
190 reinterpret_cast<fftw_complex*>(out),
+
191 onembed, ostride, odist,
+
192 FFTW_FORWARD, flags);
+
193 }
+
194 static inline Plan inverse(int rank, const int *n, int howmany,
+
195 ElementK *in, const int *inembed, int istride, int idist,
+
196 ElementX *out, const int *onembed, int ostride, int odist,
+
197 unsigned flags) {
+
198 return fftw_plan_many_dft(rank, n, howmany,
+
199 reinterpret_cast<fftw_complex*>(in),
+
200 inembed, istride, idist,
+
201 reinterpret_cast<fftw_complex*>(out),
+
202 onembed, ostride, odist,
+
203 FFTW_BACKWARD,flags);
+
204 }
+
205 static inline void destroy(Plan p) { fftw_destroy_plan(p); }
+
206 static inline void execute(Plan p) { fftw_execute(p); }
+
207 static inline OwnerX allocateX(int n) {
+
208 return OwnerX(
+
209 reinterpret_cast<ElementX*>(
+
210 fftw_malloc(sizeof(ElementX)*n)
+
211 ),
+
212 fftw_free
+
213 );
+
214 }
+
215 static inline OwnerK allocateK(int n) {
+
216 return OwnerK(
+
217 reinterpret_cast<ElementK*>(
+
218 fftw_malloc(sizeof(ElementK)*n)
+
219 ),
+
220 fftw_free
+
221 );
+
222 }
+
223 };
+
224#ifndef NDARRAY_FFT_NO_LONG_DOUBLE
+
225
+
226 template <> struct FFTWTraits<long double> {
+
227 BOOST_STATIC_ASSERT((!boost::is_const<long double>::value));
+
228 typedef fftwl_plan Plan;
+
229 typedef FourierTraits<long double>::ElementX ElementX;
+
230 typedef FourierTraits<long double>::ElementK ElementK;
+
231 typedef boost::shared_ptr<ElementX> OwnerX;
+
232 typedef boost::shared_ptr<ElementK> OwnerK;
+
233 static inline Plan forward(int rank, const int *n, int howmany,
+
234 ElementX *in, const int *inembed, int istride, int idist,
+
235 ElementK *out, const int *onembed, int ostride, int odist,
+
236 unsigned flags) {
+
237 return fftwl_plan_many_dft_r2c(rank, n, howmany,
+
238 in, inembed, istride, idist,
+
239 reinterpret_cast<fftwl_complex*>(out),
+
240 onembed, ostride, odist,
+
241 flags);
+
242 }
+
243 static inline Plan inverse(int rank, const int *n, int howmany,
+
244 ElementK *in, const int *inembed, int istride, int idist,
+
245 ElementX *out, const int *onembed, int ostride, int odist,
+
246 unsigned flags) {
+
247 return fftwl_plan_many_dft_c2r(rank, n, howmany,
+
248 reinterpret_cast<fftwl_complex*>(in),
+
249 inembed, istride, idist,
+
250 out, onembed, ostride, odist,
+
251 flags);
+
252 }
+
253 static inline void destroy(Plan p) { fftwl_destroy_plan(p); }
+
254 static inline void execute(Plan p) { fftwl_execute(p); }
+
255 static inline OwnerX allocateX(int n) {
+
256 return OwnerX(
+
257 reinterpret_cast<ElementX*>(
+
258 fftwl_malloc(sizeof(ElementX)*n)
+
259 ),
+
260 fftwl_free
+
261 );
+
262 }
+
263 static inline OwnerK allocateK(int n) {
+
264 return OwnerK(
+
265 reinterpret_cast<ElementK*>(
+
266 fftwl_malloc(sizeof(ElementK)*n)
+
267 ),
+
268 fftwl_free
+
269 );
+
270 }
+
271 };
+
272 template <> struct FFTWTraits< std::complex<long double> > {
+
273 typedef fftwl_plan Plan;
+
274 typedef FourierTraits< std::complex<long double> >::ElementX ElementX;
+
275 typedef FourierTraits< std::complex<long double> >::ElementK ElementK;
+
276 typedef boost::shared_ptr<ElementX> OwnerX;
+
277 typedef boost::shared_ptr<ElementK> OwnerK;
+
278 static inline Plan forward(int rank, const int *n, int howmany,
+
279 ElementX *in, const int *inembed, int istride, int idist,
+
280 ElementK *out, const int *onembed, int ostride, int odist,
+
281 unsigned flags) {
+
282 return fftwl_plan_many_dft(rank, n, howmany,
+
283 reinterpret_cast<fftwl_complex*>(in),
+
284 inembed, istride, idist,
+
285 reinterpret_cast<fftwl_complex*>(out),
+
286 onembed, ostride, odist,
+
287 FFTW_FORWARD, flags);
+
288 }
+
289 static inline Plan inverse(int rank, const int *n, int howmany,
+
290 ElementK *in, const int *inembed, int istride, int idist,
+
291 ElementX *out, const int *onembed, int ostride, int odist,
+
292 unsigned flags) {
+
293 return fftwl_plan_many_dft(rank, n, howmany,
+
294 reinterpret_cast<fftwl_complex*>(in),
+
295 inembed, istride, idist,
+
296 reinterpret_cast<fftwl_complex*>(out),
+
297 onembed, ostride, odist,
+
298 FFTW_BACKWARD,flags);
+
299 }
+
300 static inline void destroy(Plan p) { fftwl_destroy_plan(p); }
+
301 static inline void execute(Plan p) { fftwl_execute(p); }
+
302 static inline OwnerX allocateX(int n) {
+
303 return OwnerX(
+
304 reinterpret_cast<ElementX*>(
+
305 fftwl_malloc(sizeof(ElementX)*n)
+
306 ),
+
307 fftwl_free
+
308 );
+
309 }
+
310 static inline OwnerK allocateK(int n) {
+
311 return OwnerK(
+
312 reinterpret_cast<ElementK*>(
+
313 fftwl_malloc(sizeof(ElementK)*n)
+
314 ),
+
315 fftwl_free
+
316 );
+
317 }
+
318 };
+
319#endif
+
321
+
322} // namespace detail
+
324} // namespace ndarray
+
325
+
326#endif // !NDARRAY_FFT_FFTWTraits_h_INCLUDED
+
Traits classes to handle real-data and complex-data FFTs in a template-friendly way.
+
+ + + + diff --git a/FourierOps_8h.html b/FourierOps_8h.html new file mode 100644 index 00000000..d303058b --- /dev/null +++ b/FourierOps_8h.html @@ -0,0 +1,109 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FourierOps.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
FourierOps.h File Reference
+
+
+ +

Common Fourier-space operations. +More...

+
#include <boost/noncopyable.hpp>
+#include "ndarray.h"
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , int N, int C>
void ndarray::shift (Vector< T, N > const &offset, Array< std::complex< T >, N, C > const &array, int const real_last_dim)
 Perform a Fourier-space translation transform.
 
template<typename T , int N, int C>
void ndarray::differentiate (int n, Array< std::complex< T >, N, C > const &array, int const real_last_dim)
 Numerically differentiate the array in Fourier-space in the given dimension.
 
+

Detailed Description

+

Common Fourier-space operations.

+
+ + + + diff --git a/FourierOps_8h_source.html b/FourierOps_8h_source.html new file mode 100644 index 00000000..9759c53d --- /dev/null +++ b/FourierOps_8h_source.html @@ -0,0 +1,233 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FourierOps.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FourierOps.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_FFT_FourierOps_h_INCLUDED
+
12#define NDARRAY_FFT_FourierOps_h_INCLUDED
+
13
+
20#include <boost/noncopyable.hpp>
+
21
+
22#include "ndarray.h"
+
23
+
24namespace ndarray {
+
26namespace detail {
+
27
+
28#ifdef _MSC_VER
+
30static const double M_PI = 4. * atan(1.);
+
31#endif
+
32
+
37template <typename T, int N>
+
38struct FourierOps {
+
39
+
40 template <int C>
+
41 static void shift(
+
42 T const * offset,
+
43 std::complex<T> const & factor,
+
44 ArrayRef<std::complex<T>,N,C> const & array,
+
45 int const real_last_dim
+
46 ) {
+
47 typename ArrayRef<std::complex<T>,N,C>::Iterator iter = array.begin();
+
48 T u = -2.0 * M_PI * (*offset) / array.size();
+
49 int kMid = (array.size() + 1) / 2;
+
50 for (int k = 0; k < kMid; ++k, ++iter) {
+
51 FourierOps<T,N-1>::shift(offset+1, factor * std::polar(static_cast<T>(1), u * k),
+
52 *iter, real_last_dim);
+
53 }
+
54 if (array.size() % 2 == 0) {
+
55 FourierOps<T,N-1>::shift(offset+1, factor * std::cos(u * kMid), *iter, real_last_dim);
+
56 ++iter;
+
57 ++kMid;
+
58 }
+
59 for (int k_n = kMid - array.size(); k_n < 0; ++k_n, ++iter) {
+
60 FourierOps<T,N-1>::shift(offset+1, factor * std::polar(static_cast<T>(1), u * k_n),
+
61 *iter, real_last_dim);
+
62 }
+
63 }
+
64
+
65 template <int C>
+
66 static void differentiate(int m, ArrayRef<std::complex<T>,N,C> const & array, int const real_last_dim) {
+
67 typename ArrayRef<std::complex<T>,N,C>::Iterator iter = array.begin();
+
68 int kMid = (array.size() + 1) / 2;
+
69 T u = 2.0 * M_PI / array.size();
+
70 for (int k = 0; k < kMid; ++k, ++iter) {
+
71 if (m == N) (*iter) *= std::complex<T>(static_cast<T>(0), u * T(k));
+
72 FourierOps<T,N-1>::differentiate(m, *iter, real_last_dim);
+
73 }
+
74 if (array.size() % 2 == 0) {
+
75 (*iter) = static_cast<T>(0);
+
76 ++iter;
+
77 ++kMid;
+
78 }
+
79 for (int k_n = kMid - array.size(); k_n < 0; ++k_n, ++iter) {
+
80 if (m == N) (*iter) *= std::complex<T>(static_cast<T>(0), u * T(k_n));
+
81 FourierOps<T,N-1>::differentiate(m, *iter, real_last_dim);
+
82 }
+
83 }
+
84
+
85};
+
86
+
91template <typename T>
+
92struct FourierOps<T,1> {
+
93
+
94 template <int C>
+
95 static void shift(
+
96 T const * offset,
+
97 std::complex<T> const & factor,
+
98 ArrayRef<std::complex<T>,1,C> const & array,
+
99 int const real_last_dim
+
100 ) {
+
101 typename ArrayRef<std::complex<T>,1,C>::Iterator iter = array.begin();
+
102 T u = -2.0 * M_PI * (*offset) / real_last_dim;
+
103 int kMid = (real_last_dim + 1) / 2;
+
104 for (int k = 0; k < kMid; ++k, ++iter) {
+
105 (*iter) *= factor * std::polar(1.0, u * T(k));
+
106 }
+
107 if (real_last_dim % 2 == 0) {
+
108 (*iter) *= factor * std::cos(u * kMid);
+
109 ++iter;
+
110 }
+
111 }
+
112
+
113 template <int C>
+
114 static void differentiate(int m, ArrayRef<std::complex<T>,1,C> const & array, int const real_last_dim) {
+
115 typename ArrayRef<std::complex<T>,1,C>::Iterator iter = array.begin();
+
116 int kMid = (real_last_dim + 1) / 2;
+
117 if (m == 1) {
+
118 T u = 2.0 * M_PI / real_last_dim;
+
119 for (int k = 0; k < kMid; ++k, ++iter) {
+
120 (*iter) *= std::complex<T>(static_cast<T>(0), u * T(k));
+
121 }
+
122 }
+
123 if (real_last_dim % 2 == 0) {
+
124 array[kMid] = static_cast<T>(0);
+
125 }
+
126 }
+
127
+
128};
+
129
+
130} // namespace detail
+
132
+
138template <typename T, int N, int C>
+
139void shift(
+
140 Vector<T,N> const & offset,
+
141 Array<std::complex<T>,N,C> const & array,
+
142 int const real_last_dim
+
143) {
+
144 detail::FourierOps<T,N>::shift(
+
145 offset.begin(),
+
146 static_cast< std::complex<T> >(1),
+
147 array.deep(),
+
148 real_last_dim
+
149 );
+
150}
+
151
+
157template <typename T, int N, int C>
+ +
159 int n,
+
160 Array<std::complex<T>,N,C> const & array,
+
161 int const real_last_dim
+
162) {
+
163 detail::FourierOps<T,N>::differentiate(N-n, array.deep(), real_last_dim);
+
164}
+
165
+
166} // namespace ndarray
+
167
+
168#endif // !NDARRAY_FFT_FourierOps_h_INCLUDED
+
A multidimensional strided array.
Definition Array.h:35
+
void shift(Vector< T, N > const &offset, Array< std::complex< T >, N, C > const &array, int const real_last_dim)
Perform a Fourier-space translation transform.
Definition FourierOps.h:139
+
void differentiate(int n, Array< std::complex< T >, N, C > const &array, int const real_last_dim)
Numerically differentiate the array in Fourier-space in the given dimension.
Definition FourierOps.h:158
+
Main public header file for ndarray.
+
A fixed-size 1D array class.
Definition Vector.h:82
+
iterator begin()
Return an iterator to the beginning of the Vector.
Definition Vector.h:111
+
+ + + + diff --git a/FourierTraits_8h.html b/FourierTraits_8h.html new file mode 100644 index 00000000..fbf24ab0 --- /dev/null +++ b/FourierTraits_8h.html @@ -0,0 +1,96 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FourierTraits.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FourierTraits.h File Reference
+
+
+ +

Traits classes to handle real-data and complex-data FFTs in a template-friendly way. +More...

+
#include <complex>
+#include <boost/shared_ptr.hpp>
+#include "ndarray/fft_fwd.h"
+
+

Go to the source code of this file.

+

Detailed Description

+

Traits classes to handle real-data and complex-data FFTs in a template-friendly way.

+
+ + + + diff --git a/FourierTraits_8h_source.html b/FourierTraits_8h_source.html new file mode 100644 index 00000000..f62d1fe2 --- /dev/null +++ b/FourierTraits_8h_source.html @@ -0,0 +1,159 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FourierTraits.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FourierTraits.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_FFT_FourierTraits_h_INCLUDED
+
12#define NDARRAY_FFT_FourierTraits_h_INCLUDED
+
13
+
20#include <complex>
+
21#include <boost/shared_ptr.hpp>
+
22
+
23#include "ndarray/fft_fwd.h"
+
24
+
25namespace ndarray {
+
27namespace detail {
+
28
+
33template <typename T, bool IsConst>
+
34struct FourierTraits {
+
35 BOOST_STATIC_ASSERT(sizeof(T) < 0);
+
36};
+
37
+
39
+
40template <typename T>
+
41struct FourierTraits<T,false> {
+
42 typedef T ElementX;
+
43 typedef T ValueX;
+
44 typedef std::complex<T> ElementK;
+
45 typedef std::complex<T> ValueK;
+
46
+
47 static inline Size computeLastDimensionSize(Size n) { return n/2 + 1; }
+
48};
+
49
+
50template <typename T>
+
51struct FourierTraits<T,true> {
+
52 typedef T ElementX;
+
53 typedef typename boost::remove_const<T>::type ValueX;
+
54 typedef std::complex<ValueX> ValueK;
+
55 typedef ValueK const ElementK;
+
56
+
57 static inline Size computeLastDimensionSize(Size n) { return n/2 + 1; }
+
58};
+
59
+
60template <typename U>
+
61struct FourierTraits<std::complex<U>,false> {
+
62 typedef std::complex<U> ElementX;
+
63 typedef std::complex<U> ElementK;
+
64 typedef std::complex<U> ValueX;
+
65 typedef std::complex<U> ValueK;
+
66
+
67 static inline Size computeLastDimensionSize(Size n) { return n; }
+
68};
+
69
+
70template <typename U>
+
71struct FourierTraits<std::complex<U> const,true> {
+
72 typedef std::complex<U> const ElementX;
+
73 typedef std::complex<U> const ElementK;
+
74 typedef std::complex<U> ValueX;
+
75 typedef std::complex<U> ValueK;
+
76
+
77 static inline Size computeLastDimensionSize(Size n) { return n; }
+
78};
+
79
+
81
+
82} // namespace detail
+
84} // namespace ndarray
+
85
+
86#endif // !NDARRAY_FFT_FourierTraits_h_INCLUDED
+
Forward declarations and default template parameters for ndarray/fft.
+
+ + + + diff --git a/FourierTransform_8h.html b/FourierTransform_8h.html new file mode 100644 index 00000000..24c93cc5 --- /dev/null +++ b/FourierTransform_8h.html @@ -0,0 +1,105 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FourierTransform.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
FourierTransform.h File Reference
+
+
+ +

Definitions for FourierTransform. +More...

+
#include <boost/noncopyable.hpp>
+#include "ndarray.h"
+#include "ndarray/fft/FourierTraits.h"
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  ndarray::FourierTransform< T, N >
 A wrapper for FFTW plans for fast Fourier transforms. More...
 
+

Detailed Description

+

Definitions for FourierTransform.

+
+ + + + diff --git a/FourierTransform_8h_source.html b/FourierTransform_8h_source.html new file mode 100644 index 00000000..bc8a5a2a --- /dev/null +++ b/FourierTransform_8h_source.html @@ -0,0 +1,197 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft/FourierTransform.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
FourierTransform.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_FFT_FourierTransform_h_INCLUDED
+
12#define NDARRAY_FFT_FourierTransform_h_INCLUDED
+
13
+
20#include <boost/noncopyable.hpp>
+
21
+
22#include "ndarray.h"
+ +
24
+
25namespace ndarray {
+
26
+
41template <typename T, int N>
+
42class FourierTransform : private boost::noncopyable {
+
43 BOOST_STATIC_ASSERT((!boost::is_const<T>::value));
+
44public:
+
45
+
46 typedef boost::shared_ptr<FourierTransform> Ptr;
+
47
+ + +
50
+ + + + + + +
57
+
64 static Ptr planForward(
+
65 Index const & shape,
+
66 ArrayX & x,
+
67 ArrayK & k
+
68 );
+
69
+
76 static Ptr planInverse(
+
77 Index const & shape,
+
78 ArrayK & k,
+
79 ArrayX & x
+
80 );
+
81
+ +
89 MultiplexIndex const & shape,
+
90 MultiplexArrayX & x,
+ +
92 );
+
93
+ +
101 MultiplexIndex const & shape,
+
102 MultiplexArrayK & k,
+
103 MultiplexArrayX & x
+
104 );
+
105
+
107 template <int M>
+ +
109
+
111 template <int M>
+ +
113
+
119 template <int M>
+ +
121
+
123 void execute();
+
124
+ +
126
+
127private:
+
128 typedef boost::shared_ptr<ElementX> OwnerX;
+
129 typedef boost::shared_ptr<ElementK> OwnerK;
+
130
+
131 FourierTransform(void * plan, Manager::Ptr const & x, Manager::Ptr const & k)
+
132 : _plan(plan), _x(x), _k(k) {}
+
133
+
134 void * _plan; // 'void' so we don't have to include fftw3.h in the header file
+
135 Manager::Ptr _x;
+
136 Manager::Ptr _k;
+
137};
+
138
+
139} // namespace ndarray
+
140
+
141#endif // !NDARRAY_FFT_FourierTransform_h_INCLUDED
+
Traits classes to handle real-data and complex-data FFTs in a template-friendly way.
+
A multidimensional strided array.
Definition Array.h:35
+
A wrapper for FFTW plans for fast Fourier transforms.
Definition FourierTransform.h:42
+
static Ptr planForward(Index const &shape, ArrayX &x, ArrayK &k)
Create a plan for forward-transforming a single N-dimensional array.
+
detail::FourierTraits< T >::ElementX ElementX
Real-space array data type;.
Definition FourierTransform.h:48
+
static void initialize(Vector< Size, M > const &shape, Array< ElementX, M, M > &x, Array< ElementK, M, M > &k)
Initialize, as necessary, a pair of arrays with the given real-space shape.
+
Vector< Size, N > Index
Shape type for arrays.
Definition FourierTransform.h:51
+
void execute()
Execute the FFTW plan.
+
static Array< ElementX, M, M > initializeX(Vector< Size, M > const &shape)
Create a new real-space array with the given real-space shape.
+
static Ptr planInverse(Index const &shape, ArrayK &k, ArrayX &x)
Create a plan for inverse-transforming a single N-dimensional array.
+
Array< ElementK, N+1, N+1 > MultiplexArrayK
Fourier-space multiplexed array type.
Definition FourierTransform.h:56
+
static Ptr planMultiplexForward(MultiplexIndex const &shape, MultiplexArrayX &x, MultiplexArrayK &k)
Create a plan for forward-transforming a sequence of nested N-dimensional arrays.
+
Array< ElementX, N, N > ArrayX
Real-space array type.
Definition FourierTransform.h:52
+
Array< ElementX, N+1, N+1 > MultiplexArrayX
Real-space multiplexed array type.
Definition FourierTransform.h:55
+
static Array< ElementK, M, M > initializeK(Vector< Size, M > const &shape)
Create a new Fourier-space array with the given real-space shape.
+
static Ptr planMultiplexInverse(MultiplexIndex const &shape, MultiplexArrayK &k, MultiplexArrayX &x)
Create a plan for inverse-transforming a sequence of nested N-dimensional arrays.
+
detail::FourierTraits< T >::ElementK ElementK
Fourier-space array data type;.
Definition FourierTransform.h:49
+
Array< ElementK, N, N > ArrayK
Fourier-space array type.
Definition FourierTransform.h:53
+
Vector< Size, N+1 > MultiplexIndex
Shape type for multiplexed arrays.
Definition FourierTransform.h:54
+
Main public header file for ndarray.
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Definition fft_fwd.h:35
+
+ + + + diff --git a/LICENSE b/LICENSE deleted file mode 100644 index a0f2feea..00000000 --- a/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -Copyright (c) 2010, 2011, 2012, Jim Bosch -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Manager_8h.html b/Manager_8h.html new file mode 100644 index 00000000..4118d635 --- /dev/null +++ b/Manager_8h.html @@ -0,0 +1,120 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/Manager.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Manager.h File Reference
+
+
+ +

Definition of Manager, which manages the ownership of array data. +More...

+
#include "ndarray_fwd.h"
+#include <boost/noncopyable.hpp>
+#include <boost/intrusive_ptr.hpp>
+#include <boost/scoped_array.hpp>
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  ndarray::Manager
 
class  ndarray::SimpleManager< T >
 
class  ndarray::ExternalManager< U >
 
+ + + + + + +

+Functions

+template<typename T >
Manager::Ptr ndarray::makeManager (T const &owner)
 
+Manager::Ptr ndarray::makeManager (Manager::Ptr const &owner)
 
+

Detailed Description

+

Definition of Manager, which manages the ownership of array data.

+
+ + + + diff --git a/Manager_8h_source.html b/Manager_8h_source.html new file mode 100644 index 00000000..57429994 --- /dev/null +++ b/Manager_8h_source.html @@ -0,0 +1,184 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/Manager.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Manager.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_Manager_h_INCLUDED
+
12#define NDARRAY_Manager_h_INCLUDED
+
13
+
20#include "ndarray_fwd.h"
+
21#include <boost/noncopyable.hpp>
+
22#include <boost/intrusive_ptr.hpp>
+
23#include <boost/scoped_array.hpp>
+
24
+
25namespace ndarray {
+
26
+
27class Manager : private boost::noncopyable {
+
28public:
+
29
+
30 typedef boost::intrusive_ptr<Manager> Ptr;
+
31
+
32 friend inline void intrusive_ptr_add_ref(Manager const * manager) {
+
33 ++manager->_rc;
+
34 }
+
35
+
36 friend inline void intrusive_ptr_release(Manager const * manager) {
+
37 if ((--manager->_rc)==0) delete manager;
+
38 }
+
39
+
40 int getRC() const { return _rc; }
+
41
+
42 virtual bool isUnique() const { return false; }
+
43
+
44protected:
+
45
+
46 virtual ~Manager() {}
+
47
+
48 explicit Manager() : _rc(0) {}
+
49
+
50private:
+
51 mutable int _rc;
+
52};
+
53
+
54template <typename T>
+
55class SimpleManager : public Manager {
+
56 typedef typename boost::remove_const<T>::type U;
+
57public:
+
58
+
59 static std::pair<Manager::Ptr,T*> allocate(Size size) {
+
60 boost::intrusive_ptr<SimpleManager> r(new SimpleManager(size));
+
61 return std::pair<Manager::Ptr,T*>(r, r->_p.get());
+
62 }
+
63
+
64 virtual bool isUnique() const { return true; }
+
65
+
66private:
+
67 explicit SimpleManager(Size size) : _p() {
+
68 if (size > 0) _p.reset(new U[size]);
+
69 }
+
70 boost::scoped_array<U> _p;
+
71};
+
72
+
73template <typename T> Manager::Ptr makeManager(T const & owner);
+
74
+
75template <typename U>
+
76class ExternalManager : public Manager, private U {
+
77public:
+
78 typedef U Owner;
+
79
+
80 template <typename T> friend Manager::Ptr makeManager(T const & owner);
+
81
+
82 Owner const & getOwner() const { return *static_cast<Owner const *>(this); }
+
83
+
84private:
+
85 explicit ExternalManager(Owner const & owner) : Owner(owner) {}
+
86};
+
87
+
88template <typename T>
+
89inline Manager::Ptr makeManager(T const & owner) {
+
90 return Manager::Ptr(new ExternalManager<T>(owner));
+
91}
+
92
+
93// A no-op overload for makeManager to avoid unnecessary levels of indirection.
+
94inline Manager::Ptr makeManager(Manager::Ptr const & owner) {
+
95 return owner;
+
96}
+
97
+
98} // namespace ndarray
+
99
+
100#endif // !NDARRAY_Manager_h_INCLUDED
+
Definition Manager.h:76
+
Definition Manager.h:27
+
Definition Manager.h:55
+
Forward declarations and default template parameters for ndarray.
+
+ + + + diff --git a/NestedIterator_8h.html b/NestedIterator_8h.html new file mode 100644 index 00000000..55283d2a --- /dev/null +++ b/NestedIterator_8h.html @@ -0,0 +1,103 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/NestedIterator.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
NestedIterator.h File Reference
+
+
+ +

Definition of NestedIterator. +More...

+
#include <boost/iterator/iterator_facade.hpp>
+#include "ndarray_fwd.h"
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  ndarray::detail::NestedIterator< T, N, C >
 
+

Detailed Description

+

Definition of NestedIterator.

+
+ + + + diff --git a/NestedIterator_8h_source.html b/NestedIterator_8h_source.html new file mode 100644 index 00000000..a16e8be3 --- /dev/null +++ b/NestedIterator_8h_source.html @@ -0,0 +1,187 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/NestedIterator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
NestedIterator.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_NestedIterator_h_INCLUDED
+
12#define NDARRAY_DETAIL_NestedIterator_h_INCLUDED
+
13
+
20#include <boost/iterator/iterator_facade.hpp>
+
21#include "ndarray_fwd.h"
+
22
+
23namespace ndarray {
+
24namespace detail {
+
25
+
39template <typename T, int N, int C>
+
40class NestedIterator : public boost::iterator_facade<
+
41 NestedIterator<T,N,C>,
+
42 typename ArrayTraits<T,N,C>::Value,
+
43 boost::random_access_traversal_tag,
+
44 typename ArrayTraits<T,N,C>::Reference
+
45 >
+
46{
+
47public:
+
48 typedef typename ArrayTraits<T,N,C>::Value Value;
+ +
50
+
51 Reference operator[](Size n) const {
+
52 Reference r(_ref);
+
53 r._data += n * _stride;
+
54 return r;
+
55 }
+
56
+
57 Reference const & operator*() const { return _ref; }
+
58
+
59 Reference const * operator->() { return &_ref; }
+
60
+
61 NestedIterator() : _ref(Value()), _stride(0) {}
+
62
+
63 NestedIterator(Reference const & ref, Offset stride) : _ref(ref), _stride(stride) {}
+
64
+
65 NestedIterator(NestedIterator const & other) : _ref(other._ref), _stride(other._stride) {}
+
66
+
67 template <typename T_, int C_>
+
68 NestedIterator(NestedIterator<T_,N,C_> const & other) : _ref(other._ref), _stride(other._stride) {}
+
69
+
70 NestedIterator & operator=(NestedIterator const & other) {
+
71 if (&other != this) {
+
72 _ref._data = other._ref._data;
+
73 _ref._core = other._ref._core;
+
74 _stride = other._stride;
+
75 }
+
76 return *this;
+
77 }
+
78
+
79 template <typename T_, int C_>
+
80 NestedIterator & operator=(NestedIterator<T_,N,C_> const & other) {
+
81 _ref._data = other._ref._data;
+
82 _ref._core = other._ref._core;
+
83 _stride = other._stride;
+
84 return *this;
+
85 }
+
86
+
87private:
+
88
+
89 friend class boost::iterator_core_access;
+
90
+
91 template <typename T_, int N_, int C_> friend class NestedIterator;
+
92
+
93 Reference const & dereference() const { return _ref; }
+
94
+
95 void increment() { _ref._data += _stride; }
+
96 void decrement() { _ref._data -= _stride; }
+
97 void advance(Offset n) { _ref._data += _stride * n; }
+
98
+
99 template <typename T_, int C_>
+
100 Offset distance_to(NestedIterator<T_,N,C_> const & other) const {
+
101 return std::distance(_ref._data, other._ref._data) / _stride;
+
102 }
+
103
+
104 template <typename T_, int C_>
+
105 bool equal(NestedIterator<T_,N,C_> const & other) const {
+
106 return _ref._data == other._ref._data;
+
107 }
+
108
+
109 Reference _ref;
+
110 Offset _stride;
+
111};
+
112
+
113} // namespace detail
+
114} // namespace ndarray
+
115
+
116#endif // !NDARRAY_DETAIL_NestedIterator_h_INCLUDED
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
A multidimensional strided array.
Definition Array.h:35
+
Definition NestedIterator.h:46
+
Forward declarations and default template parameters for ndarray.
+
+ + + + diff --git a/README.md b/README.md deleted file mode 100644 index 2be217b7..00000000 --- a/README.md +++ /dev/null @@ -1,37 +0,0 @@ -ndarray: NumPy-friendly multidimensional arrays in C++ -====================================================== -![Build Status](https://github.com/ndarray/ndarray/workflows/build_and_test/badge.svg) - -ndarray is a template library that provides multidimensional array -objects in C++, with an interface and features designed to mimic the -Python 'numpy' package as much as possible. - -More information can be found in the [documentation at -ndarray.github.io/ndarray](https://ndarray.github.io/ndarray/). - - -Installation ------------- - -ndarray can be built and tested with CMake: - - mkdir build - cd build - cmake .. - make - make test - -Inclusion and testing of optional dependencies is controlled by NDARRAY_* cmake -options. Dependency resolution can be controlled by the PYBIND11_DIR, -EIGEN_DIR, and FFTW_DIR environment variables. For example, to build with an -alternate Eigen3 install location and disable FFTW testing replace `cmake ..` -with `EIGEN_DIR=/opt/local cmake -DNDARRY_FFTW=OFF ..`. - -ndarray's build system does not produce the correct suffixes for pybind11 -outputs under pybind11 2.1.x (due to a bug in pybind11 itself). To avoid this -problem, please upgrade to pybind11 2.2.x, or try the (now reverted) patch from -ndarray commit f46c0f0ff876ceab5aaa3286e5f6e86902e72feb. - -Version 1.4.2 of ndarray is the last version to support SWIG. - -Version 1.5.3 of ndarray is the last verison to support Boost.Python. diff --git a/StridedIterator_8h.html b/StridedIterator_8h.html new file mode 100644 index 00000000..d0e71e0f --- /dev/null +++ b/StridedIterator_8h.html @@ -0,0 +1,103 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/StridedIterator.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
StridedIterator.h File Reference
+
+
+ +

Definition of StridedIterator. +More...

+
#include "ndarray_fwd.h"
+#include <boost/iterator/iterator_facade.hpp>
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  ndarray::detail::StridedIterator< T >
 
+

Detailed Description

+

Definition of StridedIterator.

+
+ + + + diff --git a/StridedIterator_8h_source.html b/StridedIterator_8h_source.html new file mode 100644 index 00000000..3d38405c --- /dev/null +++ b/StridedIterator_8h_source.html @@ -0,0 +1,175 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/StridedIterator.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
StridedIterator.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_StridedIterator_h_INCLUDED
+
12#define NDARRAY_DETAIL_StridedIterator_h_INCLUDED
+
13
+
20#include "ndarray_fwd.h"
+
21#include <boost/iterator/iterator_facade.hpp>
+
22
+
23namespace ndarray {
+
24namespace detail {
+
25
+
31template <typename T>
+
32class StridedIterator : public boost::iterator_facade<
+
33 StridedIterator<T>,
+
34 T, boost::random_access_traversal_tag
+
35 >
+
36{
+
37public:
+
38 typedef T Value;
+
39 typedef T & Reference;
+
40
+
41 StridedIterator() : _data(0), _stride(0) {}
+
42
+
43 StridedIterator(T * data, Offset stride) : _data(data), _stride(stride) {}
+
44
+
45 StridedIterator(StridedIterator const & other) : _data(other._data), _stride(other._stride) {}
+
46
+
47 template <typename U>
+
48 StridedIterator(StridedIterator<U> const & other) : _data(other._data), _stride(other._stride) {
+
49 BOOST_STATIC_ASSERT((boost::is_convertible<U*,T*>::value));
+
50 }
+
51
+
52 StridedIterator & operator=(StridedIterator const & other) {
+
53 if (&other != this) {
+
54 _data = other._data;
+
55 _stride = other._stride;
+
56 }
+
57 return *this;
+
58 }
+
59
+
60 template <typename U>
+
61 StridedIterator & operator=(StridedIterator<U> const & other) {
+
62 BOOST_STATIC_ASSERT((boost::is_convertible<U*,T*>::value));
+
63 _data = other._data;
+
64 _stride = other._stride;
+
65 return *this;
+
66 }
+
67
+
68private:
+
69
+
70 friend class boost::iterator_core_access;
+
71
+
72 template <typename OtherT> friend class StridedIterator;
+
73
+
74 Reference dereference() const { return *_data; }
+
75
+
76 void increment() { _data += _stride; }
+
77 void decrement() { _data -= _stride; }
+
78 void advance(Offset n) { _data += _stride * n; }
+
79
+
80 template <typename U>
+
81 Offset distance_to(StridedIterator<U> const & other) const {
+
82 return std::distance(_data, other._data) / _stride;
+
83 }
+
84
+
85 template <typename U>
+
86 bool equal(StridedIterator<U> const & other) const {
+
87 return _data == other._data;
+
88 }
+
89
+
90 T * _data;
+
91 Offset _stride;
+
92
+
93};
+
94
+
95} // namespace detail
+
96} // namespace ndarray
+
97
+
98#endif // !NDARRAY_DETAIL_StridedIterator_h_INCLUDED
+
Definition StridedIterator.h:36
+
Forward declarations and default template parameters for ndarray.
+
+ + + + diff --git a/UnaryOp_8h.html b/UnaryOp_8h.html new file mode 100644 index 00000000..811f69d0 --- /dev/null +++ b/UnaryOp_8h.html @@ -0,0 +1,106 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/UnaryOp.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
UnaryOp.h File Reference
+
+
+ +

Lazy unary expression templates. +More...

+
#include "ndarray/ExpressionBase.h"
+#include "ndarray/vectorize.h"
+#include <boost/iterator/iterator_adaptor.hpp>
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

class  ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >
 
class  ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
 
+

Detailed Description

+

Lazy unary expression templates.

+
+ + + + diff --git a/UnaryOp_8h_source.html b/UnaryOp_8h_source.html new file mode 100644 index 00000000..95ffb790 --- /dev/null +++ b/UnaryOp_8h_source.html @@ -0,0 +1,188 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/UnaryOp.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
UnaryOp.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_UnaryOp_h_INCLUDED
+
12#define NDARRAY_DETAIL_UnaryOp_h_INCLUDED
+
13
+ +
21#include "ndarray/vectorize.h"
+
22#include <boost/iterator/iterator_adaptor.hpp>
+
23
+
24namespace ndarray {
+
25namespace detail {
+
26
+
34template <typename Operand, typename UnaryFunction>
+
35class UnaryOpIterator : public boost::iterator_adaptor<
+
36 UnaryOpIterator<Operand,UnaryFunction>,
+
37 typename ExpressionTraits<Operand>::Iterator,
+
38 typename ExpressionTraits< UnaryOpExpression<Operand,UnaryFunction> >::Value,
+
39 boost::use_default,
+
40 typename ExpressionTraits< UnaryOpExpression<Operand,UnaryFunction> >::Reference
+
41 > {
+ +
43public:
+
44 typedef typename ExpressionTraits<Operand>::Iterator BaseIterator;
+
45 typedef typename ExpressionTraits<Operation>::Value Value;
+
46 typedef typename ExpressionTraits<Operation>::Reference Reference;
+
47
+
48 UnaryOpIterator() : UnaryOpIterator::iterator_adaptor_(), _functor() {}
+
49
+
50 UnaryOpIterator(BaseIterator const & baseIter, UnaryFunction const & functor) :
+
51 UnaryOpIterator::iterator_adaptor_(baseIter), _functor(functor) {}
+
52
+
53 UnaryOpIterator(UnaryOpIterator const & other) :
+
54 UnaryOpIterator::iterator_adaptor_(other), _functor(other._functor) {}
+
55
+
56private:
+
57 friend class boost::iterator_core_access;
+
58
+
59 Reference dereference() const {
+
60 return vectorize(_functor,*this->base_reference());
+
61 }
+
62
+
63 UnaryFunction _functor;
+
64};
+
65
+
73template <typename Operand, typename UnaryFunction, int N>
+
74class UnaryOpExpression : public ExpressionBase< UnaryOpExpression<Operand,UnaryFunction,N> > {
+ +
76public:
+
77 typedef typename ExpressionTraits<Self>::Element Element;
+
78 typedef typename ExpressionTraits<Self>::ND ND;
+
79 typedef typename ExpressionTraits<Self>::Iterator Iterator;
+
80 typedef typename ExpressionTraits<Self>::Value Value;
+
81 typedef typename ExpressionTraits<Self>::Reference Reference;
+
82 typedef Vector<Size,N> Index;
+
83
+
84 UnaryOpExpression(Operand const & operand, UnaryFunction const & functor) :
+
85 _operand(operand), _functor(functor) {}
+
86
+
87 Reference operator[](Size n) const {
+
88 return Reference(_operand[n],_functor);
+
89 }
+
90
+
91 Iterator begin() const {
+
92 return Iterator(_operand.begin(),_functor);
+
93 }
+
94
+
95 Iterator end() const {
+
96 return Iterator(_operand.end(),_functor);
+
97 }
+
98
+
99 template <int P> Size getSize() const {
+
100 return _operand.template getSize<P>();
+
101 }
+
102
+
103 Index getShape() const {
+
104 return _operand.getShape();
+
105 }
+
106
+
107 Operand _operand;
+
108 UnaryFunction _functor;
+
109};
+
110
+
111} // namespace detail
+
112} // namespace ndarray
+
113
+
114#endif // !NDARRAY_DETAIL_UnaryOp_h_INCLUDED
+
Definitions for ExpressionBase.
+
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
+
Definition UnaryOp.h:74
+
Definition UnaryOp.h:41
+
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, typenameUnaryFunction::result_type >::type vectorize(UnaryFunction const &functor, Scalar const &scalar)
Apply a non-mutating unary function object to a scalar.
Definition vectorize.h:73
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Code to apply arbitrary scalar functors to arrays.
+
+ + + + diff --git a/Vector_8h.html b/Vector_8h.html new file mode 100644 index 00000000..2f688158 --- /dev/null +++ b/Vector_8h.html @@ -0,0 +1,298 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/Vector.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
Vector.h File Reference
+
+
+ +

Definition for Vector. +More...

+
#include <boost/type_traits/is_arithmetic.hpp>
+#include <boost/iterator/reverse_iterator.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <iostream>
+#include "ndarray_fwd.h"
+#include "ndarray/types.h"
+
+

Go to the source code of this file.

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

+Classes

struct  ndarray::detail::DefaultValue< T, isArithmetic >
 
struct  ndarray::detail::DefaultValue< T, true >
 
class  ndarray::Vector< T, N >
 A fixed-size 1D array class. More...
 
struct  ndarray::Vector< T, 0 >
 PArtial specialization for zero-size vectors to avoid compiler errors on some platforms. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T , int N, int M>
Vector< T, N+M > ndarray::concatenate (Vector< T, N > const &a, Vector< T, M > const &b)
 Concatenate two Vectors into a single long Vector.
 
+template<typename T , int N, typename U >
boost::enable_if< boost::is_convertible< U, T >, Vector< T, N+1 > >::type ndarray::concatenate (Vector< T, N > const &a, U b)
 Return a new Vector with the given scalar appended to the original.
 
+template<typename T , int N, typename U >
boost::enable_if< boost::is_convertible< U, T >, Vector< T, N+1 > >::type ndarray::concatenate (U a, Vector< T, N > const &b)
 Return a new Vector with the given scalar prepended to the original.
 
+template<typename T , int N>
Vector< T, N > ndarray::operator~ (Vector< T, N > const &vector)
 Unary bitwise NOT for Vector.
 
+template<typename T , int N>
Vector< T, N > ndarray::operator! (Vector< T, N > const &vector)
 Unary negation for Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator+ (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector + Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator+ (Vector< T, N > const &a, U b)
 Operator overload for Vector + Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator+ (U a, Vector< T, N > const &b)
 Operator overload for Scalar + Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator- (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector - Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator- (Vector< T, N > const &a, U b)
 Operator overload for Vector - Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator- (U a, Vector< T, N > const &b)
 Operator overload for Scalar - Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator* (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector * Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator* (Vector< T, N > const &a, U b)
 Operator overload for Vector * Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator* (U a, Vector< T, N > const &b)
 Operator overload for Scalar * Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator/ (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector / Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator/ (Vector< T, N > const &a, U b)
 Operator overload for Vector / Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator/ (U a, Vector< T, N > const &b)
 Operator overload for Scalar / Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator% (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector % Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator% (Vector< T, N > const &a, U b)
 Operator overload for Vector % Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator% (U a, Vector< T, N > const &b)
 Operator overload for Scalar % Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator& (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector & Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator& (Vector< T, N > const &a, U b)
 Operator overload for Vector & Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator& (U a, Vector< T, N > const &b)
 Operator overload for Scalar & Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator^ (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector ^ Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator^ (Vector< T, N > const &a, U b)
 Operator overload for Vector ^ Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator^ (U a, Vector< T, N > const &b)
 Operator overload for Scalar ^ Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator| (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector | Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator| (Vector< T, N > const &a, U b)
 Operator overload for Vector | Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator| (U a, Vector< T, N > const &b)
 Operator overload for Scalar | Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator<< (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector << Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator<< (Vector< T, N > const &a, U b)
 Operator overload for Vector << Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator<< (U a, Vector< T, N > const &b)
 Operator overload for Scalar << Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator>> (Vector< T, N > const &a, Vector< U, N > const &b)
 Operator overload for Vector >> Vector.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator>> (Vector< T, N > const &a, U b)
 Operator overload for Vector >> Scalar.
 
+template<typename T , typename U , int N>
Vector< typename Promote< T, U >::Type, N > ndarray::operator>> (U a, Vector< T, N > const &b)
 Operator overload for Scalar >> Vector.
 
+

Detailed Description

+

Definition for Vector.

+
+ + + + diff --git a/Vector_8h_source.html b/Vector_8h_source.html new file mode 100644 index 00000000..53c2f5f0 --- /dev/null +++ b/Vector_8h_source.html @@ -0,0 +1,832 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/Vector.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
Vector.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11
+
12#ifndef NDARRAY_Vector_h_INCLUDED
+
13#define NDARRAY_Vector_h_INCLUDED
+
14
+
16
+
17#include <boost/type_traits/is_arithmetic.hpp>
+
18#include <boost/iterator/reverse_iterator.hpp>
+
19#include <boost/utility/enable_if.hpp>
+
20#include <boost/mpl/int.hpp>
+
21#include <boost/preprocessor/repetition/repeat.hpp>
+
22#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
23#include <boost/preprocessor/repetition/enum.hpp>
+
24
+
25#include <iostream>
+
26
+
27#include "ndarray_fwd.h"
+
28#include "ndarray/types.h"
+
29
+
31#define NDARRAY_MAKE_VECTOR_MAX 8
+
32
+
33#define NDARRAY_MAKE_VECTOR_ARG_SPEC(Z,I,DATA) T v ## I
+
34#define NDARRAY_MAKE_VECTOR_SET_SPEC(Z,I,DATA) r[I] = v ## I;
+
35
+
36#define NDARRAY_MAKE_VECTOR_SPEC(Z,N,DATA) \
+
37 template <typename T> \
+
38 inline Vector<T,N> makeVector( \
+
39 BOOST_PP_ENUM(N,NDARRAY_MAKE_VECTOR_ARG_SPEC,unused) \
+
40 ) { \
+
41 Vector<T,N> r; \
+
42 BOOST_PP_REPEAT(N,NDARRAY_MAKE_VECTOR_SET_SPEC,unused) \
+
43 return r; \
+
44 }
+
45
+
47
+
48namespace ndarray {
+
49
+
50namespace detail {
+
51
+
52template <typename T, bool isArithmetic=boost::is_arithmetic<T>::value>
+ +
54 static T get() { return T(); }
+
55};
+
56
+
57template <typename T>
+
58struct DefaultValue<T,true> {
+
59 static T get() { return T(0); }
+
60};
+
61
+
62} // namespace detail
+
63
+
66
+
78template <
+
79 typename T,
+
80 int N
+
81 >
+
82struct Vector {
+
83
+
84 typedef T Element;
+
85 typedef T Value;
+
86 typedef T & Reference;
+
87 typedef T const & ConstReference;
+
88 typedef T * Iterator;
+
89 typedef T const * ConstIterator;
+
90
+
91 typedef Value value_type;
+
92 typedef Iterator iterator;
+
93 typedef ConstIterator const_iterator;
+
94 typedef Reference reference;
+
95 typedef ConstReference const_reference;
+
96 typedef boost::reverse_iterator<T*> reverse_iterator;
+
97 typedef boost::reverse_iterator<const T*> const_reverse_iterator;
+
98 typedef T * pointer;
+
99 typedef int difference_type;
+
100 typedef int size_type;
+
101
+
102
+
103 typedef boost::mpl::int_<N> ND;
+
105 size_type size() const { return N; }
+
107 size_type max_size() const { return N; }
+
109 bool empty() const { return N==0; }
+
111 iterator begin() { return elems; }
+
113 const_iterator begin() const { return elems; }
+
115 iterator end() { return elems+N; }
+
117 const_iterator end() const { return elems+N; }
+
119 reverse_iterator rbegin() { return reverse_iterator(end()); }
+
121 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
+
123 reverse_iterator rend() { return reverse_iterator(begin()); }
+
125 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
+
126
+
128 reference front() { return *elems; }
+
130 reference back() { return *(elems+N-1); }
+
132 const_reference front() const { return *elems; }
+
134 const_reference back() const { return *(elems+N-1); }
+
135
+
137 reference operator[](int i) { return elems[i]; }
+
139 const_reference operator[](int i) const { return elems[i]; }
+
140
+
142 template <int Start, int Stop>
+
143 Vector<T,Stop-Start> getRange() const {
+
144 Vector<T,Stop-Start> r;
+
145 std::copy(begin() + Start, begin()+Stop, r.begin());
+
146 return r;
+
147 }
+
148
+
150 template <int M> Vector<T,M> first() const {
+
151 Vector<T,M> r;
+
152 std::copy(begin(), begin() + M, r.begin());
+
153 return r;
+
154 }
+
155
+
157 template <int M> Vector<T,M> last() const {
+
158 Vector<T,M> r;
+
159 std::copy(begin() + (N - M), begin() + N, r.begin());
+
160 return r;
+
161 }
+
162
+
164 friend std::ostream& operator<<(std::ostream& os, Vector<T,N> const & obj) {
+
165 os << "(";
+
166 std::copy(obj.begin(), obj.end(), std::ostream_iterator<T>(os,","));
+
167 return os << ")";
+
168 }
+
169
+
175 Vector() { this->
+
176 #ifndef _MSC_VER
+
177 template
+
178 #endif
+ +
180
+
182 explicit Vector(T scalar) {
+
183 this->operator=(scalar);
+
184 }
+
185
+
187 template <typename U>
+
188 Vector(Vector<U,N> const & other) {
+
189 this->
+
190 #ifndef _MSC_VER
+
191 template
+
192 #endif
+
193 operator=(other);
+
194 }
+
195
+
197 bool operator==(Vector const & other) const {
+
198 return std::equal(begin(), end(), other.begin());
+
199 }
+
200
+
202 bool operator!=(Vector const & other) const {
+
203 return !(*this == other);
+
204 }
+
205
+
207 T sum() const {
+
208 T r = 0;
+
209 for (ConstIterator i = begin(); i != end(); ++i) r += (*i);
+
210 return r;
+
211 }
+
212
+
214 T product() const {
+
215 T r = 1;
+
216 for (ConstIterator i = begin(); i != end(); ++i) r *= (*i);
+
217 return r;
+
218 }
+
219
+
221 Vector reverse() const {
+
222 Vector r;
+
223 std::copy(begin(), end(), r.rbegin());
+
224 return r;
+
225 }
+
226
+
228 template <typename U>
+ +
230 Vector<U,N> r;
+
231 for (int i = 0; i < N; ++i) {
+
232 r[i] = static_cast<U>((*this)[i]);
+
233 }
+
234 return r;
+
235 }
+
236
+
237
+
239 template <typename U>
+
240 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
241 operator = (Vector<U,N> const & other) {
+
242 typename Vector<U,N>::ConstIterator j = other.begin();
+
243 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) = (*j);
+
244 return *this;
+
245 }
+
247 template <typename U>
+
248 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
249 operator = (U scalar) {
+
250 for (Iterator i = begin(); i != end(); ++i) (*i) = scalar;
+
251 return *this;
+
252 }
+
253
+
255 template <typename U>
+
256 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
257 operator += (Vector<U,N> const & other) {
+
258 typename Vector<U,N>::ConstIterator j = other.begin();
+
259 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) += (*j);
+
260 return *this;
+
261 }
+
263 template <typename U>
+
264 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
265 operator += (U scalar) {
+
266 for (Iterator i = begin(); i != end(); ++i) (*i) += scalar;
+
267 return *this;
+
268 }
+
269
+
271 template <typename U>
+
272 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
273 operator -= (Vector<U,N> const & other) {
+
274 typename Vector<U,N>::ConstIterator j = other.begin();
+
275 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) -= (*j);
+
276 return *this;
+
277 }
+
279 template <typename U>
+
280 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
281 operator -= (U scalar) {
+
282 for (Iterator i = begin(); i != end(); ++i) (*i) -= scalar;
+
283 return *this;
+
284 }
+
285
+
287 template <typename U>
+
288 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
289 operator *= (Vector<U,N> const & other) {
+
290 typename Vector<U,N>::ConstIterator j = other.begin();
+
291 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) *= (*j);
+
292 return *this;
+
293 }
+
295 template <typename U>
+
296 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
297 operator *= (U scalar) {
+
298 for (Iterator i = begin(); i != end(); ++i) (*i) *= scalar;
+
299 return *this;
+
300 }
+
301
+
303 template <typename U>
+
304 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
305 operator /= (Vector<U,N> const & other) {
+
306 typename Vector<U,N>::ConstIterator j = other.begin();
+
307 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) /= (*j);
+
308 return *this;
+
309 }
+
311 template <typename U>
+
312 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
313 operator /= (U scalar) {
+
314 for (Iterator i = begin(); i != end(); ++i) (*i) /= scalar;
+
315 return *this;
+
316 }
+
317
+
319 template <typename U>
+
320 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
321 operator %= (Vector<U,N> const & other) {
+
322 typename Vector<U,N>::ConstIterator j = other.begin();
+
323 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) %= (*j);
+
324 return *this;
+
325 }
+
327 template <typename U>
+
328 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
329 operator %= (U scalar) {
+
330 for (Iterator i = begin(); i != end(); ++i) (*i) %= scalar;
+
331 return *this;
+
332 }
+
333
+
335 template <typename U>
+
336 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
337 operator &= (Vector<U,N> const & other) {
+
338 typename Vector<U,N>::ConstIterator j = other.begin();
+
339 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) &= (*j);
+
340 return *this;
+
341 }
+
343 template <typename U>
+
344 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
345 operator &= (U scalar) {
+
346 for (Iterator i = begin(); i != end(); ++i) (*i) &= scalar;
+
347 return *this;
+
348 }
+
349
+
351 template <typename U>
+
352 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
353 operator ^= (Vector<U,N> const & other) {
+
354 typename Vector<U,N>::ConstIterator j = other.begin();
+
355 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) ^= (*j);
+
356 return *this;
+
357 }
+
359 template <typename U>
+
360 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
361 operator ^= (U scalar) {
+
362 for (Iterator i = begin(); i != end(); ++i) (*i) ^= scalar;
+
363 return *this;
+
364 }
+
365
+
367 template <typename U>
+
368 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
369 operator |= (Vector<U,N> const & other) {
+
370 typename Vector<U,N>::ConstIterator j = other.begin();
+
371 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) |= (*j);
+
372 return *this;
+
373 }
+
375 template <typename U>
+
376 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
377 operator |= (U scalar) {
+
378 for (Iterator i = begin(); i != end(); ++i) (*i) |= scalar;
+
379 return *this;
+
380 }
+
381
+
383 template <typename U>
+
384 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
385 operator <<= (Vector<U,N> const & other) {
+
386 typename Vector<U,N>::ConstIterator j = other.begin();
+
387 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) <<= (*j);
+
388 return *this;
+
389 }
+
391 template <typename U>
+
392 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
393 operator <<= (U scalar) {
+
394 for (Iterator i = begin(); i != end(); ++i) (*i) <<= scalar;
+
395 return *this;
+
396 }
+
397
+
399 template <typename U>
+
400 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
401 operator >>= (Vector<U,N> const & other) {
+
402 typename Vector<U,N>::ConstIterator j = other.begin();
+
403 for (Iterator i = begin(); i != end(); ++i, ++j) (*i) >>= (*j);
+
404 return *this;
+
405 }
+
407 template <typename U>
+
408 typename boost::enable_if<boost::is_convertible<U,T>,Vector&>::type
+
409 operator >>= (U scalar) {
+
410 for (Iterator i = begin(); i != end(); ++i) (*i) >>= scalar;
+
411 return *this;
+
412 }
+
413
+
414 T elems[N];
+
415};
+
416
+
418template <typename T>
+
419struct Vector<T,0> {
+
420
+
421 typedef T Element;
+
422 typedef T Value;
+
423 typedef T & Reference;
+
424 typedef T const & ConstReference;
+
425 typedef T * Iterator;
+
426 typedef T const * ConstIterator;
+
427
+
428 typedef Value value_type;
+
429 typedef Iterator iterator;
+
430 typedef ConstIterator const_iterator;
+
431 typedef Reference reference;
+
432 typedef ConstReference const_reference;
+
433 typedef boost::reverse_iterator<T*> reverse_iterator;
+
434 typedef boost::reverse_iterator<const T*> const_reverse_iterator;
+
435 typedef T * pointer;
+
436 typedef int difference_type;
+
437 typedef int size_type;
+
438
+
439
+
440 typedef boost::mpl::int_<0> ND;
+
441
+
442 size_type size() const { return 0; }
+
443 size_type max_size() const { return 0; }
+
444 bool empty() const { return true; }
+
446 iterator begin() { return 0; }
+
448 const_iterator begin() const { return 0; }
+
450 iterator end() { return 0; }
+
452 const_iterator end() const { return 0; }
+
454 reverse_iterator rbegin() { return reverse_iterator(); }
+
456 const_reverse_iterator rbegin() const { return const_reverse_iterator(); }
+
458 reverse_iterator rend() { return reverse_iterator(); }
+
460 const_reverse_iterator rend() const { return const_reverse_iterator(); }
+
461
+
463 reference front() { NDARRAY_ASSERT(false); return 0; }
+
465 reference back() { return NDARRAY_ASSERT(false); return 0; }
+
467 const_reference front() const { NDARRAY_ASSERT(false); return 0; }
+
469 const_reference back() const { NDARRAY_ASSERT(false); return 0; }
+
470
+
472 reference operator[](int i) { NDARRAY_ASSERT(false); return 0; }
+
474 const_reference operator[](int i) const { NDARRAY_ASSERT(false); return 0; }
+
475
+
477 template <int Start, int Stop>
+
478 Vector<T,Stop-Start> getRange() const {
+
479 return Vector<T,Stop-Start>();
+
480 }
+
481
+
483 template <int M> Vector<T,M> first() const {
+
484 return Vector<T,M>();
+
485 }
+
486
+
488 template <int M> Vector<T,M> last() const {
+
489 return Vector<T,M>();
+
490 }
+
491
+
493 friend std::ostream& operator<<(std::ostream& os, Vector<T,0> const & obj) {
+
494 return os << "()";
+
495 }
+
496
+ +
503
+
505 explicit Vector(T scalar) {}
+
506
+
508 template <typename U>
+
509 Vector(Vector<U,0> const & other) {}
+
510
+
512 bool operator==(Vector const & other) const { return true; }
+
513
+
515 bool operator!=(Vector const & other) const { return false; }
+
516
+
518 T sum() const { return 0; }
+
519
+
521 T product() const { return 1; }
+
522
+
524 Vector reverse() const { return Vector(); }
+
525
+
527 template <typename U>
+
528 Vector<U,0> cast() const { return Vector<U,0>(); }
+
529
+
530};
+
531
+
532
+
534template <typename T, int N, int M>
+
535inline Vector<T,N+M> concatenate(Vector<T,N> const & a, Vector<T,M> const & b) {
+ +
537 std::copy(a.begin(),a.end(),r.begin());
+
538 std::copy(b.begin(),b.end(),r.begin()+N);
+
539 return r;
+
540}
+
541
+
543template <typename T, int N, typename U>
+
544inline typename boost::enable_if<boost::is_convertible<U,T>,Vector<T,N+1> >::type
+
545concatenate(Vector<T,N> const & a, U b) {
+ +
547 std::copy(a.begin(),a.end(),r.begin());
+
548 r[N] = b;
+
549 return r;
+
550}
+
551
+
553template <typename T, int N, typename U>
+
554inline typename boost::enable_if<boost::is_convertible<U,T>,Vector<T,N+1> >::type
+
555concatenate(U a, Vector<T,N> const & b) {
+ +
557 r[0] = a;
+
558 std::copy(b.begin(),b.end(),r.begin()+1);
+
559 return r;
+
560}
+
561
+
562#ifndef DOXYGEN
+
563BOOST_PP_REPEAT_FROM_TO(1, NDARRAY_MAKE_VECTOR_MAX, NDARRAY_MAKE_VECTOR_SPEC, unused)
+
564#else
+
570template <typename T, int N>
+
571Vector<T,N> makeVector(T v1, T v2, ..., T vN);
+
572#endif
+
573
+
575template <typename T, int N>
+
576inline Vector<T,N> operator~(Vector<T,N> const & vector) {
+
577 Vector<T,N> r(vector);
+
578 for (typename Vector<T,N>::Iterator i = r.begin(); i != r.end(); ++i) (*i) = ~(*i);
+
579 return r;
+
580}
+
581
+
583template <typename T, int N>
+
584inline Vector<T,N> operator!(Vector<T,N> const & vector) {
+
585 Vector<T,N> r(vector);
+
586 for (typename Vector<T,N>::Iterator i = r.begin(); i != r.end(); ++i) (*i) = !(*i);
+
587 return r;
+
588}
+
589
+
590
+
592 template <typename T, typename U, int N>
+
593 Vector<typename Promote<T,U>::Type,N>
+
594 operator +(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
596 return r += b;
+
597 }
+
599 template <typename T, typename U, int N>
+
600 Vector<typename Promote<T,U>::Type,N>
+
601 operator +(Vector<T,N> const & a, U b) {
+ +
603 return r += b;
+
604 }
+
606 template <typename T, typename U, int N>
+
607 Vector<typename Promote<T,U>::Type,N>
+
608 operator +(U a, Vector<T,N> const & b) {
+ +
610 return r += b;
+
611 }
+
612
+
614 template <typename T, typename U, int N>
+
615 Vector<typename Promote<T,U>::Type,N>
+
616 operator -(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
618 return r -= b;
+
619 }
+
621 template <typename T, typename U, int N>
+
622 Vector<typename Promote<T,U>::Type,N>
+
623 operator -(Vector<T,N> const & a, U b) {
+ +
625 return r -= b;
+
626 }
+
628 template <typename T, typename U, int N>
+
629 Vector<typename Promote<T,U>::Type,N>
+
630 operator -(U a, Vector<T,N> const & b) {
+ +
632 return r -= b;
+
633 }
+
634
+
636 template <typename T, typename U, int N>
+
637 Vector<typename Promote<T,U>::Type,N>
+
638 operator *(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
640 return r *= b;
+
641 }
+
643 template <typename T, typename U, int N>
+
644 Vector<typename Promote<T,U>::Type,N>
+
645 operator *(Vector<T,N> const & a, U b) {
+ +
647 return r *= b;
+
648 }
+
650 template <typename T, typename U, int N>
+
651 Vector<typename Promote<T,U>::Type,N>
+
652 operator *(U a, Vector<T,N> const & b) {
+ +
654 return r *= b;
+
655 }
+
656
+
658 template <typename T, typename U, int N>
+
659 Vector<typename Promote<T,U>::Type,N>
+
660 operator /(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
662 return r /= b;
+
663 }
+
665 template <typename T, typename U, int N>
+
666 Vector<typename Promote<T,U>::Type,N>
+
667 operator /(Vector<T,N> const & a, U b) {
+ +
669 return r /= b;
+
670 }
+
672 template <typename T, typename U, int N>
+
673 Vector<typename Promote<T,U>::Type,N>
+
674 operator /(U a, Vector<T,N> const & b) {
+ +
676 return r /= b;
+
677 }
+
678
+
680 template <typename T, typename U, int N>
+
681 Vector<typename Promote<T,U>::Type,N>
+
682 operator %(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
684 return r %= b;
+
685 }
+
687 template <typename T, typename U, int N>
+
688 Vector<typename Promote<T,U>::Type,N>
+
689 operator %(Vector<T,N> const & a, U b) {
+ +
691 return r %= b;
+
692 }
+
694 template <typename T, typename U, int N>
+
695 Vector<typename Promote<T,U>::Type,N>
+
696 operator %(U a, Vector<T,N> const & b) {
+ +
698 return r %= b;
+
699 }
+
700
+
702 template <typename T, typename U, int N>
+
703 Vector<typename Promote<T,U>::Type,N>
+
704 operator &(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
706 return r &= b;
+
707 }
+
709 template <typename T, typename U, int N>
+
710 Vector<typename Promote<T,U>::Type,N>
+
711 operator &(Vector<T,N> const & a, U b) {
+ +
713 return r &= b;
+
714 }
+
716 template <typename T, typename U, int N>
+
717 Vector<typename Promote<T,U>::Type,N>
+
718 operator &(U a, Vector<T,N> const & b) {
+ +
720 return r &= b;
+
721 }
+
722
+
724 template <typename T, typename U, int N>
+
725 Vector<typename Promote<T,U>::Type,N>
+
726 operator ^(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
728 return r ^= b;
+
729 }
+
731 template <typename T, typename U, int N>
+
732 Vector<typename Promote<T,U>::Type,N>
+
733 operator ^(Vector<T,N> const & a, U b) {
+ +
735 return r ^= b;
+
736 }
+
738 template <typename T, typename U, int N>
+
739 Vector<typename Promote<T,U>::Type,N>
+
740 operator ^(U a, Vector<T,N> const & b) {
+ +
742 return r ^= b;
+
743 }
+
744
+
746 template <typename T, typename U, int N>
+
747 Vector<typename Promote<T,U>::Type,N>
+
748 operator |(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
750 return r |= b;
+
751 }
+
753 template <typename T, typename U, int N>
+
754 Vector<typename Promote<T,U>::Type,N>
+
755 operator |(Vector<T,N> const & a, U b) {
+ +
757 return r |= b;
+
758 }
+
760 template <typename T, typename U, int N>
+
761 Vector<typename Promote<T,U>::Type,N>
+
762 operator |(U a, Vector<T,N> const & b) {
+ +
764 return r |= b;
+
765 }
+
766
+
768 template <typename T, typename U, int N>
+
769 Vector<typename Promote<T,U>::Type,N>
+
770 operator <<(Vector<T,N> const & a, Vector<U,N> const & b) {
+
771 Vector<typename Promote<T,U>::Type,N> r(a);
+
772 return r <<= b;
+
773 }
+
775 template <typename T, typename U, int N>
+
776 Vector<typename Promote<T,U>::Type,N>
+
777 operator <<(Vector<T,N> const & a, U b) {
+
778 Vector<typename Promote<T,U>::Type,N> r(a);
+
779 return r <<= b;
+
780 }
+
782 template <typename T, typename U, int N>
+
783 Vector<typename Promote<T,U>::Type,N>
+
784 operator <<(U a, Vector<T,N> const & b) {
+
785 Vector<typename Promote<T,U>::Type,N> r(a);
+
786 return r <<= b;
+
787 }
+
788
+
790 template <typename T, typename U, int N>
+
791 Vector<typename Promote<T,U>::Type,N>
+
792 operator >>(Vector<T,N> const & a, Vector<U,N> const & b) {
+ +
794 return r >>= b;
+
795 }
+
797 template <typename T, typename U, int N>
+
798 Vector<typename Promote<T,U>::Type,N>
+
799 operator >>(Vector<T,N> const & a, U b) {
+ +
801 return r >>= b;
+
802 }
+
804 template <typename T, typename U, int N>
+
805 Vector<typename Promote<T,U>::Type,N>
+
806 operator >>(U a, Vector<T,N> const & b) {
+ +
808 return r >>= b;
+
809 }
+
810
+
812
+
813} // namespace ndarray
+
814
+
815#endif // !NDARRAY_Vector_h_INCLUDED
+
Vector< T, N > operator!(Vector< T, N > const &vector)
Unary negation for Vector.
Definition Vector.h:584
+
Vector< T, N+M > concatenate(Vector< T, N > const &a, Vector< T, M > const &b)
Concatenate two Vectors into a single long Vector.
Definition Vector.h:535
+
Forward declarations and default template parameters for ndarray.
+
size_type max_size() const
Return the size of the Vector.
Definition Vector.h:443
+
reverse_iterator rbegin()
Return a reverse_iterator to the beginning of the reversed Vector.
Definition Vector.h:454
+
Vector< U, 0 > cast() const
Cast the vector element-wise to another type.
Definition Vector.h:528
+
Vector reverse() const
Return a Vector with the elements reversed.
Definition Vector.h:524
+
const_reverse_iterator rbegin() const
Return a const_reverse_iterator to the beginning of the reversed Vector.
Definition Vector.h:456
+
const_reverse_iterator rend() const
Return a const_reverse_iterator to the end of the reversed Vector.
Definition Vector.h:460
+
Vector< T, M > first() const
Create a new Vector from the first M elements of this.
Definition Vector.h:483
+
bool empty() const
Return true if size() == 0.
Definition Vector.h:444
+
reference operator[](int i)
Return a reference to the element with the given index.
Definition Vector.h:472
+
Vector()
Default constructor.
Definition Vector.h:502
+
size_type size() const
Return the size of the Vector.
Definition Vector.h:442
+
iterator begin()
Return an iterator to the beginning of the Vector.
Definition Vector.h:446
+
T product() const
Return the product of all elements.
Definition Vector.h:521
+
friend std::ostream & operator<<(std::ostream &os, Vector< T, 0 > const &obj)
Stream output.
Definition Vector.h:493
+
const_reference back() const
Return a const_reference to the last element.
Definition Vector.h:469
+
const_reference operator[](int i) const
Return a const_reference to the element with the given index.
Definition Vector.h:474
+
reference front()
Return a reference to the first element.
Definition Vector.h:463
+
T sum() const
Return the sum of all elements.
Definition Vector.h:518
+
const_iterator end() const
Return a const_iterator to the end of the Vector.
Definition Vector.h:452
+
Vector(T scalar)
Construct with copies of a scalar.
Definition Vector.h:505
+
reverse_iterator rend()
Return a reverse_iterator to the end of the reversed Vector.
Definition Vector.h:458
+
Vector(Vector< U, 0 > const &other)
Converting copy constructor.
Definition Vector.h:509
+
Vector< T, M > last() const
Create a new Vector from the last M elements of this.
Definition Vector.h:488
+
const_reference front() const
Return a const_reference to the first element.
Definition Vector.h:467
+
bool operator!=(Vector const &other) const
Return false if any elements of other are not equal to the elements of this.
Definition Vector.h:515
+
const_iterator begin() const
Return a const_iterator to the beginning of the Vector.
Definition Vector.h:448
+
Vector< T, Stop-Start > getRange() const
Create a new Vector that is a subset of this.
Definition Vector.h:478
+
reference back()
Return a reference to the last element.
Definition Vector.h:465
+
iterator end()
Return an iterator to the end of the Vector.
Definition Vector.h:450
+
bool operator==(Vector const &other) const
Return true if elements of other are equal to the elements of this.
Definition Vector.h:512
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Vector(T scalar)
Construct with copies of a scalar.
Definition Vector.h:182
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator+=(Vector< U, N > const &other)
Augmented += assignment from another vector.
Definition Vector.h:257
+
Vector< T, M > first() const
Create a new Vector from the first M elements of this.
Definition Vector.h:150
+
reverse_iterator rend()
Return a reverse_iterator to the end of the reversed Vector.
Definition Vector.h:123
+
friend std::ostream & operator<<(std::ostream &os, Vector< T, N > const &obj)
Stream output.
Definition Vector.h:164
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator/=(Vector< U, N > const &other)
Augmented /= assignment from another vector.
Definition Vector.h:305
+
Vector()
Default constructor.
Definition Vector.h:175
+
T product() const
Return the product of all elements.
Definition Vector.h:214
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator|=(Vector< U, N > const &other)
Augmented |= assignment from another vector.
Definition Vector.h:369
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator%=(Vector< U, N > const &other)
Augmented %= assignment from another vector.
Definition Vector.h:321
+
T sum() const
Return the sum of all elements.
Definition Vector.h:207
+
iterator begin()
Return an iterator to the beginning of the Vector.
Definition Vector.h:111
+
const_reverse_iterator rbegin() const
Return a const_reverse_iterator to the beginning of the reversed Vector.
Definition Vector.h:121
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator*=(Vector< U, N > const &other)
Augmented *= assignment from another vector.
Definition Vector.h:289
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator&=(Vector< U, N > const &other)
Augmented &= assignment from another vector.
Definition Vector.h:337
+
Vector< T, Stop-Start > getRange() const
Create a new Vector that is a subset of this.
Definition Vector.h:143
+
const_reference operator[](int i) const
Return a const_reference to the element with the given index.
Definition Vector.h:139
+
Vector(Vector< U, N > const &other)
Converting copy constructor.
Definition Vector.h:188
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator<<=(Vector< U, N > const &other)
Augmented <<= assignment from another vector.
Definition Vector.h:385
+
bool operator!=(Vector const &other) const
Return false if any elements of other are not equal to the elements of this.
Definition Vector.h:202
+
reference operator[](int i)
Return a reference to the element with the given index.
Definition Vector.h:137
+
const_iterator begin() const
Return a const_iterator to the beginning of the Vector.
Definition Vector.h:113
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator>>=(Vector< U, N > const &other)
Augmented >>= assignment from another vector.
Definition Vector.h:401
+
Vector reverse() const
Return a Vector with the elements reversed.
Definition Vector.h:221
+
Vector< T, M > last() const
Create a new Vector from the last M elements of this.
Definition Vector.h:157
+
const_reference back() const
Return a const_reference to the last element.
Definition Vector.h:134
+
size_type size() const
Return the size of the Vector.
Definition Vector.h:105
+
const_iterator end() const
Return a const_iterator to the end of the Vector.
Definition Vector.h:117
+
size_type max_size() const
Return the size of the Vector.
Definition Vector.h:107
+
const_reverse_iterator rend() const
Return a const_reverse_iterator to the end of the reversed Vector.
Definition Vector.h:125
+
reverse_iterator rbegin()
Return a reverse_iterator to the beginning of the reversed Vector.
Definition Vector.h:119
+
reference back()
Return a reference to the last element.
Definition Vector.h:130
+
bool operator==(Vector const &other) const
Return true if elements of other are equal to the elements of this.
Definition Vector.h:197
+
iterator end()
Return an iterator to the end of the Vector.
Definition Vector.h:115
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator=(Vector< U, N > const &other)
Augmented = assignment from another vector.
Definition Vector.h:241
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator^=(Vector< U, N > const &other)
Augmented ^= assignment from another vector.
Definition Vector.h:353
+
Vector< U, N > cast() const
Cast the vector element-wise to another type.
Definition Vector.h:229
+
boost::enable_if< boost::is_convertible< U, T >, Vector & >::type operator-=(Vector< U, N > const &other)
Augmented -= assignment from another vector.
Definition Vector.h:273
+
reference front()
Return a reference to the first element.
Definition Vector.h:128
+
const_reference front() const
Return a const_reference to the first element.
Definition Vector.h:132
+
Definition Vector.h:53
+
Numeric type traits.
+
+ + + + diff --git a/ViewBuilder_8h.html b/ViewBuilder_8h.html new file mode 100644 index 00000000..d32f2c24 --- /dev/null +++ b/ViewBuilder_8h.html @@ -0,0 +1,171 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/ViewBuilder.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ViewBuilder.h File Reference
+
+
+ +

Implementation of arbitrary views into arrays. +More...

+
#include "ndarray/views.h"
+#include <boost/fusion/include/push_back.hpp>
+#include <boost/fusion/include/pop_back.hpp>
+#include <boost/fusion/include/front.hpp>
+#include <boost/fusion/include/back.hpp>
+#include <boost/fusion/include/vector.hpp>
+#include <boost/fusion/include/reverse_view.hpp>
+#include <boost/fusion/include/mpl.hpp>
+#include <boost/fusion/include/at.hpp>
+#include <boost/fusion/include/at_c.hpp>
+#include <boost/fusion/tuple.hpp>
+#include <boost/mpl/count.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/fold.hpp>
+
+

Go to the source code of this file.

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

+Classes

struct  ndarray::detail::CoreTransformer< T, M, N >
 
struct  ndarray::detail::Dimensions< N, C, I >
 
struct  ndarray::detail::IndexTraits< ndarray::index::Slice >
 
struct  ndarray::detail::IndexTraits< ndarray::index::Slice >::Append
 
struct  ndarray::detail::IndexTraits< ndarray::index::Slice >::TransformCoreResult
 Metafunction for the result type of transform(). More...
 
struct  ndarray::detail::IndexTraits< ndarray::index::Range >
 
struct  ndarray::detail::IndexTraits< ndarray::index::Range >::Append
 
struct  ndarray::detail::IndexTraits< ndarray::index::Range >::TransformCoreResult
 Metafunction for the result type of transform(). More...
 
struct  ndarray::detail::IndexTraits< ndarray::index::Full >
 
struct  ndarray::detail::IndexTraits< ndarray::index::Full >::Append
 
struct  ndarray::detail::IndexTraits< ndarray::index::Full >::TransformCoreResult
 Metafunction for the result type of transform(). More...
 
struct  ndarray::detail::IndexTraits< ndarray::index::Scalar >
 
struct  ndarray::detail::IndexTraits< ndarray::index::Scalar >::Append
 
struct  ndarray::detail::IndexTraits< ndarray::index::Scalar >::TransformCoreResult
 Metafunction for the result type of transform(). More...
 
struct  ndarray::detail::AppendIndex
 
struct  ndarray::detail::AppendIndex::apply< State, Index >
 
struct  ndarray::detail::ViewTraits< N, C, Seq_, false >
 
struct  ndarray::detail::ViewTraits< N, C, Seq_, true >
 
struct  ndarray::detail::ViewNormalizer< N, Seq_, IsNormalized >
 
struct  ndarray::detail::ViewNormalizer< N, Seq_, true >
 
struct  ndarray::detail::ViewBuilder< Array_, InSeq >
 
+ + + + + + + +

+Functions

+template<typename T , int M, int N, typename Index >
IndexTraits< Index >::template TransformCoreResult< T, M, N >::Type ndarray::detail::transformCore (Index const &index, CoreTransformer< T, M, N > &t)
 
+template<typename Array_ , typename Seq_ >
ViewBuilder< Array_, Seq_ >::OutputArray ndarray::detail::buildView (Array_ const &array, Seq_ const &seq)
 
+

Detailed Description

+

Implementation of arbitrary views into arrays.

+
+ + + + diff --git a/ViewBuilder_8h_source.html b/ViewBuilder_8h_source.html new file mode 100644 index 00000000..810c1c6b --- /dev/null +++ b/ViewBuilder_8h_source.html @@ -0,0 +1,399 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail/ViewBuilder.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ViewBuilder.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_DETAIL_ViewBuilder_h_INCLUDED
+
12#define NDARRAY_DETAIL_ViewBuilder_h_INCLUDED
+
13
+
18#include "ndarray/views.h"
+
19#include <boost/fusion/include/push_back.hpp>
+
20#include <boost/fusion/include/pop_back.hpp>
+
21#include <boost/fusion/include/front.hpp>
+
22#include <boost/fusion/include/back.hpp>
+
23#include <boost/fusion/include/vector.hpp>
+
24#include <boost/fusion/include/reverse_view.hpp>
+
25#include <boost/fusion/include/mpl.hpp>
+
26#include <boost/fusion/include/at.hpp>
+
27#include <boost/fusion/include/at_c.hpp>
+
28#include <boost/fusion/tuple.hpp>
+
29#include <boost/mpl/count.hpp>
+
30#include <boost/mpl/size.hpp>
+
31#include <boost/mpl/fold.hpp>
+
32
+
33namespace ndarray {
+
34namespace detail {
+
35
+
40template <typename T, int M, int N>
+ +
42 T * _data;
+
43 typename Core<M>::ConstPtr _input;
+
44 typename Core<N>::Ptr _output;
+
45
+ +
47 T * data,
+
48 typename Core<M>::ConstPtr const & input,
+
49 typename Core<N>::Ptr const & output
+
50 ) : _data(data), _input(input), _output(output) {}
+
51
+
52 template <int M1, int N1>
+ +
54 _data(other._data), _input(other._input), _output(other._output) {}
+
55};
+
56
+
57template <int N, int C, int I>
+
58struct Dimensions {
+
59 typedef boost::mpl::int_<N> ND; // Number of dimensions in output array
+
60 typedef boost::mpl::int_<C> RMC; // Number of contiguous dimensions in output array, from end.
+
61 typedef boost::mpl::int_<I> IDX; // Current dimension of input array being processed.
+
62 typedef boost::mpl::int_<N-I> N_I;
+
63};
+
64
+
65template <typename Index> struct IndexTraits;
+
66
+
67template <>
+
68struct IndexTraits<ndarray::index::Slice> {
+
69
+
70 template <typename D>
+
71 struct Append {
+
72 typedef Dimensions<
+
73 D::ND::value,
+
74 ((D::RMC::value < D::N_I::value) ? D::RMC::value : (D::N_I::value - 1)),
+
75 (D::IDX::value + 1)
+
76 > Type;
+
77 };
+
78
+
80 template <typename T, int M, int N> struct TransformCoreResult {
+
81 typedef CoreTransformer<T,M-1,N-1> Type;
+
82 };
+
83
+
85 template <typename T, int M, int N>
+
86 static CoreTransformer<T,M-1,N-1> transformCore(
+ +
88 ) {
+
89 NDARRAY_ASSERT(index.step > 0);
+
90 NDARRAY_ASSERT(index.start <= index.stop);
+
91 NDARRAY_ASSERT(index.start >= 0);
+
92 NDARRAY_ASSERT(index.stop <= t._input->getSize());
+
93 t._data += index.start * t._input->getStride();
+
94 t._output->setSize(index.computeSize());
+
95 t._output->setStride(t._input->getStride() * index.step);
+
96 return t;
+
97 }
+
98
+
99};
+
100
+
101template <>
+
102struct IndexTraits<ndarray::index::Range> {
+
103
+
104 template <typename D>
+
105 struct Append {
+
106 typedef Dimensions<
+
107 D::ND::value,
+
108 ((D::RMC::value < D::N_I::value) ? D::RMC::value : D::N_I::value),
+
109 (D::IDX::value + 1)
+
110 > Type;
+
111 };
+
112
+
114 template <typename T, int M, int N> struct TransformCoreResult {
+
115 typedef CoreTransformer<T,M-1,N-1> Type;
+
116 };
+
117
+
119 template <typename T, int M, int N>
+ + +
122 ) {
+
123 NDARRAY_ASSERT(index.start <= index.stop);
+
124 NDARRAY_ASSERT(index.start >= 0);
+
125 NDARRAY_ASSERT(index.stop <= t._input->getSize());
+
126 t._data += index.start * t._input->getStride();
+
127 t._output->setSize(index.stop - index.start);
+
128 t._output->setStride(t._input->getStride());
+
129 return t;
+
130 }
+
131};
+
132
+
133template <>
+
134struct IndexTraits<ndarray::index::Full> {
+
135
+
136 template <typename D>
+
137 struct Append {
+
138 typedef Dimensions<
+
139 D::ND::value,
+
140 D::RMC::value,
+
141 (D::IDX::value + 1)
+
142 > Type;
+
143 };
+
144
+
146 template <typename T, int M, int N> struct TransformCoreResult {
+
147 typedef CoreTransformer<T,M-1,N-1> Type;
+
148 };
+
149
+
151 template <typename T, int M, int N>
+ + +
154 ) {
+
155 t._output->setSize(t._input->getSize());
+
156 t._output->setStride(t._input->getStride());
+
157 return t;
+
158 }
+
159};
+
160
+
161template <>
+
162struct IndexTraits<ndarray::index::Scalar> {
+
163
+
164 template <typename D>
+
165 struct Append {
+
166 typedef Dimensions<
+
167 (D::ND::value - 1),
+
168 ((D::RMC::value < (D::N_I::value - 1)) ? D::RMC::value : (D::N_I::value - 1)),
+
169 D::IDX::value
+
170 > Type;
+
171 };
+
172
+
174 template <typename T, int M, int N> struct TransformCoreResult {
+
175 typedef CoreTransformer<T,M-1,N> Type;
+
176 };
+
177
+
179 template <typename T, int M, int N>
+ + +
182 ) {
+
183 NDARRAY_ASSERT(index.n >= 0);
+
184 NDARRAY_ASSERT(index.n < t._input->getSize());
+
185 t._data += index.n * t._input->getStride();
+
186 return t;
+
187 }
+
188};
+
189
+
190template <typename T, int M, int N, typename Index>
+
191typename IndexTraits<Index>::template TransformCoreResult<T,M,N>::Type
+
192transformCore(Index const & index, CoreTransformer<T,M,N> & t) {
+
193 return IndexTraits<Index>::transformCore(index, t);
+
194}
+
195
+ +
197
+
198 template <typename State, typename Index>
+
199 struct apply {
+
200 typedef typename IndexTraits<Index>::template Append<State>::Type type;
+
201 };
+
202
+
203};
+
204
+
205template <int N, int C, typename Seq_, bool isColumnMajor = (C < 0)>
+
206struct ViewTraits;
+
207
+
208template <int N, int C, typename Seq_>
+ +
210
+
211 typedef typename boost::mpl::fold< Seq_, Dimensions<N,C,0>, AppendIndex >::type Dims;
+
212
+
213 typedef typename Dims::ND ND;
+
214 typedef typename Dims::RMC RMC;
+
215
+
216};
+
217
+
218template <int N, int C, typename Seq_>
+
219struct ViewTraits<N,C,Seq_,true> {
+
220
+
221 typedef typename boost::mpl::fold<
+
222 boost::fusion::reverse_view< typename boost::fusion::result_of::as_vector<Seq_>::type >,
+
223 Dimensions<N,-C,0>, AppendIndex
+
224 >::type Dims;
+
225
+
226 typedef typename Dims::ND ND;
+
227 typedef typename boost::mpl::negate<typename Dims::RMC>::type RMC;
+
228
+
229};
+
230
+
235template <int N, typename Seq_, bool IsNormalized=(boost::mpl::template size<Seq_>::type::value==N)>
+ +
237
+
238 typedef typename boost::fusion::result_of::push_back<Seq_ const,index::Full>::type Next;
+
239
+
240 typedef typename ViewNormalizer<N,Next>::Output Output;
+
241
+
242 static Output apply(Seq_ const & input) {
+ +
244 boost::fusion::push_back(input, index::Full())
+
245 );
+
246 }
+
247};
+
248
+
249template <int N, typename Seq_>
+ +
251 typedef typename boost::fusion::result_of::as_vector<Seq_>::type Output;
+
252 static Output apply(Seq_ const & input) { return boost::fusion::as_vector(input); }
+
253};
+
254
+
259template <typename Array_, typename InSeq>
+ + +
262 typedef typename Traits::Element Element;
+
263 typedef typename Traits::ND InputND;
+
264 typedef typename Traits::RMC InputRMC;
+
265 typedef typename Traits::Core InputCore;
+
266 typedef boost::mpl::bool_<(InputRMC::value < 0)> IsColumnMajor;
+
267
+ +
269 typedef typename ViewNormalizer<InputND::value,InSeq>::Output NormSeq;
+ +
271
+
272 typedef typename OutputTraits::ND OutputND;
+
273 typedef typename OutputTraits::RMC OutputRMC;
+
274
+ + +
277
+
278 static OutputArray apply(Array_ const & array, InSeq const & seq) {
+ +
280 array.getData(),
+ +
282 OutputCore::create(array.getManager())
+
283 );
+
284 NormSeq normSeq = Normalizer::apply(seq);
+
285 std::pair<Element*,typename OutputCore::Ptr> final = process(normSeq, initial);
+
286 return ArrayAccess< OutputArray >::construct(final.first, final.second);
+
287 }
+
288
+
289 template <int M, int N>
+
290 static std::pair<Element*,typename OutputCore::Ptr>
+
291 process(NormSeq const & seq, CoreTransformer<Element,M,N> t) {
+
292 return process(seq, transformCore(boost::fusion::at_c<(InputND::value-M)>(seq), t));
+
293 }
+
294
+
295 static std::pair<Element*,typename OutputCore::Ptr>
+
296 process(NormSeq const & seq, CoreTransformer<Element,0,0> t) {
+
297 return std::make_pair(t._data, boost::static_pointer_cast<OutputCore>(t._output));
+
298 }
+
299
+
300};
+
301
+
306template <typename Array_, typename Seq_>
+ +
308buildView(Array_ const & array, Seq_ const & seq) {
+
309 return ViewBuilder<Array_,Seq_>::apply(array, seq);
+
310};
+
311
+
312} // namespace detail
+
313
+
314} // namespace ndarray
+
315
+
316#endif // !NDARRAY_DETAIL_ViewBuilder_h_INCLUDED
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
Definition ArrayAccess.h:26
+
Definition Core.h:47
+
Size getSize() const
Return the size of the Nth dimension.
Definition Core.h:88
+
boost::intrusive_ptr< Core > Ptr
intrusive_ptr to Core
Definition Core.h:51
+
boost::intrusive_ptr< Core const > ConstPtr
const intrusive_ptr to Core
Definition Core.h:52
+
Offset getStride() const
Return the stride of the Nth dimension.
Definition Core.h:91
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
Definition ViewBuilder.h:199
+
Definition ViewBuilder.h:196
+
Definition ViewBuilder.h:41
+
Definition ViewBuilder.h:58
+
static CoreTransformer< T, M-1, N-1 > transformCore(ndarray::index::Full const &, CoreTransformer< T, M, N > &t)
Apply a full dimension index.
Definition ViewBuilder.h:152
+
static CoreTransformer< T, M-1, N-1 > transformCore(ndarray::index::Range const &index, CoreTransformer< T, M, N > &t)
Apply a range index.
Definition ViewBuilder.h:120
+
static CoreTransformer< T, M-1, N > transformCore(ndarray::index::Scalar const &index, CoreTransformer< T, M, N > &t)
Apply a scalar dimension index.
Definition ViewBuilder.h:180
+
static CoreTransformer< T, M-1, N-1 > transformCore(ndarray::index::Slice const &index, CoreTransformer< T, M, N > &t)
Apply a slice index.
Definition ViewBuilder.h:86
+
Definition ViewBuilder.h:65
+
Definition ViewBuilder.h:260
+
Definition ViewBuilder.h:236
+
Definition ViewBuilder.h:206
+
Empty structure marking a view of an entire dimension.
Definition views.h:54
+
Simple structure defining a contiguous range of indices.
Definition views.h:44
+
Structure marking a single element of a dimension.
Definition views.h:59
+
Simple structure defining a noncontiguous range of indices.
Definition views.h:31
+
Public interface for arbitrary views into arrays.
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..e3293e84 --- /dev/null +++ b/annotated.html @@ -0,0 +1,200 @@ + + + + + + + +ndarray: Class List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nndarray
 Ndetail
 Nindex
 Nresult_of
 CApproximatelyEqualBinary predicate for floating point equality comparison with tolerance
 CApproximatelyEqual< std::complex< U1 >, std::complex< U2 > >Binary predicate for complex floating point equality comparison with tolerance
 CArrayA multidimensional strided array
 CArrayBaseCRTP implementation for Array and ArrayRef
 CArrayBaseNAn intermediate CRTP base class for Array and ArrayRef
 CArrayBaseN< Derived, 1 >An intermediate CRTP base class for Array and ArrayRef (specialization for 1)
 CArrayBaseN< Derived, 2 >An intermediate CRTP base class for Array and ArrayRef (specialization for 2)
 CArrayBaseN< Derived, 3 >An intermediate CRTP base class for Array and ArrayRef (specialization for 3)
 CArrayBaseN< Derived, 4 >An intermediate CRTP base class for Array and ArrayRef (specialization for 4)
 CArrayBaseN< Derived, 5 >An intermediate CRTP base class for Array and ArrayRef (specialization for 5)
 CArrayBaseN< Derived, 6 >An intermediate CRTP base class for Array and ArrayRef (specialization for 6)
 CArrayRefA proxy class for Array with deep assignment operators
 CArrayTraitsDimension-specialized traits shared by Array and ArrayRef
 CArrayTraits< T, 1, 0 >
 CArrayTraits< T, 1, 1 >
 CArrayTraits< T, 1,-1 >
 CExpressionBaseCRTP base class for all multidimensional expressions
 CExpressionTraitsTraits for expressions
 CExpressionTraits< Array< T, N, C > >
 CExpressionTraits< ArrayRef< T, N, C > >
 CExpressionTraits< detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, 1 > >
 CExpressionTraits< detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >
 CExpressionTraits< detail::CountingExpression >
 CExpressionTraits< detail::UnaryOpExpression< Operand, UnaryFunction, 1 > >
 CExpressionTraits< detail::UnaryOpExpression< Operand, UnaryFunction, N > >
 CExternalManager
 CFormatOptionsOptions for controlling stream output of ExpressionBase
 CFourierTransformA wrapper for FFTW plans for fast Fourier transforms
 CManager
 CNumericTraitsNumeric type traits
 CPromoteMetafunction to compute numeric promotions
 CPybind11Helper
 CSimpleManager
 CVectorA fixed-size 1D array class
 CVector< T, 0 >PArtial specialization for zero-size vectors to avoid compiler errors on some platforms
 CViewA template meta-sequence that defines an arbitrary view into an unspecified array
 Npybind11
 Ndetail
+
+
+ + + + diff --git a/arange_8h.html b/arange_8h.html new file mode 100644 index 00000000..37129861 --- /dev/null +++ b/arange_8h.html @@ -0,0 +1,119 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/arange.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
arange.h File Reference
+
+
+ +

Expression classes to generate regularly-spaced ranges of values. +More...

+
#include "ndarray/vectorize.h"
+#include <boost/iterator/counting_iterator.hpp>
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

struct  ndarray::ExpressionTraits< detail::CountingExpression >
 
class  ndarray::detail::CountingExpression
 
class  ndarray::detail::RangeTransformer< T >
 
+ + + + + + + +

+Functions

+detail::CountingExpression ndarray::arange (int stop)
 Create 1D Expression that contains integer values in the range [0,stop).
 
+detail::UnaryOpExpression< detail::CountingExpression, detail::RangeTransformer< int > > ndarray::arange (int start, int stop, int step=1)
 Create 1D Expression that contains integer values in the range [start,stop) with increment step.
 
+

Detailed Description

+

Expression classes to generate regularly-spaced ranges of values.

+
+ + + + diff --git a/arange_8h_source.html b/arange_8h_source.html new file mode 100644 index 00000000..e66fb691 --- /dev/null +++ b/arange_8h_source.html @@ -0,0 +1,195 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/arange.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
arange.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_arange_h_INCLUDED
+
12#define NDARRAY_arange_h_INCLUDED
+
13
+
20#include "ndarray/vectorize.h"
+
21
+
22#include <boost/iterator/counting_iterator.hpp>
+
23
+
24namespace ndarray {
+
25
+
31template <>
+
32struct ExpressionTraits<detail::CountingExpression> {
+
33 typedef int Element;
+
34 typedef boost::mpl::int_<1> ND;
+
35 typedef boost::counting_iterator<int> Iterator;
+
36 typedef int Value;
+
37 typedef int Reference;
+
38};
+
39
+
40namespace detail {
+
41
+
48class CountingExpression : public ExpressionBase<CountingExpression> {
+
49public:
+ + + + + +
55 typedef Vector<int,1> Index;
+
56
+
57 CountingExpression(int stop=0) : _stop(stop) { NDARRAY_ASSERT(stop >= 0); }
+
58
+
59 Reference operator[](int n) const {
+
60 return n;
+
61 }
+
62
+
63 Iterator begin() const {
+
64 return Iterator(0);
+
65 }
+
66
+
67 Iterator end() const {
+
68 return Iterator(_stop);
+
69 }
+
70
+
71 template <int P> int getSize() const {
+
72 BOOST_STATIC_ASSERT(P==0);
+
73 return _stop;
+
74 }
+
75
+
76 Index getShape() const {
+
77 return makeVector(_stop);
+
78 }
+
79
+
80private:
+
81 int _stop;
+
82};
+
83
+
84template <typename T>
+ +
86 T _offset;
+
87 T _scale;
+
88public:
+
89 typedef int argument_type;
+
90 typedef T result_type;
+
91
+
92 explicit RangeTransformer(T const & offset, T const & scale) : _offset(offset), _scale(scale) {}
+
93
+
94 T operator()(int n) const { return static_cast<T>(n) * _scale + _offset; }
+
95};
+
96
+
97} // namespace detail
+
98
+ +
101 return detail::CountingExpression(stop);
+
102}
+
103
+
105inline detail::UnaryOpExpression< detail::CountingExpression, detail::RangeTransformer<int> >
+
106arange(int start, int stop, int step = 1) {
+
107 NDARRAY_ASSERT(step != 0);
+
108 int size = stop - start;
+
109 if (step < -1) ++size;
+
110 if (step > 1) --size;
+
111 size /= step;
+
112 return vectorize(
+ + +
115 );
+
116}
+
117
+
118} // namespace ndarray
+
119
+
120#endif // !NDARRAY_arange_h_INCLUDED
+
detail::CountingExpression arange(int stop)
Create 1D Expression that contains integer values in the range [0,stop).
Definition arange.h:100
+
CRTP base class for all multidimensional expressions.
Definition ExpressionBase.h:40
+ +
Definition arange.h:85
+
boost::enable_if< typenameExpressionTraits< Scalar >::IsScalar, typenameUnaryFunction::result_type >::type vectorize(UnaryFunction const &functor, Scalar const &scalar)
Apply a non-mutating unary function object to a scalar.
Definition vectorize.h:73
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
A fixed-size 1D array class.
Definition Vector.h:82
+
Code to apply arbitrary scalar functors to arrays.
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 00000000..224b29aa Binary files /dev/null and b/bc_s.png differ diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 00000000..31ca888d Binary files /dev/null and b/bc_sd.png differ diff --git a/casts_8h.html b/casts_8h.html new file mode 100644 index 00000000..e00607dd --- /dev/null +++ b/casts_8h.html @@ -0,0 +1,139 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/casts.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
casts.h File Reference
+
+
+ +

Specialized casts for Array. +More...

+
#include "ndarray/Array.h"
+#include "ndarray/ArrayRef.h"
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/mpl/comparison.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  ndarray::detail::ComplexExtractor< Array_ >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T_ , typename T , int N, int C>
Array< T_, N, C > ndarray::const_array_cast (Array< T, N, C > const &array)
 
template<int C_, typename T , int N, int C>
Array< T, N, C_ > ndarray::static_dimension_cast (Array< T, N, C > const &array)
 
template<int C_, typename T , int N, int C>
Array< T, N, C_ > ndarray::dynamic_dimension_cast (Array< T, N, C > const &array)
 
+template<typename Array_ >
detail::ComplexExtractor< Array_ >::Result ndarray::getReal (Array_ const &array)
 Return an ArrayRef view into the real part of a complex array.
 
+template<typename Array_ >
detail::ComplexExtractor< Array_ >::Result ndarray::getImag (Array_ const &array)
 Return an ArrayRef view into the imaginary part of a complex array.
 
template<int Nf, typename T , int N, int C>
boost::enable_if_c<((C+Nf-N)>=1), ArrayRef< T, Nf,(C+Nf-N)> >::type ndarray::flatten (Array< T, N, C > const &input)
 Create a view into an array with trailing contiguous dimensions merged.
 
template<int Nf, typename T , int N, int C>
boost::enable_if_c<((C+Nf-N)>=1), ArrayRef< T, Nf,(C+Nf-N)> >::type ndarray::flatten (ArrayRef< T, N, C > const &input)
 Create a view into an array with trailing contiguous dimensions merged.
 
+

Detailed Description

+

Specialized casts for Array.

+
+ + + + diff --git a/casts_8h_source.html b/casts_8h_source.html new file mode 100644 index 00000000..2ffcd056 --- /dev/null +++ b/casts_8h_source.html @@ -0,0 +1,230 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/casts.h Source File + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
casts.h
+
+
+Go to the documentation of this file.
1// -*- c++ -*-
+
2/*
+
3 * Copyright (c) 2010-2012, Jim Bosch
+
4 * All rights reserved.
+
5 *
+
6 * ndarray is distributed under a simple BSD-like license;
+
7 * see the LICENSE file that should be present in the root
+
8 * of the source distribution, or alternately available at:
+
9 * https://github.com/ndarray/ndarray
+
10 */
+
11#ifndef NDARRAY_casts_h_INCLUDED
+
12#define NDARRAY_casts_h_INCLUDED
+
13
+
20#include "ndarray/Array.h"
+
21#include "ndarray/ArrayRef.h"
+
22#include <boost/type_traits/add_const.hpp>
+
23#include <boost/type_traits/remove_const.hpp>
+
24#include <boost/mpl/comparison.hpp>
+
25#include <boost/utility/enable_if.hpp>
+
26#include <boost/static_assert.hpp>
+
27
+
28namespace ndarray {
+
29namespace detail {
+
30
+
31template <typename Array_>
+ +
33 typedef typename ExpressionTraits<Array_>::Element ComplexElement;
+
34 typedef typename boost::remove_const<ComplexElement>::type ComplexValue;
+
35 typedef typename ExpressionTraits<Array_>::ND ND;
+
36 BOOST_STATIC_ASSERT( boost::is_complex<ComplexValue>::value );
+
37 typedef typename ComplexValue::value_type RealValue;
+
38 typedef typename boost::mpl::if_<
+
39 boost::is_const<ComplexElement>, RealValue const, RealValue
+
40 >::type RealElement;
+ + + +
44
+
45 static inline Result apply(Array_ const & array, Offset offset) {
+
46 return Access::construct(
+
47 reinterpret_cast<RealElement*>(array.getData()) + offset,
+
48 Access::Core::create(array.getShape(), array.getStrides() * 2, array.getManager())
+
49 );
+
50 }
+
51};
+
52
+
53} // namespace detail
+
54
+
57
+
62template <typename T_, typename T, int N, int C>
+ + +
65 return detail::ArrayAccess< Array<T_,N,C> >::construct(
+
66 const_cast<T_*>(array.getData()),
+
67 detail::ArrayAccess< Array<T,N,C> >::getCore(array)
+
68 );
+
69}
+
70
+
75template <int C_, typename T, int N, int C>
+
76Array<T,N,C_>
+ +
78 return detail::ArrayAccess< Array<T,N,C_> >::construct(
+
79 array.getData(),
+
80 detail::ArrayAccess< Array<T,N,C> >::getCore(array)
+
81 );
+
82}
+
83
+
91template <int C_, typename T, int N, int C>
+
92Array<T,N,C_>
+ +
94 Vector<Size,N> shape = array.getShape();
+
95 Vector<Offset,N> strides = array.getStrides();
+
96 if (C_ >= 0) {
+
97 Offset n = 1;
+
98 for (int i=1; i <= C_; ++i) {
+
99 if (strides[N-i] != n) return Array<T,N,C_>();
+
100 n *= shape[N-i];
+
101 }
+
102 } else {
+
103 Offset n = 1;
+
104 for (int i=0; i < -C_; ++i) {
+
105 if (strides[i] != n) return Array<T,N,C_>();
+
106 n *= strides[i];
+
107 }
+
108 }
+
109 return static_dimension_cast<C_>(array);
+
110}
+
111
+
115template <typename Array_>
+
116typename detail::ComplexExtractor<Array_>::Result
+
117getReal(Array_ const & array) {
+ +
119}
+
120
+
124template <typename Array_>
+
125typename detail::ComplexExtractor<Array_>::Result
+
126getImag(Array_ const & array) {
+ +
128}
+
129
+
136template <int Nf, typename T, int N, int C>
+
137inline typename boost::enable_if_c< ((C+Nf-N)>=1), ArrayRef<T,Nf,(C+Nf-N)> >::type
+
138flatten(Array<T,N,C> const & input) {
+
139 typedef detail::ArrayAccess< ArrayRef<T,Nf,(C+Nf-N)> > Access;
+
140 typedef typename Access::Core Core;
+
141 BOOST_STATIC_ASSERT(C+Nf-N >= 1);
+
142 Vector<Size,N> oldShape = input.getShape();
+
143 Vector<Size,Nf> newShape = oldShape.template first<Nf>();
+
144 for (int n=Nf; n<N; ++n)
+
145 newShape[Nf-1] *= oldShape[n];
+
146 Vector<Offset,Nf> newStrides = input.getStrides().template first<Nf>();
+
147 newStrides[Nf-1] = 1;
+
148 return Access::construct(input.getData(), Core::create(newShape, newStrides, input.getManager()));
+
149}
+
150
+
157template <int Nf, typename T, int N, int C>
+
158inline typename boost::enable_if_c< ((C+Nf-N)>=1), ArrayRef<T,Nf,(C+Nf-N)> >::type
+
159flatten(ArrayRef<T,N,C> const & input) {
+
160 return flatten<Nf>(input.shallow());
+
161}
+
162
+
164
+
165} // namespace ndarray
+
166
+
167#endif // !NDARRAY_casts_h_INCLUDED
+
Definitions for ArrayRef.
+
Definitions for Array.
+
Manager::Ptr getManager() const
Return the opaque object responsible for memory management.
Definition ArrayBase.h:136
+
Shallow const shallow() const
Return a Array view to this.
Definition ArrayBase.h:188
+
Element * getData() const
Return a raw pointer to the first element of the array.
Definition ArrayBase.h:130
+
Strides getStrides() const
Return a Vector of the strides of all dimensions.
Definition ArrayBase.h:152
+
Index getShape() const
Return a Vector of the sizes of all dimensions.
Definition ArrayBase.h:149
+
A proxy class for Array with deep assignment operators.
Definition ArrayRef.h:34
+
A multidimensional strided array.
Definition Array.h:35
+
Definition ArrayAccess.h:26
+
Array< T, N, C_ > dynamic_dimension_cast(Array< T, N, C > const &array)
Definition casts.h:93
+
Array< T, N, C_ > static_dimension_cast(Array< T, N, C > const &array)
Definition casts.h:77
+
detail::ComplexExtractor< Array_ >::Result getImag(Array_ const &array)
Return an ArrayRef view into the imaginary part of a complex array.
Definition casts.h:126
+
boost::enable_if_c<((C+Nf-N)>=1), ArrayRef< T, Nf,(C+Nf-N)> >::type flatten(Array< T, N, C > const &input)
Create a view into an array with trailing contiguous dimensions merged.
Definition casts.h:138
+
detail::ComplexExtractor< Array_ >::Result getReal(Array_ const &array)
Return an ArrayRef view into the real part of a complex array.
Definition casts.h:117
+
Array< T_, N, C > const_array_cast(Array< T, N, C > const &array)
Definition casts.h:64
+
Traits for expressions.
Definition ExpressionTraits.h:30
+
A fixed-size 1D array class.
Definition Vector.h:82
+ +
+ + + + diff --git a/classes.html b/classes.html new file mode 100644 index 00000000..91a1f24e --- /dev/null +++ b/classes.html @@ -0,0 +1,130 @@ + + + + + + + +ndarray: Class Index + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
A | B | C | D | E | F | I | M | N | P | R | S | T | U | V
+
+
+
A
+
IndexTraits< ndarray::index::Range >::Append (ndarray::detail)
IndexTraits< ndarray::index::Scalar >::Append (ndarray::detail)
IndexTraits< ndarray::index::Slice >::Append (ndarray::detail)
IndexTraits< ndarray::index::Full >::Append (ndarray::detail)
AppendIndex (ndarray::detail)
AppendIndex::apply (ndarray::detail)
ApproximatelyEqual (ndarray)
ApproximatelyEqual< std::complex< U1 >, std::complex< U2 > > (ndarray)
Array (ndarray)
ArrayAccess (ndarray::detail)
ArrayBase (ndarray)
ArrayBaseN (ndarray)
ArrayBaseN< Derived, 1 > (ndarray)
ArrayBaseN< Derived, 2 > (ndarray)
ArrayBaseN< Derived, 3 > (ndarray)
ArrayBaseN< Derived, 4 > (ndarray)
ArrayBaseN< Derived, 5 > (ndarray)
ArrayBaseN< Derived, 6 > (ndarray)
ArrayRef (ndarray)
ArrayTraits (ndarray)
ArrayTraits< T, 1, 0 > (ndarray)
ArrayTraits< T, 1, 1 > (ndarray)
ArrayTraits< T, 1,-1 > (ndarray)
+
+
B
+
BinaryOpExpression (ndarray::detail)
BinaryOpIterator (ndarray::detail)
+
+
C
+
ComplexExtractor (ndarray::detail)
Convertible (ndarray::detail)
Core (ndarray::detail)
Core< 0 > (ndarray::detail)
CoreTransformer (ndarray::detail)
CountingExpression (ndarray::detail)
+
+
D
+
DefaultValue (ndarray::detail)
DefaultValue< T, true > (ndarray::detail)
Dimensions (ndarray::detail)
+
+
E
+
EigenStrideTraits (ndarray::detail)
ExpressionBase (ndarray)
ExpressionTraits (ndarray)
ExpressionTraits< Array< T, N, C > > (ndarray)
ExpressionTraits< ArrayRef< T, N, C > > (ndarray)
ExpressionTraits< detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, 1 > > (ndarray)
ExpressionTraits< detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > > (ndarray)
ExpressionTraits< detail::CountingExpression > (ndarray)
ExpressionTraits< detail::UnaryOpExpression< Operand, UnaryFunction, 1 > > (ndarray)
ExpressionTraits< detail::UnaryOpExpression< Operand, UnaryFunction, N > > (ndarray)
ExternalInitializer (ndarray::detail)
ExternalManager (ndarray)
+
+
F
+
FFTWTraits (ndarray::detail)
FormatOptions (ndarray)
Formatter (ndarray::detail)
Formatter< Derived, 1 > (ndarray::detail)
FourierTraits (ndarray::detail)
FourierTransform (ndarray)
Full (ndarray::index)
+
+
I
+
IndexTraits (ndarray::detail)
IndexTraits< ndarray::index::Full > (ndarray::detail)
IndexTraits< ndarray::index::Range > (ndarray::detail)
IndexTraits< ndarray::index::Scalar > (ndarray::detail)
IndexTraits< ndarray::index::Slice > (ndarray::detail)
Initializer (ndarray::detail)
IteratorTraits (ndarray::detail)
+
+
M
+
Manager (ndarray)
+
+
N
+
NestedIterator (ndarray::detail)
NullOwner (ndarray::detail)
NumericTraits (ndarray)
+
+
P
+
Promote (ndarray)
Pybind11Helper (ndarray)
+
+
R
+
Range (ndarray::index)
RangeTransformer (ndarray::detail)
ArrayBase::ResultOf (ndarray)
+
+
S
+
SafeFloatingPointOps (ndarray::detail)
Scalar (ndarray::index)
SelectEigenMap (ndarray::detail)
SelectEigenMap< T, 1, -1, XprKind > (ndarray::detail)
SelectEigenMap< T, 1, 0, XprKind > (ndarray::detail)
SelectEigenMap< T, 1, 1, XprKind > (ndarray::detail)
SelectEigenMap< T, 2, -1, XprKind > (ndarray::detail)
SelectEigenMap< T, 2, -2, XprKind > (ndarray::detail)
SelectEigenMap< T, 2, 0, XprKind > (ndarray::detail)
SelectEigenMap< T, 2, 1, XprKind > (ndarray::detail)
SelectEigenMap< T, 2, 2, XprKind > (ndarray::detail)
SelectEigenPlain (ndarray::detail)
SelectEigenPlain< T, N, C, XprKind, false > (ndarray::detail)
SelectEigenPlain< T, N, C, XprKind, true > (ndarray::detail)
SelectEigenPlainBase (ndarray::detail)
SelectEigenPlainBase< T, N, C, Eigen::ArrayXpr > (ndarray::detail)
SelectEigenPlainBase< T, N, C, Eigen::MatrixXpr > (ndarray::detail)
SimpleInitializer (ndarray::detail)
SimpleManager (ndarray)
Slice (ndarray::index)
StridedIterator (ndarray::detail)
+
+
T
+
IndexTraits< ndarray::index::Full >::TransformCoreResult (ndarray::detail)
IndexTraits< ndarray::index::Range >::TransformCoreResult (ndarray::detail)
IndexTraits< ndarray::index::Scalar >::TransformCoreResult (ndarray::detail)
IndexTraits< ndarray::index::Slice >::TransformCoreResult (ndarray::detail)
type_caster< ndarray::Array< T, N, C > > (pybind11::detail)
+
+
U
+
UnaryOpExpression (ndarray::detail)
UnaryOpIterator (ndarray::detail)
+
+
V
+
Vector (ndarray)
Vector< T, 0 > (ndarray)
vectorize (ndarray::result_of)
vectorize< T1, T2, void > (ndarray::result_of)
View (ndarray)
ViewBuilder (ndarray::detail)
ViewNormalizer (ndarray::detail)
ViewNormalizer< N, Seq_, true > (ndarray::detail)
ViewTraits (ndarray::detail)
ViewTraits< N, C, Seq_, false > (ndarray::detail)
ViewTraits< N, C, Seq_, true > (ndarray::detail)
+
+
+ + + + diff --git a/classndarray_1_1Array-members.html b/classndarray_1_1Array-members.html new file mode 100644 index 00000000..0b9b4bc9 --- /dev/null +++ b/classndarray_1_1Array-members.html @@ -0,0 +1,156 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::Array< T, N, C > Member List
+
+
+ +

This is the complete list of members for ndarray::Array< T, N, C >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::Array< T, N, C >)ndarray::Array< T, N, C >friend
Array()ndarray::Array< T, N, C >inline
Array(Array const &other)ndarray::Array< T, N, C >inline
Array(Array< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)ndarray::Array< T, N, C >inline
Array(ArrayRef< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)ndarray::Array< T, N, C >inline
Array(Size n1, Size n2=1, Size n3=1, Size n4=1, Size n5=1, Size n6=1, Size n7=1, Size n8=1)ndarray::Array< T, N, C >explicit
Array(Vector< U, N > const &shape)ndarray::Array< T, N, C >explicit
ArrayBase (defined in ndarray::Array< T, N, C >)ndarray::Array< T, N, C >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::Array< T, N, C >)ndarray::Array< T, N, C >friend
ArrayTraits (defined in ndarray::Array< T, N, C >)ndarray::Array< T, N, C >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
detail::ArrayAccess (defined in ndarray::Array< T, N, C >)ndarray::Array< T, N, C >friend
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
isUnique() constndarray::Array< T, N, C >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator!=(Array< T_, N_, C_ > const &other) constndarray::Array< T, N, C >inline
operator=(Array const &other)ndarray::Array< T, N, C >inline
operator=(Array< T_, N, C_ > const &other)ndarray::Array< T, N, C >inline
operator=(ArrayRef< T_, N, C_ > const &other)ndarray::Array< T, N, C >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator==(Array< T_, N_, C_ > const &other) constndarray::Array< T, N, C >inline
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
swap(Array &other)ndarray::Array< T, N, C >inline
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1Array.html b/classndarray_1_1Array.html new file mode 100644 index 00000000..d6e85625 --- /dev/null +++ b/classndarray_1_1Array.html @@ -0,0 +1,778 @@ + + + + + + + +ndarray: ndarray::Array< T, N, C > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::Array< T, N, C > Class Template Reference
+
+
+ +

A multidimensional strided array. + More...

+ +

#include <Array.h>

+
+Inheritance diagram for ndarray::Array< T, N, C >:
+
+
+ + +ndarray::ArrayBaseN< Array< T, N, C > > +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Array ()
 Default constructor.
 
Array (Array const &other)
 Non-converting copy constructor.
 
template<typename T_ , int C_>
 Array (Array< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
 Converting copy constructor.
 
template<typename T_ , int C_>
 Array (ArrayRef< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
 Converting copy constructor.
 
 Array (Size n1, Size n2=1, Size n3=1, Size n4=1, Size n5=1, Size n6=1, Size n7=1, Size n8=1)
 Construct an array with the given dimensions and allocated but uninitialized memory.
 
template<typename U >
 Array (Vector< U, N > const &shape)
 Construct an array with the given dimensions and allocated but uninitialized memory.
 
+Arrayoperator= (Array const &other)
 Non-converting shallow assignment.
 
template<typename T_ , int C_>
boost::enable_if< detail::Convertible< N, T_, C_, T, C >, Array & >::type operator= (Array< T_, N, C_ > const &other)
 Converting shallow assignment.
 
template<typename T_ , int C_>
boost::enable_if< detail::Convertible< N, T_, C_, T, C >, Array & >::type operator= (ArrayRef< T_, N, C_ > const &other)
 Converting shallow assignment.
 
+template<typename T_ , int N_, int C_>
bool operator== (Array< T_, N_, C_ > const &other) const
 Shallow equality comparison: return true if the arrays share data and have the same shape and strides.
 
+template<typename T_ , int N_, int C_>
bool operator!= (Array< T_, N_, C_ > const &other) const
 Shallow inequality comparison.
 
+void swap (Array &other)
 Lightweight shallow swap.
 
bool isUnique () const
 Return true if the Array is definitely unique.
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class ArrayRef
 
+template<typename T_ , int N_, int C_>
struct ArrayTraits
 
+template<typename Derived >
class ArrayBase
 
+template<typename Array_ >
class detail::ArrayAccess
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from ndarray::ArrayBaseN< Array< T, N, C > >
+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
- Protected Types inherited from ndarray::ArrayBaseN< Array< T, N, C > >
+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename T, int N, int C>
+class ndarray::Array< T, N, C >

A multidimensional strided array.

+

Array is the workhorse class of the ndarray library.

+

Constructor & Destructor Documentation

+ +

◆ Array() [1/5]

+ +
+
+
+template<typename T , int N, int C>
+ + + + + +
+ + + + + + + +
ndarray::Array< T, N, C >::Array ()
+
+inline
+
+ +

Default constructor.

+

Creates an empty array with zero dimensions and null memory.

+ +
+
+ +

◆ Array() [2/5]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename T_ , int C_>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ndarray::Array< T, N, C >::Array (Array< T_, N, C_ > const & other,
typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type  = 0 
)
+
+inline
+
+ +

Converting copy constructor.

+

Implicit conversion is allowed for non-const to const and for more guaranteed RMC to less guaranteed RMC (see ndarray; Multidimensional Arrays in C++).

+ +
+
+ +

◆ Array() [3/5]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename T_ , int C_>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ndarray::Array< T, N, C >::Array (ArrayRef< T_, N, C_ > const & other,
typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type  = 0 
)
+
+inline
+
+ +

Converting copy constructor.

+

Implicit conversion is allowed for non-const to const and for more guaranteed RMC to less guaranteed RMC (see ndarray; Multidimensional Arrays in C++).

+ +
+
+ +

◆ Array() [4/5]

+ +
+
+
+template<typename T , int N, int C>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ndarray::Array< T, N, C >::Array (Size n1,
Size n2 = 1,
Size n3 = 1,
Size n4 = 1,
Size n5 = 1,
Size n6 = 1,
Size n7 = 1,
Size n8 = 1 
)
+
+explicit
+
+ +

Construct an array with the given dimensions and allocated but uninitialized memory.

+

Unspecified dimensions will have unit size, and if the number of argmuments is greater than the number of dimensions of the array, the extra arguments will be silently ignored.

+

This is implemented in initialization.h.

+ +
+
+ +

◆ Array() [5/5]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename U >
+ + + + + +
+ + + + + + + + +
ndarray::Array< T, N, C >::Array (Vector< U, N > const & shape)
+
+explicit
+
+ +

Construct an array with the given dimensions and allocated but uninitialized memory.

+

This is implemented in initialization.h.

+ +
+
+

Member Function Documentation

+ +

◆ isUnique()

+ +
+
+
+template<typename T , int N, int C>
+ + + + + +
+ + + + + + + +
bool ndarray::Array< T, N, C >::isUnique () const
+
+inline
+
+ +

Return true if the Array is definitely unique.

+

This will only return true if the manager overrides Manager::isUnique(); this is true for the SimpleManager used by ndarray::allocate, but it is not true for ExternalManager.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename T_ , int C_>
+ + + + + +
+ + + + + + + + +
boost::enable_if< detail::Convertible< N, T_, C_, T, C >, Array & >::type ndarray::Array< T, N, C >::operator= (Array< T_, N, C_ > const & other)
+
+inline
+
+ +

Converting shallow assignment.

+

Implicit conversion is allowed for non-const -> const and for more guaranteed RMC -> less guaranteed RMC (see ndarray; Multidimensional Arrays in C++).

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename T_ , int C_>
+ + + + + +
+ + + + + + + + +
boost::enable_if< detail::Convertible< N, T_, C_, T, C >, Array & >::type ndarray::Array< T, N, C >::operator= (ArrayRef< T_, N, C_ > const & other)
+
+inline
+
+ +

Converting shallow assignment.

+

Implicit conversion is allowed for non-const -> const and for more guaranteed RMC -> less guaranteed RMC (see ndarray; Multidimensional Arrays in C++).

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/classndarray_1_1Array.png b/classndarray_1_1Array.png new file mode 100644 index 00000000..1d19d9da Binary files /dev/null and b/classndarray_1_1Array.png differ diff --git a/classndarray_1_1ArrayBase-members.html b/classndarray_1_1ArrayBase-members.html new file mode 100644 index 00000000..95befae0 --- /dev/null +++ b/classndarray_1_1ArrayBase-members.html @@ -0,0 +1,147 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBase< Derived > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBase< Derived >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >friend
ArrayBase (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >friend
ArrayTraits (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
CorePtr typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
detail::ArrayAccess (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >friend
detail::NestedIterator (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >friend
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedefndarray::ArrayBase< Derived >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
Iterator typedefndarray::ArrayBase< Derived >
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
Shallow typedefndarray::ArrayBase< Derived >
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBase.html b/classndarray_1_1ArrayBase.html new file mode 100644 index 00000000..0e968452 --- /dev/null +++ b/classndarray_1_1ArrayBase.html @@ -0,0 +1,416 @@ + + + + + + + +ndarray: ndarray::ArrayBase< Derived > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBase< Derived > Class Template Reference
+
+
+ +

CRTP implementation for Array and ArrayRef. + More...

+ +

#include <ArrayBase.h>

+
+Inheritance diagram for ndarray::ArrayBase< Derived >:
+
+
+ + +ndarray::ExpressionBase< Derived > +ndarray::ArrayBaseN< Array< T, N, C > > +ndarray::ArrayBaseN< ArrayRef< T, N, C > > +ndarray::ArrayBaseN< Derived, N > +ndarray::ArrayBaseN< Derived, 1 > +ndarray::ArrayBaseN< Derived, 2 > +ndarray::ArrayBaseN< Derived, 3 > +ndarray::ArrayBaseN< Derived, 4 > +ndarray::ArrayBaseN< Derived, 5 > +ndarray::ArrayBaseN< Derived, 6 > + +
+ + + + + +

+Classes

struct  ResultOf
 A template metafunction class to determine the result of a view indexing operation. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + +

+Protected Types

+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + + + + + + + +

+Protected Member Functions

+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
+ + + + + +

+Protected Attributes

+Element_data
 
+CorePtr _core
 
+ + + + + + + + + + + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+template<typename T_ , int N_, int C_>
struct ArrayTraits
 
+template<typename T_ , int N_, int C_>
class detail::NestedIterator
 
+template<typename Array_ >
class detail::ArrayAccess
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBase< Derived >

CRTP implementation for Array and ArrayRef.

+

Implements member functions that need specialization for 1D arrays.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBase.png b/classndarray_1_1ArrayBase.png new file mode 100644 index 00000000..e39792ca Binary files /dev/null and b/classndarray_1_1ArrayBase.png differ diff --git a/classndarray_1_1ArrayBaseN-members.html b/classndarray_1_1ArrayBaseN-members.html new file mode 100644 index 00000000..60a98f99 --- /dev/null +++ b/classndarray_1_1ArrayBaseN-members.html @@ -0,0 +1,143 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, N > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, N >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, N >)ndarray::ArrayBaseN< Derived, N >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, N >)ndarray::ArrayBaseN< Derived, N >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, N >)ndarray::ArrayBaseN< Derived, N >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, N >)ndarray::ArrayBaseN< Derived, N >protected
Deep typedefndarray::ArrayBase< Derived >
deep() constndarray::ArrayBase< Derived >inline
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, N >)ndarray::ArrayBaseN< Derived, N >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN.html b/classndarray_1_1ArrayBaseN.html new file mode 100644 index 00000000..f4951743 --- /dev/null +++ b/classndarray_1_1ArrayBaseN.html @@ -0,0 +1,393 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, N > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef. + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, N >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived, int N = ArrayBase<Derived>::ND::value>
+class ndarray::ArrayBaseN< Derived, N >

An intermediate CRTP base class for Array and ArrayRef.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN.png b/classndarray_1_1ArrayBaseN.png new file mode 100644 index 00000000..f083e7ac Binary files /dev/null and b/classndarray_1_1ArrayBaseN.png differ diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4-members.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4-members.html new file mode 100644 index 00000000..ac4dd33b --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4-members.html @@ -0,0 +1,144 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, 1 > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, 1 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, 1 >)ndarray::ArrayBaseN< Derived, 1 >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, 1 >)ndarray::ArrayBaseN< Derived, 1 >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, 1 >)ndarray::ArrayBaseN< Derived, 1 >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, 1 >)ndarray::ArrayBaseN< Derived, 1 >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, 1 >)ndarray::ArrayBaseN< Derived, 1 >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator()(int n0) const (defined in ndarray::ArrayBaseN< Derived, 1 >)ndarray::ArrayBaseN< Derived, 1 >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4.html new file mode 100644 index 00000000..b314a109 --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4.html @@ -0,0 +1,400 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, 1 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, 1 > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef (specialization for 1). + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, 1 >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Element & operator() (int n0) const
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBaseN< Derived, 1 >

An intermediate CRTP base class for Array and ArrayRef (specialization for 1).

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4.png b/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4.png new file mode 100644 index 00000000..69724711 Binary files /dev/null and b/classndarray_1_1ArrayBaseN_3_01Derived_00_011_01_4.png differ diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4-members.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4-members.html new file mode 100644 index 00000000..720f04bb --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4-members.html @@ -0,0 +1,144 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, 2 > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, 2 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, 2 >)ndarray::ArrayBaseN< Derived, 2 >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, 2 >)ndarray::ArrayBaseN< Derived, 2 >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, 2 >)ndarray::ArrayBaseN< Derived, 2 >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, 2 >)ndarray::ArrayBaseN< Derived, 2 >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, 2 >)ndarray::ArrayBaseN< Derived, 2 >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator()(int n0, int n1) const (defined in ndarray::ArrayBaseN< Derived, 2 >)ndarray::ArrayBaseN< Derived, 2 >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4.html new file mode 100644 index 00000000..588c0629 --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4.html @@ -0,0 +1,400 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, 2 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, 2 > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef (specialization for 2). + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, 2 >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Element & operator() (int n0, int n1) const
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBaseN< Derived, 2 >

An intermediate CRTP base class for Array and ArrayRef (specialization for 2).

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4.png b/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4.png new file mode 100644 index 00000000..f391a040 Binary files /dev/null and b/classndarray_1_1ArrayBaseN_3_01Derived_00_012_01_4.png differ diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4-members.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4-members.html new file mode 100644 index 00000000..60660b11 --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4-members.html @@ -0,0 +1,144 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, 3 > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, 3 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, 3 >)ndarray::ArrayBaseN< Derived, 3 >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, 3 >)ndarray::ArrayBaseN< Derived, 3 >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, 3 >)ndarray::ArrayBaseN< Derived, 3 >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, 3 >)ndarray::ArrayBaseN< Derived, 3 >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, 3 >)ndarray::ArrayBaseN< Derived, 3 >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator()(int n0, int n1, int n2) const (defined in ndarray::ArrayBaseN< Derived, 3 >)ndarray::ArrayBaseN< Derived, 3 >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4.html new file mode 100644 index 00000000..bbb77f6a --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4.html @@ -0,0 +1,400 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, 3 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, 3 > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef (specialization for 3). + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, 3 >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Element & operator() (int n0, int n1, int n2) const
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBaseN< Derived, 3 >

An intermediate CRTP base class for Array and ArrayRef (specialization for 3).

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4.png b/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4.png new file mode 100644 index 00000000..a11b5cc8 Binary files /dev/null and b/classndarray_1_1ArrayBaseN_3_01Derived_00_013_01_4.png differ diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4-members.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4-members.html new file mode 100644 index 00000000..8af5e5ec --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4-members.html @@ -0,0 +1,144 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, 4 > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, 4 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, 4 >)ndarray::ArrayBaseN< Derived, 4 >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, 4 >)ndarray::ArrayBaseN< Derived, 4 >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, 4 >)ndarray::ArrayBaseN< Derived, 4 >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, 4 >)ndarray::ArrayBaseN< Derived, 4 >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, 4 >)ndarray::ArrayBaseN< Derived, 4 >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator()(int n0, int n1, int n2, int n3) const (defined in ndarray::ArrayBaseN< Derived, 4 >)ndarray::ArrayBaseN< Derived, 4 >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4.html new file mode 100644 index 00000000..7880eab4 --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4.html @@ -0,0 +1,400 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, 4 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, 4 > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef (specialization for 4). + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, 4 >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Element & operator() (int n0, int n1, int n2, int n3) const
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBaseN< Derived, 4 >

An intermediate CRTP base class for Array and ArrayRef (specialization for 4).

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4.png b/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4.png new file mode 100644 index 00000000..7510ea3b Binary files /dev/null and b/classndarray_1_1ArrayBaseN_3_01Derived_00_014_01_4.png differ diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4-members.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4-members.html new file mode 100644 index 00000000..8c622d6e --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4-members.html @@ -0,0 +1,144 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, 5 > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, 5 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, 5 >)ndarray::ArrayBaseN< Derived, 5 >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, 5 >)ndarray::ArrayBaseN< Derived, 5 >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, 5 >)ndarray::ArrayBaseN< Derived, 5 >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, 5 >)ndarray::ArrayBaseN< Derived, 5 >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, 5 >)ndarray::ArrayBaseN< Derived, 5 >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator()(int n0, int n1, int n2, int n3, int n4) const (defined in ndarray::ArrayBaseN< Derived, 5 >)ndarray::ArrayBaseN< Derived, 5 >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4.html new file mode 100644 index 00000000..ad1c9b7c --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4.html @@ -0,0 +1,400 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, 5 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, 5 > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef (specialization for 5). + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, 5 >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Element & operator() (int n0, int n1, int n2, int n3, int n4) const
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBaseN< Derived, 5 >

An intermediate CRTP base class for Array and ArrayRef (specialization for 5).

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4.png b/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4.png new file mode 100644 index 00000000..3378722d Binary files /dev/null and b/classndarray_1_1ArrayBaseN_3_01Derived_00_015_01_4.png differ diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4-members.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4-members.html new file mode 100644 index 00000000..84af2bb0 --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4-members.html @@ -0,0 +1,144 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayBaseN< Derived, 6 > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayBaseN< Derived, 6 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayBaseN< Derived, 6 >)ndarray::ArrayBaseN< Derived, 6 >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayBaseN< Derived, 6 >)ndarray::ArrayBaseN< Derived, 6 >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Core typedef (defined in ndarray::ArrayBaseN< Derived, 6 >)ndarray::ArrayBaseN< Derived, 6 >protected
CorePtr typedef (defined in ndarray::ArrayBaseN< Derived, 6 >)ndarray::ArrayBaseN< Derived, 6 >protected
deep() constndarray::ArrayBase< Derived >inline
Deep typedefndarray::ArrayBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedef (defined in ndarray::ArrayBaseN< Derived, 6 >)ndarray::ArrayBaseN< Derived, 6 >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ArrayBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator()(int n0, int n1, int n2, int n3, int n4, int n5) const (defined in ndarray::ArrayBaseN< Derived, 6 >)ndarray::ArrayBaseN< Derived, 6 >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
Shallow typedefndarray::ArrayBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Transpose typedefndarray::ArrayBase< Derived >
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4.html b/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4.html new file mode 100644 index 00000000..04bcf2d6 --- /dev/null +++ b/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4.html @@ -0,0 +1,400 @@ + + + + + + + +ndarray: ndarray::ArrayBaseN< Derived, 6 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayBaseN< Derived, 6 > Class Template Reference
+
+
+ +

An intermediate CRTP base class for Array and ArrayRef (specialization for 6). + More...

+ +

#include <ArrayBaseN.h>

+
+Inheritance diagram for ndarray::ArrayBaseN< Derived, 6 >:
+
+
+ + +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Element & operator() (int n0, int n1, int n2, int n3, int n4, int n5) const
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + +

+Protected Types

+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
+ + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
class ArrayRef
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ArrayBaseN< Derived, 6 >

An intermediate CRTP base class for Array and ArrayRef (specialization for 6).

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4.png b/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4.png new file mode 100644 index 00000000..4f25a1d2 Binary files /dev/null and b/classndarray_1_1ArrayBaseN_3_01Derived_00_016_01_4.png differ diff --git a/classndarray_1_1ArrayRef-members.html b/classndarray_1_1ArrayRef-members.html new file mode 100644 index 00000000..ff82649e --- /dev/null +++ b/classndarray_1_1ArrayRef-members.html @@ -0,0 +1,172 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ArrayRef< T, N, C > Member List
+
+
+ +

This is the complete list of members for ndarray::ArrayRef< T, N, C >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_core (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
_data (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Array (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >friend
ArrayBase (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >friend
ArrayBase(ArrayBase< Other > const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayBase(Element *data, CorePtr const &core) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
ArrayRef (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >friend
ArrayRef(Size n1, Size n2=1, Size n3=1, Size n4=1, Size n5=1, Size n6=1, Size n7=1, Size n8=1)ndarray::ArrayRef< T, N, C >explicit
ArrayRef(Vector< U, N > const &shape)ndarray::ArrayRef< T, N, C >explicit
ArrayRef(ArrayRef const &other)ndarray::ArrayRef< T, N, C >inline
ArrayRef(Array< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)ndarray::ArrayRef< T, N, C >inlineexplicit
ArrayRef(ArrayRef< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)ndarray::ArrayRef< T, N, C >inline
ArrayTraits (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >friend
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ArrayBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Deep typedefndarray::ArrayBase< Derived >
deep() constndarray::ArrayBase< Derived >inline
detail::ArrayAccess (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >friend
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ArrayBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
FullTranspose typedefndarray::ArrayBase< Derived >
getData() constndarray::ArrayBase< Derived >inline
getManager() constndarray::ArrayBase< Derived >inline
getNumElements() constndarray::ArrayBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ArrayBase< Derived >inline
getSize() constndarray::ArrayBase< Derived >inline
getStride() constndarray::ArrayBase< Derived >inline
getStrides() constndarray::ArrayBase< Derived >inline
Index typedefndarray::ArrayBase< Derived >
isEmpty() constndarray::ArrayBase< Derived >inline
Iterator typedef (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
ND typedefndarray::ArrayBase< Derived >
operator%=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator%=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator&=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator&=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator*=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator*=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator+=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator+=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator-=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator-=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator/=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator/=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator<<=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator<<=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator=(Array< T, N, C > const &other) const (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >inline
operator=(ArrayRef const &other) const (defined in ndarray::ArrayRef< T, N, C >)ndarray::ArrayRef< T, N, C >inline
operator=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator=(ArrayBase const &other) (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >inlineprotected
operator>>=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator>>=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator[](Size n) constndarray::ArrayBase< Derived >inline
operator[](Index const &i) constndarray::ArrayBase< Derived >inline
operator[](View< Seq > const &def) constndarray::ArrayBase< Derived >inline
operator^=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator^=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
operator|=(ExpressionBase< Other > const &expr) constndarray::ArrayRef< T, N, C >inline
operator|=(Scalar const &scalar) constndarray::ArrayRef< T, N, C >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ArrayBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
RMC typedefndarray::ArrayBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
shallow() constndarray::ArrayBase< Derived >inline
Shallow typedefndarray::ArrayBase< Derived >
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Strides typedefndarray::ArrayBase< Derived >
Traits typedef (defined in ndarray::ArrayBase< Derived >)ndarray::ArrayBase< Derived >protected
Transpose typedefndarray::ArrayBase< Derived >
transpose() constndarray::ArrayBase< Derived >inline
transpose(Index const &order) constndarray::ArrayBase< Derived >inline
Value typedefndarray::ArrayBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ArrayRef.html b/classndarray_1_1ArrayRef.html new file mode 100644 index 00000000..081bde30 --- /dev/null +++ b/classndarray_1_1ArrayRef.html @@ -0,0 +1,744 @@ + + + + + + + +ndarray: ndarray::ArrayRef< T, N, C > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ArrayRef< T, N, C > Class Template Reference
+
+
+ +

A proxy class for Array with deep assignment operators. + More...

+ +

#include <ArrayRef.h>

+
+Inheritance diagram for ndarray::ArrayRef< T, N, C >:
+
+
+ + +ndarray::ArrayBaseN< ArrayRef< T, N, C > > +ndarray::ArrayBase< Derived > +ndarray::ExpressionBase< Derived > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Super::Iterator Iterator
 
- Public Types inherited from ndarray::ArrayBaseN< ArrayRef< T, N, C > >
+typedef Super::Element Element
 
- Public Types inherited from ndarray::ArrayBase< Derived >
+typedef Traits::Element Element
 Data type of array elements.
 
+typedef Traits::Iterator Iterator
 Nested array or element iterator.
 
+typedef Traits::Reference Reference
 Nested array or element reference.
 
+typedef Traits::Value Value
 Nested array or element value type.
 
+typedef Traits::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef Traits::RMC RMC
 Number of guaranteed row-major contiguous dimensions, counted from the end (boost::mpl::int_).
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices and shapes.
 
+typedef Vector< Offset, ND::value > Strides
 Vector type for N-dimensional offsets and strides.
 
+typedef ArrayRef< Element, ND::value,-RMC::value > FullTranspose
 ArrayRef to a reverse-ordered contiguous array; the result of a call to transpose().
 
+typedef ArrayRef< Element, ND::value, 0 > Transpose
 ArrayRef to a noncontiguous array; the result of a call to transpose(...).
 
+typedef Array< Element, ND::value, RMC::value > Shallow
 The corresponding Array type.
 
+typedef ArrayRef< Element, ND::value, RMC::value > Deep
 The corresponding ArrayRef type.
 
- Public Types inherited from ndarray::ExpressionBase< Derived >
+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ArrayRef (Size n1, Size n2=1, Size n3=1, Size n4=1, Size n5=1, Size n6=1, Size n7=1, Size n8=1)
 Construct an array with the given dimensions and allocated but uninitialized memory.
 
template<typename U >
 ArrayRef (Vector< U, N > const &shape)
 Construct an array with the given dimensions and allocated but uninitialized memory.
 
ArrayRef (ArrayRef const &other)
 Non-converting copy constructor.
 
template<typename T_ , int C_>
 ArrayRef (Array< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
 Converting copy constructor.
 
template<typename T_ , int C_>
 ArrayRef (ArrayRef< T_, N, C_ > const &other, typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type=0)
 Converting copy constructor.
 
Assignment and Augmented Assignment Operators

ArrayRef assignment is deep, and requires that the ArrayRef being assigned to has the same shape as the input array expression. Scalar assignment sets all elements of the ArrayRef to a single value.

+
+ArrayRef const & operator= (Array< T, N, C > const &other) const
 
+ArrayRef const & operator= (ArrayRef const &other) const
 
+template<typename Other >
ArrayRef const & operator= (ExpressionBase< Other > const &expr) const
 = assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator= (Scalar const &scalar) const
 = assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator+= (ExpressionBase< Other > const &expr) const
 += assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator+= (Scalar const &scalar) const
 += assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator-= (ExpressionBase< Other > const &expr) const
 -= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator-= (Scalar const &scalar) const
 -= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator*= (ExpressionBase< Other > const &expr) const
 *= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator*= (Scalar const &scalar) const
 *= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator/= (ExpressionBase< Other > const &expr) const
 /= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator/= (Scalar const &scalar) const
 /= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator%= (ExpressionBase< Other > const &expr) const
 %= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator%= (Scalar const &scalar) const
 %= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator^= (ExpressionBase< Other > const &expr) const
 ^= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator^= (Scalar const &scalar) const
 ^= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator&= (ExpressionBase< Other > const &expr) const
 &= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator&= (Scalar const &scalar) const
 &= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator|= (ExpressionBase< Other > const &expr) const
 |= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator|= (Scalar const &scalar) const
 |= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator<<= (ExpressionBase< Other > const &expr) const
 <<= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator<<= (Scalar const &scalar) const
 <<= assignment of scalars.
 
+template<typename Other >
ArrayRef const & operator>>= (ExpressionBase< Other > const &expr) const
 >>= assignment of arrays and array expressions.
 
+template<typename Scalar >
boost::enable_if< boost::is_convertible< Scalar, T >, ArrayRefconst & >::type operator>>= (Scalar const &scalar) const
 >>= assignment of scalars.
 
- Public Member Functions inherited from ndarray::ArrayBase< Derived >
+Reference operator[] (Size n) const
 Return a single subarray.
 
+Elementoperator[] (Index const &i) const
 Return a single element from the array.
 
+Iterator begin () const
 Return an Iterator to the beginning of the array.
 
+Iterator end () const
 Return an Iterator to one past the end of the array.
 
+ElementgetData () const
 Return a raw pointer to the first element of the array.
 
+bool isEmpty () const
 Return true if the array has a null data point.
 
+Manager::Ptr getManager () const
 Return the opaque object responsible for memory management.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+template<int P>
Offset getStride () const
 Return the stride in a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Strides getStrides () const
 Return a Vector of the strides of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the array.
 
+FullTranspose transpose () const
 Return a view of the array with the order of the dimensions reversed.
 
+Transpose transpose (Index const &order) const
 Return a view of the array with the dimensions permuted.
 
+Shallow const shallow () const
 Return a Array view to this.
 
+Deep const deep () const
 Return an ArrayRef view to this.
 
+template<typename Seq >
ResultOf< View< Seq > >::Type operator[] (View< Seq > const &def) const
 Return a general view into this array (see Tutorial).
 
- Public Member Functions inherited from ndarray::ExpressionBase< Derived >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + + + + + + + +

+Friends

+template<typename T_ , int N_, int C_>
class Array
 
+template<typename T_ , int N_, int C_>
struct ArrayTraits
 
+template<typename Derived >
class ArrayBase
 
+template<typename Array_ >
class detail::ArrayAccess
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Types inherited from ndarray::ArrayBaseN< ArrayRef< T, N, C > >
+typedef Super::Core Core
 
+typedef Super::CorePtr CorePtr
 
- Protected Types inherited from ndarray::ArrayBase< Derived >
+typedef ExpressionTraits< Derived > Traits
 
+typedef Traits::Core Core
 
+typedef Traits::CorePtr CorePtr
 
- Protected Member Functions inherited from ndarray::ArrayBase< Derived >
+void operator= (ArrayBase const &other)
 
+template<typename Other >
 ArrayBase (ArrayBase< Other > const &other)
 
ArrayBase (Element *data, CorePtr const &core)
 
- Protected Member Functions inherited from ndarray::ExpressionBase< Derived >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
- Protected Attributes inherited from ndarray::ArrayBase< Derived >
+Element_data
 
+CorePtr _core
 
+

Detailed Description

+
template<typename T, int N, int C>
+class ndarray::ArrayRef< T, N, C >

A proxy class for Array with deep assignment operators.

+

Constructor & Destructor Documentation

+ +

◆ ArrayRef() [1/4]

+ +
+
+
+template<typename T , int N, int C>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ndarray::ArrayRef< T, N, C >::ArrayRef (Size n1,
Size n2 = 1,
Size n3 = 1,
Size n4 = 1,
Size n5 = 1,
Size n6 = 1,
Size n7 = 1,
Size n8 = 1 
)
+
+explicit
+
+ +

Construct an array with the given dimensions and allocated but uninitialized memory.

+

Unspecified dimensions will have unit size, and if the number of argmuments is greater than the number of dimensions of the array, the extra arguments will be silently ignored.

+

This is implemented in initialization.h.

+ +
+
+ +

◆ ArrayRef() [2/4]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename U >
+ + + + + +
+ + + + + + + + +
ndarray::ArrayRef< T, N, C >::ArrayRef (Vector< U, N > const & shape)
+
+explicit
+
+ +

Construct an array with the given dimensions and allocated but uninitialized memory.

+

This is implemented in initialization.h.

+ +
+
+ +

◆ ArrayRef() [3/4]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename T_ , int C_>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ndarray::ArrayRef< T, N, C >::ArrayRef (Array< T_, N, C_ > const & other,
typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type  = 0 
)
+
+inlineexplicit
+
+ +

Converting copy constructor.

+

Implicit conversion is allowed for non-const to const and for more guaranteed RMC to less guaranteed RMC (see Tutorial).

+ +
+
+ +

◆ ArrayRef() [4/4]

+ +
+
+
+template<typename T , int N, int C>
+
+template<typename T_ , int C_>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ndarray::ArrayRef< T, N, C >::ArrayRef (ArrayRef< T_, N, C_ > const & other,
typename boost::enable_if< detail::Convertible< N, T_, C_, T, C >, void * >::type  = 0 
)
+
+inline
+
+ +

Converting copy constructor.

+

Implicit conversion is allowed for non-const to const and for more guaranteed RMC to less guaranteed RMC (see Tutorial).

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/classndarray_1_1ArrayRef.png b/classndarray_1_1ArrayRef.png new file mode 100644 index 00000000..be7a5e32 Binary files /dev/null and b/classndarray_1_1ArrayRef.png differ diff --git a/classndarray_1_1ExpressionBase-members.html b/classndarray_1_1ExpressionBase-members.html new file mode 100644 index 00000000..9c7b077f --- /dev/null +++ b/classndarray_1_1ExpressionBase-members.html @@ -0,0 +1,116 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ExpressionBase< Derived > Member List
+
+
+ +

This is the complete list of members for ndarray::ExpressionBase< Derived >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
back() constndarray::ExpressionBase< Derived >inline
begin() constndarray::ExpressionBase< Derived >inline
const_iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
const_reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
difference_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Element typedefndarray::ExpressionBase< Derived >
empty() constndarray::ExpressionBase< Derived >inline
end() constndarray::ExpressionBase< Derived >inline
front() constndarray::ExpressionBase< Derived >inline
getNumElements() constndarray::ExpressionBase< Derived >inline
getSelf() (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getSelf() const (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >inlineprotected
getShape() constndarray::ExpressionBase< Derived >inline
getSize() constndarray::ExpressionBase< Derived >inline
Index typedefndarray::ExpressionBase< Derived >
iterator typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Iterator typedefndarray::ExpressionBase< Derived >
ND typedefndarray::ExpressionBase< Derived >
operator[](Size n) constndarray::ExpressionBase< Derived >inline
pointer typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
reference typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Reference typedefndarray::ExpressionBase< Derived >
Self typedefndarray::ExpressionBase< Derived >
size() constndarray::ExpressionBase< Derived >inline
size_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
Value typedefndarray::ExpressionBase< Derived >
value_type typedef (defined in ndarray::ExpressionBase< Derived >)ndarray::ExpressionBase< Derived >
+ + + + diff --git a/classndarray_1_1ExpressionBase.html b/classndarray_1_1ExpressionBase.html new file mode 100644 index 00000000..da150819 --- /dev/null +++ b/classndarray_1_1ExpressionBase.html @@ -0,0 +1,233 @@ + + + + + + + +ndarray: ndarray::ExpressionBase< Derived > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ExpressionBase< Derived > Class Template Reference
+
+
+ +

CRTP base class for all multidimensional expressions. + More...

+ +

#include <ExpressionBase.h>

+
+Inheritance diagram for ndarray::ExpressionBase< Derived >:
+
+
+ + +ndarray::ArrayBase< Array< T, N, C > > +ndarray::ArrayBase< ArrayRef< T, N, C > > +ndarray::ArrayBase< Derived > +ndarray::ArrayBaseN< Array< T, N, C > > +ndarray::ArrayBaseN< ArrayRef< T, N, C > > +ndarray::ArrayBaseN< Derived, N > +ndarray::ArrayBaseN< Derived, 1 > +ndarray::ArrayBaseN< Derived, 2 > +ndarray::ArrayBaseN< Derived, 3 > +ndarray::ArrayBaseN< Derived, 4 > +ndarray::ArrayBaseN< Derived, 5 > +ndarray::ArrayBaseN< Derived, 6 > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef ExpressionTraits< Derived >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< Derived >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< Derived >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< Derived >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< Derived >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef Derived Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+template<int P>
Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + +

+Protected Member Functions

+SelfgetSelf ()
 
+Self const & getSelf () const
 
+

Detailed Description

+
template<typename Derived>
+class ndarray::ExpressionBase< Derived >

CRTP base class for all multidimensional expressions.

+

ExpressionBase is a CRTP base class for both true array objects (subclasses of ArrayBase) and lazy array expressions, which are created by most arithmetic, bitwise, and logical operations on arrays. These lazy expressions have most of the features of a true array to a const data type.

+

ExpressionBase also provides implementations for a few STL compatibility and convenience member functions.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ExpressionBase.png b/classndarray_1_1ExpressionBase.png new file mode 100644 index 00000000..4dd0eb96 Binary files /dev/null and b/classndarray_1_1ExpressionBase.png differ diff --git a/classndarray_1_1ExternalManager-members.html b/classndarray_1_1ExternalManager-members.html new file mode 100644 index 00000000..fabf3f25 --- /dev/null +++ b/classndarray_1_1ExternalManager-members.html @@ -0,0 +1,97 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::ExternalManager< U > Member List
+
+
+ +

This is the complete list of members for ndarray::ExternalManager< U >, including all inherited members.

+ + + + + + + + + +
getOwner() const (defined in ndarray::ExternalManager< U >)ndarray::ExternalManager< U >inline
getRC() const (defined in ndarray::Manager)ndarray::Managerinline
isUnique() const (defined in ndarray::Manager)ndarray::Managerinlinevirtual
makeManager (defined in ndarray::ExternalManager< U >)ndarray::ExternalManager< U >friend
Manager() (defined in ndarray::Manager)ndarray::Managerinlineexplicitprotected
Owner typedef (defined in ndarray::ExternalManager< U >)ndarray::ExternalManager< U >
Ptr typedef (defined in ndarray::Manager)ndarray::Manager
~Manager() (defined in ndarray::Manager)ndarray::Managerinlineprotectedvirtual
+ + + + diff --git a/classndarray_1_1ExternalManager.html b/classndarray_1_1ExternalManager.html new file mode 100644 index 00000000..f1be360d --- /dev/null +++ b/classndarray_1_1ExternalManager.html @@ -0,0 +1,134 @@ + + + + + + + +ndarray: ndarray::ExternalManager< U > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::ExternalManager< U > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::ExternalManager< U >:
+
+
+ + +ndarray::Manager + +
+ + + + + + + +

+Public Types

+typedef U Owner
 
- Public Types inherited from ndarray::Manager
+typedef boost::intrusive_ptr< ManagerPtr
 
+ + + + + + + + +

+Public Member Functions

+Owner const & getOwner () const
 
- Public Member Functions inherited from ndarray::Manager
+int getRC () const
 
+virtual bool isUnique () const
 
+ + + + +

+Friends

+template<typename T >
Manager::Ptr makeManager (T const &owner)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1ExternalManager.png b/classndarray_1_1ExternalManager.png new file mode 100644 index 00000000..5cfedb88 Binary files /dev/null and b/classndarray_1_1ExternalManager.png differ diff --git a/classndarray_1_1FormatOptions-members.html b/classndarray_1_1FormatOptions-members.html new file mode 100644 index 00000000..0fc78edc --- /dev/null +++ b/classndarray_1_1FormatOptions-members.html @@ -0,0 +1,92 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::FormatOptions Member List
+
+
+ +

This is the complete list of members for ndarray::FormatOptions, including all inherited members.

+ + + + +
apply(std::ostream &os, ExpressionBase< Derived > const &expr)ndarray::FormatOptionsinline
detail::Formatter (defined in ndarray::FormatOptions)ndarray::FormatOptionsfriend
FormatOptions(int width=8, int precision=6, std::ios_base::fmtflags flags=std::ios_base::fmtflags(0), std::string const &delimiter=", ", std::string const &open="[", std::string const &close="]")ndarray::FormatOptionsinlineexplicit
+ + + + diff --git a/classndarray_1_1FormatOptions.html b/classndarray_1_1FormatOptions.html new file mode 100644 index 00000000..1178782a --- /dev/null +++ b/classndarray_1_1FormatOptions.html @@ -0,0 +1,120 @@ + + + + + + + +ndarray: ndarray::FormatOptions Class Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::FormatOptions Class Reference
+
+
+ +

Options for controlling stream output of ExpressionBase. + More...

+ +

#include <formatting.h>

+ + + + + + + + + +

+Public Member Functions

FormatOptions (int width=8, int precision=6, std::ios_base::fmtflags flags=std::ios_base::fmtflags(0), std::string const &delimiter=", ", std::string const &open="[", std::string const &close="]")
 Standard constructor.
 
+template<typename Derived >
void apply (std::ostream &os, ExpressionBase< Derived > const &expr)
 Format the given expression into the given output stream.
 
+ + + + +

+Friends

+template<typename Derived , int N>
class detail::Formatter
 
+

Detailed Description

+

Options for controlling stream output of ExpressionBase.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1FourierTransform-members.html b/classndarray_1_1FourierTransform-members.html new file mode 100644 index 00000000..c6b7e4b5 --- /dev/null +++ b/classndarray_1_1FourierTransform-members.html @@ -0,0 +1,107 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::FourierTransform< T, N > Member List
+
+
+ +

This is the complete list of members for ndarray::FourierTransform< T, N >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
ArrayK typedefndarray::FourierTransform< T, N >
ArrayX typedefndarray::FourierTransform< T, N >
ElementK typedefndarray::FourierTransform< T, N >
ElementX typedefndarray::FourierTransform< T, N >
execute()ndarray::FourierTransform< T, N >
Index typedefndarray::FourierTransform< T, N >
initialize(Vector< Size, M > const &shape, Array< ElementX, M, M > &x, Array< ElementK, M, M > &k)ndarray::FourierTransform< T, N >static
initializeK(Vector< Size, M > const &shape)ndarray::FourierTransform< T, N >static
initializeX(Vector< Size, M > const &shape)ndarray::FourierTransform< T, N >static
MultiplexArrayK typedefndarray::FourierTransform< T, N >
MultiplexArrayX typedefndarray::FourierTransform< T, N >
MultiplexIndex typedefndarray::FourierTransform< T, N >
planForward(Index const &shape, ArrayX &x, ArrayK &k)ndarray::FourierTransform< T, N >static
planInverse(Index const &shape, ArrayK &k, ArrayX &x)ndarray::FourierTransform< T, N >static
planMultiplexForward(MultiplexIndex const &shape, MultiplexArrayX &x, MultiplexArrayK &k)ndarray::FourierTransform< T, N >static
planMultiplexInverse(MultiplexIndex const &shape, MultiplexArrayK &k, MultiplexArrayX &x)ndarray::FourierTransform< T, N >static
Ptr typedef (defined in ndarray::FourierTransform< T, N >)ndarray::FourierTransform< T, N >
~FourierTransform() (defined in ndarray::FourierTransform< T, N >)ndarray::FourierTransform< T, N >
+ + + + diff --git a/classndarray_1_1FourierTransform.html b/classndarray_1_1FourierTransform.html new file mode 100644 index 00000000..48d5e340 --- /dev/null +++ b/classndarray_1_1FourierTransform.html @@ -0,0 +1,456 @@ + + + + + + + +ndarray: ndarray::FourierTransform< T, N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::FourierTransform< T, N > Class Template Reference
+
+
+ +

A wrapper for FFTW plans for fast Fourier transforms. + More...

+ +

#include <FourierTransform.h>

+
+Inheritance diagram for ndarray::FourierTransform< T, N >:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef boost::shared_ptr< FourierTransformPtr
 
+typedef detail::FourierTraits< T >::ElementX ElementX
 Real-space array data type;.
 
+typedef detail::FourierTraits< T >::ElementK ElementK
 Fourier-space array data type;.
 
+typedef Vector< Size, N > Index
 Shape type for arrays.
 
+typedef Array< ElementX, N, N > ArrayX
 Real-space array type.
 
+typedef Array< ElementK, N, N > ArrayK
 Fourier-space array type.
 
+typedef Vector< Size, N+1 > MultiplexIndex
 Shape type for multiplexed arrays.
 
+typedef Array< ElementX, N+1, N+1 > MultiplexArrayX
 Real-space multiplexed array type.
 
+typedef Array< ElementK, N+1, N+1 > MultiplexArrayK
 Fourier-space multiplexed array type.
 
+ + + + +

+Public Member Functions

+void execute ()
 Execute the FFTW plan.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static Ptr planForward (Index const &shape, ArrayX &x, ArrayK &k)
 Create a plan for forward-transforming a single N-dimensional array.
 
static Ptr planInverse (Index const &shape, ArrayK &k, ArrayX &x)
 Create a plan for inverse-transforming a single N-dimensional array.
 
static Ptr planMultiplexForward (MultiplexIndex const &shape, MultiplexArrayX &x, MultiplexArrayK &k)
 Create a plan for forward-transforming a sequence of nested N-dimensional arrays.
 
static Ptr planMultiplexInverse (MultiplexIndex const &shape, MultiplexArrayK &k, MultiplexArrayX &x)
 Create a plan for inverse-transforming a sequence of nested N-dimensional arrays.
 
+template<int M>
static Array< ElementX, M, M > initializeX (Vector< Size, M > const &shape)
 Create a new real-space array with the given real-space shape.
 
+template<int M>
static Array< ElementK, M, M > initializeK (Vector< Size, M > const &shape)
 Create a new Fourier-space array with the given real-space shape.
 
template<int M>
static void initialize (Vector< Size, M > const &shape, Array< ElementX, M, M > &x, Array< ElementK, M, M > &k)
 Initialize, as necessary, a pair of arrays with the given real-space shape.
 
+

Detailed Description

+
template<typename T, int N>
+class ndarray::FourierTransform< T, N >

A wrapper for FFTW plans for fast Fourier transforms.

+

An instance of FourierTransform holds an FFTW "plan", providing repeated forward or inverse FFTs of predetermined arrays.

+

Multiplex plans can also be generated to perform an N-dimensional FFT on the nested arrays of an (N+1)-dimensional array.

+

Static member functions of FourierTransform are used to create instances, and optionally initialize the involved arrays.

+

Member Function Documentation

+ +

◆ initialize()

+ +
+
+
+template<typename T , int N>
+
+template<int M>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void ndarray::FourierTransform< T, N >::initialize (Vector< Size, M > const & shape,
Array< ElementX, M, M > & x,
Array< ElementK, M, M > & k 
)
+
+static
+
+ +

Initialize, as necessary, a pair of arrays with the given real-space shape.

+

If either array is not empty, it must be consistent with the given shape.

+ +
+
+ +

◆ planForward()

+ +
+
+
+template<typename T , int N>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static Ptr ndarray::FourierTransform< T, N >::planForward (Index const & shape,
ArrayXx,
ArrayKk 
)
+
+static
+
+ +

Create a plan for forward-transforming a single N-dimensional array.

+

Arrays will be initialized with new memory if empty. If they are not empty, existing data may be overwritten when the plan is created.

+
Parameters
+ + + + +
shapeShape of the real-space array.
xInput real-space array.
kOutput Fourier-space array.
+
+
+ +
+
+ +

◆ planInverse()

+ +
+
+
+template<typename T , int N>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static Ptr ndarray::FourierTransform< T, N >::planInverse (Index const & shape,
ArrayKk,
ArrayXx 
)
+
+static
+
+ +

Create a plan for inverse-transforming a single N-dimensional array.

+

Arrays will be initialized with new memory if empty. If they are not empty, existing data may be overwritten when the plan is created.

+
Parameters
+ + + + +
shapeShape of the real-space array.
kInput Fourier-space array.
xOutput real-space array.
+
+
+ +
+
+ +

◆ planMultiplexForward()

+ +
+
+
+template<typename T , int N>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static Ptr ndarray::FourierTransform< T, N >::planMultiplexForward (MultiplexIndex const & shape,
MultiplexArrayXx,
MultiplexArrayKk 
)
+
+static
+
+ +

Create a plan for forward-transforming a sequence of nested N-dimensional arrays.

+

Arrays will be initialized with new memory if empty. If they are not empty, existing data may be overwritten when the plan is created.

+
Parameters
+ + + + +
shapeShape of the real-space array. First dimension is multiplexed.
xInput real-space array.
kOutput Fourier-space array.
+
+
+ +
+
+ +

◆ planMultiplexInverse()

+ +
+
+
+template<typename T , int N>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static Ptr ndarray::FourierTransform< T, N >::planMultiplexInverse (MultiplexIndex const & shape,
MultiplexArrayKk,
MultiplexArrayXx 
)
+
+static
+
+ +

Create a plan for inverse-transforming a sequence of nested N-dimensional arrays.

+

Arrays will be initialized with new memory if empty. If they are not empty, existing data may be overwritten when the plan is created.

+
Parameters
+ + + + +
shapeShape of the real-space array. First dimension is multiplexed.
kInput Fourier-space array.
xOutput real-space array.
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1FourierTransform.png b/classndarray_1_1FourierTransform.png new file mode 100644 index 00000000..cc00166f Binary files /dev/null and b/classndarray_1_1FourierTransform.png differ diff --git a/classndarray_1_1Manager-members.html b/classndarray_1_1Manager-members.html new file mode 100644 index 00000000..6b09c635 --- /dev/null +++ b/classndarray_1_1Manager-members.html @@ -0,0 +1,96 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::Manager Member List
+
+
+ +

This is the complete list of members for ndarray::Manager, including all inherited members.

+ + + + + + + + +
getRC() const (defined in ndarray::Manager)ndarray::Managerinline
intrusive_ptr_add_ref (defined in ndarray::Manager)ndarray::Managerfriend
intrusive_ptr_release (defined in ndarray::Manager)ndarray::Managerfriend
isUnique() const (defined in ndarray::Manager)ndarray::Managerinlinevirtual
Manager() (defined in ndarray::Manager)ndarray::Managerinlineexplicitprotected
Ptr typedef (defined in ndarray::Manager)ndarray::Manager
~Manager() (defined in ndarray::Manager)ndarray::Managerinlineprotectedvirtual
+ + + + diff --git a/classndarray_1_1Manager.html b/classndarray_1_1Manager.html new file mode 100644 index 00000000..62c2e99c --- /dev/null +++ b/classndarray_1_1Manager.html @@ -0,0 +1,129 @@ + + + + + + + +ndarray: ndarray::Manager Class Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::Manager Class Reference
+
+
+
+Inheritance diagram for ndarray::Manager:
+
+
+ + +ndarray::ExternalManager< U > +ndarray::SimpleManager< T > + +
+ + + + +

+Public Types

+typedef boost::intrusive_ptr< ManagerPtr
 
+ + + + + +

+Public Member Functions

+int getRC () const
 
+virtual bool isUnique () const
 
+ + + + + +

+Friends

+void intrusive_ptr_add_ref (Manager const *manager)
 
+void intrusive_ptr_release (Manager const *manager)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1Manager.png b/classndarray_1_1Manager.png new file mode 100644 index 00000000..5839f682 Binary files /dev/null and b/classndarray_1_1Manager.png differ diff --git a/classndarray_1_1SimpleManager-members.html b/classndarray_1_1SimpleManager-members.html new file mode 100644 index 00000000..02b34bfd --- /dev/null +++ b/classndarray_1_1SimpleManager-members.html @@ -0,0 +1,95 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::SimpleManager< T > Member List
+
+
+ +

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

+ + + + + + + +
allocate(Size size) (defined in ndarray::SimpleManager< T >)ndarray::SimpleManager< T >inlinestatic
getRC() const (defined in ndarray::Manager)ndarray::Managerinline
isUnique() const (defined in ndarray::SimpleManager< T >)ndarray::SimpleManager< T >inlinevirtual
Manager() (defined in ndarray::Manager)ndarray::Managerinlineexplicitprotected
Ptr typedef (defined in ndarray::Manager)ndarray::Manager
~Manager() (defined in ndarray::Manager)ndarray::Managerinlineprotectedvirtual
+ + + + diff --git a/classndarray_1_1SimpleManager.html b/classndarray_1_1SimpleManager.html new file mode 100644 index 00000000..3d1e5ac2 --- /dev/null +++ b/classndarray_1_1SimpleManager.html @@ -0,0 +1,158 @@ + + + + + + + +ndarray: ndarray::SimpleManager< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::SimpleManager< T > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::SimpleManager< T >:
+
+
+ + +ndarray::Manager + +
+ + + + + + + + + +

+Public Member Functions

virtual bool isUnique () const
 
- Public Member Functions inherited from ndarray::Manager
+int getRC () const
 
+virtual bool isUnique () const
 
+ + + +

+Static Public Member Functions

+static std::pair< Manager::Ptr, T * > allocate (Size size)
 
+ + + + +

+Additional Inherited Members

- Public Types inherited from ndarray::Manager
+typedef boost::intrusive_ptr< ManagerPtr
 
+

Member Function Documentation

+ +

◆ isUnique()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
virtual bool ndarray::SimpleManager< T >::isUnique () const
+
+inlinevirtual
+
+ +

Reimplemented from ndarray::Manager.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1SimpleManager.png b/classndarray_1_1SimpleManager.png new file mode 100644 index 00000000..3fbd604d Binary files /dev/null and b/classndarray_1_1SimpleManager.png differ diff --git a/classndarray_1_1detail_1_1ArrayAccess-members.html b/classndarray_1_1detail_1_1ArrayAccess-members.html new file mode 100644 index 00000000..290b83a9 --- /dev/null +++ b/classndarray_1_1detail_1_1ArrayAccess-members.html @@ -0,0 +1,94 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::ArrayAccess< Array_ > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::ArrayAccess< Array_ >, including all inherited members.

+ + + + + + +
construct(Element *data, CorePtr const &core) (defined in ndarray::detail::ArrayAccess< Array_ >)ndarray::detail::ArrayAccess< Array_ >inlinestatic
Core typedef (defined in ndarray::detail::ArrayAccess< Array_ >)ndarray::detail::ArrayAccess< Array_ >
CorePtr typedef (defined in ndarray::detail::ArrayAccess< Array_ >)ndarray::detail::ArrayAccess< Array_ >
Element typedef (defined in ndarray::detail::ArrayAccess< Array_ >)ndarray::detail::ArrayAccess< Array_ >
getCore(Array_ const &array) (defined in ndarray::detail::ArrayAccess< Array_ >)ndarray::detail::ArrayAccess< Array_ >inlinestatic
+ + + + diff --git a/classndarray_1_1detail_1_1ArrayAccess.html b/classndarray_1_1detail_1_1ArrayAccess.html new file mode 100644 index 00000000..0e723886 --- /dev/null +++ b/classndarray_1_1detail_1_1ArrayAccess.html @@ -0,0 +1,115 @@ + + + + + + + +ndarray: ndarray::detail::ArrayAccess< Array_ > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::ArrayAccess< Array_ > Class Template Reference
+
+
+ + + + + + + + +

+Public Types

+typedef ExpressionTraits< Array_ >::Element Element
 
+typedef ExpressionTraits< Array_ >::Core Core
 
+typedef ExpressionTraits< Array_ >::CorePtr CorePtr
 
+ + + + + +

+Static Public Member Functions

+static CorePtr const & getCore (Array_ const &array)
 
+static Array_ construct (Element *data, CorePtr const &core)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1BinaryOpExpression-members.html b/classndarray_1_1detail_1_1BinaryOpExpression-members.html new file mode 100644 index 00000000..03aac697 --- /dev/null +++ b/classndarray_1_1detail_1_1BinaryOpExpression-members.html @@ -0,0 +1,109 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
_functor (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
_operand1 (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
_operand2 (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
back() constndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >inline
begin() const (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >inline
BinaryOpExpression(Operand1 const &operand1, Operand2 const &operand2, BinaryFunction const &functor) (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >inline
Element typedef (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
empty() constndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >inline
end() const (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >inline
front() constndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >inline
getNumElements() constndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >inline
getShape() const (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >inline
getSize() const (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >inline
Index typedef (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
Iterator typedef (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
ND typedef (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
operator[](Size n) const (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >inline
Reference typedef (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
size() constndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >inline
Value typedef (defined in ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >)ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >
+ + + + diff --git a/classndarray_1_1detail_1_1BinaryOpExpression.html b/classndarray_1_1detail_1_1BinaryOpExpression.html new file mode 100644 index 00000000..27a6e746 --- /dev/null +++ b/classndarray_1_1detail_1_1BinaryOpExpression.html @@ -0,0 +1,263 @@ + + + + + + + +ndarray: ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::BinaryOpExpression< Operand1, Operand2, BinaryFunction, N >:
+
+
+ + +ndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef ExpressionTraits< Self >::Element Element
 
+typedef ExpressionTraits< Self >::ND ND
 
+typedef ExpressionTraits< Self >::Iterator Iterator
 
+typedef ExpressionTraits< Self >::Value Value
 
+typedef ExpressionTraits< Self >::Reference Reference
 
+typedef Vector< Size, N > Index
 
- Public Types inherited from ndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >
+typedef ExpressionTraits< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

BinaryOpExpression (Operand1 const &operand1, Operand2 const &operand2, BinaryFunction const &functor)
 
+Reference operator[] (Size n) const
 
+Iterator begin () const
 
+Iterator end () const
 
+template<int P>
Size getSize () const
 
+Index getShape () const
 
- Public Member Functions inherited from ndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + + +

+Public Attributes

+Operand1 _operand1
 
+Operand2 _operand2
 
+BinaryFunction _functor
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ExpressionBase< BinaryOpExpression< Operand1, Operand2, BinaryFunction, N > >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1BinaryOpExpression.png b/classndarray_1_1detail_1_1BinaryOpExpression.png new file mode 100644 index 00000000..174b193c Binary files /dev/null and b/classndarray_1_1detail_1_1BinaryOpExpression.png differ diff --git a/classndarray_1_1detail_1_1BinaryOpIterator-members.html b/classndarray_1_1detail_1_1BinaryOpIterator-members.html new file mode 100644 index 00000000..055456bf --- /dev/null +++ b/classndarray_1_1detail_1_1BinaryOpIterator-members.html @@ -0,0 +1,97 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >, including all inherited members.

+ + + + + + + + + +
BaseIterator1 typedef (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >
BaseIterator2 typedef (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >
BinaryOpIterator() (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >inline
BinaryOpIterator(BaseIterator1 const &baseIter1, BaseIterator2 const &baseIter2, BinaryFunction const &functor) (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >inline
BinaryOpIterator(BinaryOpIterator const &other) (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >inline
boost::iterator_core_access (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >friend
Reference typedef (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >
Value typedef (defined in ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >)ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >
+ + + + diff --git a/classndarray_1_1detail_1_1BinaryOpIterator.html b/classndarray_1_1detail_1_1BinaryOpIterator.html new file mode 100644 index 00000000..82a73212 --- /dev/null +++ b/classndarray_1_1detail_1_1BinaryOpIterator.html @@ -0,0 +1,131 @@ + + + + + + + +ndarray: ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction >:
+
+
+ +
+ + + + + + + + + + +

+Public Types

+typedef ExpressionTraits< Operand1 >::Iterator BaseIterator1
 
+typedef ExpressionTraits< Operand2 >::Iterator BaseIterator2
 
+typedef ExpressionTraits< Operation >::Value Value
 
+typedef ExpressionTraits< Operation >::Reference Reference
 
+ + + + + +

+Public Member Functions

BinaryOpIterator (BaseIterator1 const &baseIter1, BaseIterator2 const &baseIter2, BinaryFunction const &functor)
 
BinaryOpIterator (BinaryOpIterator const &other)
 
+ + + +

+Friends

+class boost::iterator_core_access
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1BinaryOpIterator.png b/classndarray_1_1detail_1_1BinaryOpIterator.png new file mode 100644 index 00000000..cc65147e Binary files /dev/null and b/classndarray_1_1detail_1_1BinaryOpIterator.png differ diff --git a/classndarray_1_1detail_1_1Core-members.html b/classndarray_1_1detail_1_1Core-members.html new file mode 100644 index 00000000..7955bfc9 --- /dev/null +++ b/classndarray_1_1detail_1_1Core-members.html @@ -0,0 +1,110 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::Core< N > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::Core< N >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
computeOffset(Vector< Size, M > const &index) constndarray::detail::Core< N >inline
ConstPtr typedefndarray::detail::Core< N >
copy() const (defined in ndarray::detail::Core< N >)ndarray::detail::Core< N >inline
Core(Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager) (defined in ndarray::detail::Core< N >)ndarray::detail::Core< N >inlineprotected
Core(Vector< Size, M > const &shape, Manager::Ptr const &manager) (defined in ndarray::detail::Core< N >)ndarray::detail::Core< N >inlineprotected
Core(Vector< Size, M > const &shape, Offset stride, Manager::Ptr const &manager) (defined in ndarray::detail::Core< N >)ndarray::detail::Core< N >inlineprotected
Core(Manager::Ptr const &manager) (defined in ndarray::detail::Core< N >)ndarray::detail::Core< N >inlineprotected
Core(Core const &other) (defined in ndarray::detail::Core< N >)ndarray::detail::Core< N >inlineprotected
create(Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager=Manager::Ptr())ndarray::detail::Core< N >inlinestatic
create(Vector< Size, M > const &shape, DataOrderEnum order, Manager::Ptr const &manager=Manager::Ptr())ndarray::detail::Core< N >inlinestatic
create(Manager::Ptr const &manager=Manager::Ptr())ndarray::detail::Core< N >inlinestatic
fillShape(Vector< Size, M > &shape) constndarray::detail::Core< N >inline
fillStrides(Vector< Offset, M > &strides) constndarray::detail::Core< N >inline
getNumElements() constndarray::detail::Core< N >inline
getSize() constndarray::detail::Core< N >inline
getStride() constndarray::detail::Core< N >inline
ND typedefndarray::detail::Core< N >
Ptr typedefndarray::detail::Core< N >
setSize(Size size)ndarray::detail::Core< N >inline
setStride(Offset stride)ndarray::detail::Core< N >inline
Super typedefndarray::detail::Core< N >
+ + + + diff --git a/classndarray_1_1detail_1_1Core.html b/classndarray_1_1detail_1_1Core.html new file mode 100644 index 00000000..cf9cf469 --- /dev/null +++ b/classndarray_1_1detail_1_1Core.html @@ -0,0 +1,194 @@ + + + + + + + +ndarray: ndarray::detail::Core< N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::Core< N > Class Template Reference
+
+
+ + + + + + + + + + + + + + +

+Public Types

+typedef boost::mpl::int_< N > ND
 number of dimensions
 
+typedef Core< N-1 > Super
 base class
 
+typedef boost::intrusive_ptr< CorePtr
 intrusive_ptr to Core
 
+typedef boost::intrusive_ptr< Core const > ConstPtr
 const intrusive_ptr to Core
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Ptr copy () const
 
+Size getSize () const
 Return the size of the Nth dimension.
 
+Offset getStride () const
 Return the stride of the Nth dimension.
 
+void setSize (Size size)
 Set the size of the Nth dimension.
 
+void setStride (Offset stride)
 Set the stride of the Nth dimension.
 
+template<int M>
Offset computeOffset (Vector< Size, M > const &index) const
 Recursively compute the offset to an element.
 
+template<int M>
void fillShape (Vector< Size, M > &shape) const
 Recursively fill a shape vector.
 
+template<int M>
void fillStrides (Vector< Offset, M > &strides) const
 Recursively fill a strides vector.
 
+Size getNumElements () const
 Recursively determine the total number of elements.
 
+ + + + + + + + + + + + +

+Static Public Member Functions

+template<int M>
static Ptr create (Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager=Manager::Ptr())
 Create a Core::Ptr with the given shape, strides, and manager.
 
+template<int M>
static Ptr create (Vector< Size, M > const &shape, DataOrderEnum order, Manager::Ptr const &manager=Manager::Ptr())
 Create a Core::Ptr with the given shape and manager with contiguous strides.
 
+static Ptr create (Manager::Ptr const &manager=Manager::Ptr())
 Create a Core::Ptr with the given manager and zero shape and strides.
 
+ + + + + + + + + + + + + + +

+Protected Member Functions

+template<int M>
 Core (Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager)
 
+template<int M>
 Core (Vector< Size, M > const &shape, Manager::Ptr const &manager)
 
+template<int M>
 Core (Vector< Size, M > const &shape, Offset stride, Manager::Ptr const &manager)
 
Core (Manager::Ptr const &manager)
 
Core (Core const &other)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1Core_3_010_01_4-members.html b/classndarray_1_1detail_1_1Core_3_010_01_4-members.html new file mode 100644 index 00000000..3fc1415a --- /dev/null +++ b/classndarray_1_1detail_1_1Core_3_010_01_4-members.html @@ -0,0 +1,111 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::Core< 0 > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::Core< 0 >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
computeOffset(Vector< Size, M > const &index) constndarray::detail::Core< 0 >inline
ConstPtr typedef (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >
copy() const (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inline
Core(Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager) (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inlineprotected
Core(Vector< Size, M > const &shape, Manager::Ptr const &manager) (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inlineprotected
Core(Vector< Size, M > const &shape, Offset stride, Manager::Ptr const &manager) (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inlineprotected
Core(Manager::Ptr const &manager) (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inlineprotected
Core(Core const &other) (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inlineprotected
fillShape(Vector< Size, M > const &shape) constndarray::detail::Core< 0 >inline
fillStrides(Vector< Offset, M > const &strides) constndarray::detail::Core< 0 >inline
getManager() constndarray::detail::Core< 0 >inline
getNumElements() constndarray::detail::Core< 0 >inline
getRC() constndarray::detail::Core< 0 >inline
getSize() const (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inline
getStride() const (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inline
intrusive_ptr_add_ref (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >friend
intrusive_ptr_release (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >friend
isUnique() constndarray::detail::Core< 0 >inline
ND typedef (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >
Ptr typedef (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >
setManager(Manager::Ptr const &manager)ndarray::detail::Core< 0 >inline
~Core() (defined in ndarray::detail::Core< 0 >)ndarray::detail::Core< 0 >inlineprotectedvirtual
+ + + + diff --git a/classndarray_1_1detail_1_1Core_3_010_01_4.html b/classndarray_1_1detail_1_1Core_3_010_01_4.html new file mode 100644 index 00000000..5b42f75e --- /dev/null +++ b/classndarray_1_1detail_1_1Core_3_010_01_4.html @@ -0,0 +1,185 @@ + + + + + + + +ndarray: ndarray::detail::Core< 0 > Class Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::Core< 0 > Class Reference
+
+
+ + + + + + + + +

+Public Types

+typedef boost::mpl::int_< 0 > ND
 
+typedef boost::intrusive_ptr< CorePtr
 
+typedef boost::intrusive_ptr< Core const > ConstPtr
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Ptr copy () const
 
+Size getSize () const
 
+Offset getStride () const
 
+template<int M>
Offset computeOffset (Vector< Size, M > const &index) const
 Recursively compute the offset to an element.
 
+Manager::Ptr getManager () const
 Return the Manager that determines the lifetime of the array data.
 
+void setManager (Manager::Ptr const &manager)
 Set the Manager that determines the lifetime of the array data.
 
+template<int M>
void fillShape (Vector< Size, M > const &shape) const
 Recursively fill a shape vector.
 
+template<int M>
void fillStrides (Vector< Offset, M > const &strides) const
 Recursively fill a strides vector.
 
+Size getNumElements () const
 Recursively determine the total number of elements.
 
+int getRC () const
 Return the reference count (for debugging purposes).
 
+bool isUnique () const
 Return true if the Core and Manager reference counts are 1 and the manager is unique.
 
+ + + + + + + + + + + + + + +

+Protected Member Functions

+template<int M>
 Core (Vector< Size, M > const &shape, Vector< Offset, M > const &strides, Manager::Ptr const &manager)
 
+template<int M>
 Core (Vector< Size, M > const &shape, Manager::Ptr const &manager)
 
+template<int M>
 Core (Vector< Size, M > const &shape, Offset stride, Manager::Ptr const &manager)
 
Core (Manager::Ptr const &manager)
 
Core (Core const &other)
 
+ + + + + +

+Friends

+void intrusive_ptr_add_ref (Core const *core)
 
+void intrusive_ptr_release (Core const *core)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1CountingExpression-members.html b/classndarray_1_1detail_1_1CountingExpression-members.html new file mode 100644 index 00000000..4360b7d4 --- /dev/null +++ b/classndarray_1_1detail_1_1CountingExpression-members.html @@ -0,0 +1,108 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::CountingExpression Member List
+
+
+ +

This is the complete list of members for ndarray::detail::CountingExpression, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
back() constndarray::ExpressionBase< CountingExpression >inline
begin() const (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpressioninline
CountingExpression(int stop=0) (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpressioninline
Element typedef (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpression
empty() constndarray::ExpressionBase< CountingExpression >inline
end() const (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpressioninline
front() constndarray::ExpressionBase< CountingExpression >inline
getNumElements() constndarray::ExpressionBase< CountingExpression >inline
getShape() const (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpressioninline
getSize() const (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpressioninline
Index typedef (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpression
Iterator typedef (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpression
ND typedef (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpression
operator[](int n) const (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpressioninline
ExpressionBase< CountingExpression >::operator[](Size n) constndarray::ExpressionBase< CountingExpression >inline
Reference typedef (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpression
Self typedefndarray::ExpressionBase< CountingExpression >
size() constndarray::ExpressionBase< CountingExpression >inline
Value typedef (defined in ndarray::detail::CountingExpression)ndarray::detail::CountingExpression
+ + + + diff --git a/classndarray_1_1detail_1_1CountingExpression.html b/classndarray_1_1detail_1_1CountingExpression.html new file mode 100644 index 00000000..1c853b52 --- /dev/null +++ b/classndarray_1_1detail_1_1CountingExpression.html @@ -0,0 +1,250 @@ + + + + + + + +ndarray: ndarray::detail::CountingExpression Class Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::CountingExpression Class Reference
+
+
+
+Inheritance diagram for ndarray::detail::CountingExpression:
+
+
+ + +ndarray::ExpressionBase< CountingExpression > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef ExpressionTraits< CountingExpression >::Element Element
 
+typedef ExpressionTraits< CountingExpression >::ND ND
 
+typedef ExpressionTraits< CountingExpression >::Iterator Iterator
 
+typedef ExpressionTraits< CountingExpression >::Value Value
 
+typedef ExpressionTraits< CountingExpression >::Reference Reference
 
+typedef Vector< int, 1 > Index
 
- Public Types inherited from ndarray::ExpressionBase< CountingExpression >
+typedef ExpressionTraits< CountingExpression >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< CountingExpression >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< CountingExpression >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< CountingExpression >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< CountingExpression >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef CountingExpression Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

CountingExpression (int stop=0)
 
+Reference operator[] (int n) const
 
+Iterator begin () const
 
+Iterator end () const
 
+template<int P>
int getSize () const
 
+Index getShape () const
 
- Public Member Functions inherited from ndarray::ExpressionBase< CountingExpression >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ExpressionBase< CountingExpression >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1CountingExpression.png b/classndarray_1_1detail_1_1CountingExpression.png new file mode 100644 index 00000000..9060998e Binary files /dev/null and b/classndarray_1_1detail_1_1CountingExpression.png differ diff --git a/classndarray_1_1detail_1_1ExternalInitializer-members.html b/classndarray_1_1detail_1_1ExternalInitializer-members.html new file mode 100644 index 00000000..aba6f497 --- /dev/null +++ b/classndarray_1_1detail_1_1ExternalInitializer-members.html @@ -0,0 +1,91 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::ExternalInitializer< T, N, Owner > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::ExternalInitializer< T, N, Owner >, including all inherited members.

+ + + +
apply() const (defined in ndarray::detail::ExternalInitializer< T, N, Owner >)ndarray::detail::ExternalInitializer< T, N, Owner >inline
ExternalInitializer(T *data, Vector< Size, N > const &shape, Vector< Offset, N > const &strides, Owner const &owner) (defined in ndarray::detail::ExternalInitializer< T, N, Owner >)ndarray::detail::ExternalInitializer< T, N, Owner >inline
+ + + + diff --git a/classndarray_1_1detail_1_1ExternalInitializer.html b/classndarray_1_1detail_1_1ExternalInitializer.html new file mode 100644 index 00000000..dfc8e800 --- /dev/null +++ b/classndarray_1_1detail_1_1ExternalInitializer.html @@ -0,0 +1,119 @@ + + + + + + + +ndarray: ndarray::detail::ExternalInitializer< T, N, Owner > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::ExternalInitializer< T, N, Owner > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::ExternalInitializer< T, N, Owner >:
+
+
+ + +ndarray::detail::Initializer< N, ExternalInitializer< T, N, Owner > > + +
+ + + + + + + + + + + + +

+Public Member Functions

+template<typename Target >
Target apply () const
 
ExternalInitializer (T *data, Vector< Size, N > const &shape, Vector< Offset, N > const &strides, Owner const &owner)
 
- Public Member Functions inherited from ndarray::detail::Initializer< N, ExternalInitializer< T, N, Owner > >
operator Array< T, N, C > () const
 
operator ArrayRef< T, N, C > () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1ExternalInitializer.png b/classndarray_1_1detail_1_1ExternalInitializer.png new file mode 100644 index 00000000..015b8f65 Binary files /dev/null and b/classndarray_1_1detail_1_1ExternalInitializer.png differ diff --git a/classndarray_1_1detail_1_1Formatter-members.html b/classndarray_1_1detail_1_1Formatter-members.html new file mode 100644 index 00000000..1414eb0f --- /dev/null +++ b/classndarray_1_1detail_1_1Formatter-members.html @@ -0,0 +1,90 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::Formatter< Derived, N > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::Formatter< Derived, N >, including all inherited members.

+ + +
apply(FormatOptions const &options, std::ostream &os, ExpressionBase< Derived > const &expr, int level) (defined in ndarray::detail::Formatter< Derived, N >)ndarray::detail::Formatter< Derived, N >inlinestatic
+ + + + diff --git a/classndarray_1_1detail_1_1Formatter.html b/classndarray_1_1detail_1_1Formatter.html new file mode 100644 index 00000000..7caf1f34 --- /dev/null +++ b/classndarray_1_1detail_1_1Formatter.html @@ -0,0 +1,99 @@ + + + + + + + +ndarray: ndarray::detail::Formatter< Derived, N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::Formatter< Derived, N > Class Template Reference
+
+
+ + + + +

+Static Public Member Functions

+static void apply (FormatOptions const &options, std::ostream &os, ExpressionBase< Derived > const &expr, int level)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1Formatter_3_01Derived_00_011_01_4-members.html b/classndarray_1_1detail_1_1Formatter_3_01Derived_00_011_01_4-members.html new file mode 100644 index 00000000..1ac8fbc9 --- /dev/null +++ b/classndarray_1_1detail_1_1Formatter_3_01Derived_00_011_01_4-members.html @@ -0,0 +1,90 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::Formatter< Derived, 1 > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::Formatter< Derived, 1 >, including all inherited members.

+ + +
apply(FormatOptions const &options, std::ostream &os, ExpressionBase< Derived > const &expr, int level) (defined in ndarray::detail::Formatter< Derived, 1 >)ndarray::detail::Formatter< Derived, 1 >inlinestatic
+ + + + diff --git a/classndarray_1_1detail_1_1Formatter_3_01Derived_00_011_01_4.html b/classndarray_1_1detail_1_1Formatter_3_01Derived_00_011_01_4.html new file mode 100644 index 00000000..5928b47b --- /dev/null +++ b/classndarray_1_1detail_1_1Formatter_3_01Derived_00_011_01_4.html @@ -0,0 +1,99 @@ + + + + + + + +ndarray: ndarray::detail::Formatter< Derived, 1 > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::Formatter< Derived, 1 > Class Template Reference
+
+
+ + + + +

+Static Public Member Functions

+static void apply (FormatOptions const &options, std::ostream &os, ExpressionBase< Derived > const &expr, int level)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1Initializer-members.html b/classndarray_1_1detail_1_1Initializer-members.html new file mode 100644 index 00000000..b0979801 --- /dev/null +++ b/classndarray_1_1detail_1_1Initializer-members.html @@ -0,0 +1,91 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::Initializer< N, Derived > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::Initializer< N, Derived >, including all inherited members.

+ + + +
operator Array< T, N, C >() const (defined in ndarray::detail::Initializer< N, Derived >)ndarray::detail::Initializer< N, Derived >inline
operator ArrayRef< T, N, C >() const (defined in ndarray::detail::Initializer< N, Derived >)ndarray::detail::Initializer< N, Derived >inline
+ + + + diff --git a/classndarray_1_1detail_1_1Initializer.html b/classndarray_1_1detail_1_1Initializer.html new file mode 100644 index 00000000..50011e54 --- /dev/null +++ b/classndarray_1_1detail_1_1Initializer.html @@ -0,0 +1,104 @@ + + + + + + + +ndarray: ndarray::detail::Initializer< N, Derived > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::Initializer< N, Derived > Class Template Reference
+
+
+ + + + + + + + +

+Public Member Functions

+template<typename T , int C>
 operator Array< T, N, C > () const
 
+template<typename T , int C>
 operator ArrayRef< T, N, C > () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1NestedIterator-members.html b/classndarray_1_1detail_1_1NestedIterator-members.html new file mode 100644 index 00000000..5ea2d670 --- /dev/null +++ b/classndarray_1_1detail_1_1NestedIterator-members.html @@ -0,0 +1,102 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::NestedIterator< T, N, C > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::NestedIterator< T, N, C >, including all inherited members.

+ + + + + + + + + + + + + + +
boost::iterator_core_access (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >friend
NestedIterator (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >friend
NestedIterator() (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
NestedIterator(Reference const &ref, Offset stride) (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
NestedIterator(NestedIterator const &other) (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
NestedIterator(NestedIterator< T_, N, C_ > const &other) (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
operator*() const (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
operator->() (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
operator=(NestedIterator const &other) (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
operator=(NestedIterator< T_, N, C_ > const &other) (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
operator[](Size n) const (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >inline
Reference typedef (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >
Value typedef (defined in ndarray::detail::NestedIterator< T, N, C >)ndarray::detail::NestedIterator< T, N, C >
+ + + + diff --git a/classndarray_1_1detail_1_1NestedIterator.html b/classndarray_1_1detail_1_1NestedIterator.html new file mode 100644 index 00000000..13304bff --- /dev/null +++ b/classndarray_1_1detail_1_1NestedIterator.html @@ -0,0 +1,145 @@ + + + + + + + +ndarray: ndarray::detail::NestedIterator< T, N, C > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::NestedIterator< T, N, C > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::NestedIterator< T, N, C >:
+
+
+ +
+ + + + + + +

+Public Types

+typedef ArrayTraits< T, N, C >::Value Value
 
+typedef ArrayTraits< T, N, C >::Reference Reference
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Reference operator[] (Size n) const
 
+Reference const & operator* () const
 
+Reference const * operator-> ()
 
NestedIterator (Reference const &ref, Offset stride)
 
NestedIterator (NestedIterator const &other)
 
+template<typename T_ , int C_>
 NestedIterator (NestedIterator< T_, N, C_ > const &other)
 
+NestedIteratoroperator= (NestedIterator const &other)
 
+template<typename T_ , int C_>
NestedIteratoroperator= (NestedIterator< T_, N, C_ > const &other)
 
+ + + +

+Friends

+class boost::iterator_core_access
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1NestedIterator.png b/classndarray_1_1detail_1_1NestedIterator.png new file mode 100644 index 00000000..2c51d379 Binary files /dev/null and b/classndarray_1_1detail_1_1NestedIterator.png differ diff --git a/classndarray_1_1detail_1_1RangeTransformer-members.html b/classndarray_1_1detail_1_1RangeTransformer-members.html new file mode 100644 index 00000000..250dfc4d --- /dev/null +++ b/classndarray_1_1detail_1_1RangeTransformer-members.html @@ -0,0 +1,93 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::RangeTransformer< T > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::RangeTransformer< T >, including all inherited members.

+ + + + + +
argument_type typedef (defined in ndarray::detail::RangeTransformer< T >)ndarray::detail::RangeTransformer< T >
operator()(int n) const (defined in ndarray::detail::RangeTransformer< T >)ndarray::detail::RangeTransformer< T >inline
RangeTransformer(T const &offset, T const &scale) (defined in ndarray::detail::RangeTransformer< T >)ndarray::detail::RangeTransformer< T >inlineexplicit
result_type typedef (defined in ndarray::detail::RangeTransformer< T >)ndarray::detail::RangeTransformer< T >
+ + + + diff --git a/classndarray_1_1detail_1_1RangeTransformer.html b/classndarray_1_1detail_1_1RangeTransformer.html new file mode 100644 index 00000000..03a78f3c --- /dev/null +++ b/classndarray_1_1detail_1_1RangeTransformer.html @@ -0,0 +1,112 @@ + + + + + + + +ndarray: ndarray::detail::RangeTransformer< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::RangeTransformer< T > Class Template Reference
+
+
+ + + + + + +

+Public Types

+typedef int argument_type
 
+typedef T result_type
 
+ + + + + +

+Public Member Functions

RangeTransformer (T const &offset, T const &scale)
 
+T operator() (int n) const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1SimpleInitializer-members.html b/classndarray_1_1detail_1_1SimpleInitializer-members.html new file mode 100644 index 00000000..9f13eea5 --- /dev/null +++ b/classndarray_1_1detail_1_1SimpleInitializer-members.html @@ -0,0 +1,91 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::SimpleInitializer< N > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::SimpleInitializer< N >, including all inherited members.

+ + + +
apply() const (defined in ndarray::detail::SimpleInitializer< N >)ndarray::detail::SimpleInitializer< N >inline
SimpleInitializer(Vector< Size, N > const &shape) (defined in ndarray::detail::SimpleInitializer< N >)ndarray::detail::SimpleInitializer< N >inlineexplicit
+ + + + diff --git a/classndarray_1_1detail_1_1SimpleInitializer.html b/classndarray_1_1detail_1_1SimpleInitializer.html new file mode 100644 index 00000000..f2c7601b --- /dev/null +++ b/classndarray_1_1detail_1_1SimpleInitializer.html @@ -0,0 +1,119 @@ + + + + + + + +ndarray: ndarray::detail::SimpleInitializer< N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::SimpleInitializer< N > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::SimpleInitializer< N >:
+
+
+ + +ndarray::detail::Initializer< N, SimpleInitializer< N > > + +
+ + + + + + + + + + + + +

+Public Member Functions

+template<typename Target >
Target apply () const
 
SimpleInitializer (Vector< Size, N > const &shape)
 
- Public Member Functions inherited from ndarray::detail::Initializer< N, SimpleInitializer< N > >
operator Array< T, N, C > () const
 
operator ArrayRef< T, N, C > () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1SimpleInitializer.png b/classndarray_1_1detail_1_1SimpleInitializer.png new file mode 100644 index 00000000..f390555b Binary files /dev/null and b/classndarray_1_1detail_1_1SimpleInitializer.png differ diff --git a/classndarray_1_1detail_1_1StridedIterator-members.html b/classndarray_1_1detail_1_1StridedIterator-members.html new file mode 100644 index 00000000..e2ddc64a --- /dev/null +++ b/classndarray_1_1detail_1_1StridedIterator-members.html @@ -0,0 +1,99 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::StridedIterator< T > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::StridedIterator< T >, including all inherited members.

+ + + + + + + + + + + +
boost::iterator_core_access (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >friend
operator=(StridedIterator const &other) (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >inline
operator=(StridedIterator< U > const &other) (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >inline
Reference typedef (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >
StridedIterator (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >friend
StridedIterator() (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >inline
StridedIterator(T *data, Offset stride) (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >inline
StridedIterator(StridedIterator const &other) (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >inline
StridedIterator(StridedIterator< U > const &other) (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >inline
Value typedef (defined in ndarray::detail::StridedIterator< T >)ndarray::detail::StridedIterator< T >
+ + + + diff --git a/classndarray_1_1detail_1_1StridedIterator.html b/classndarray_1_1detail_1_1StridedIterator.html new file mode 100644 index 00000000..c7851a74 --- /dev/null +++ b/classndarray_1_1detail_1_1StridedIterator.html @@ -0,0 +1,136 @@ + + + + + + + +ndarray: ndarray::detail::StridedIterator< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::StridedIterator< T > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::StridedIterator< T >:
+
+
+ +
+ + + + + + +

+Public Types

+typedef T Value
 
+typedef T & Reference
 
+ + + + + + + + + + + + + +

+Public Member Functions

StridedIterator (T *data, Offset stride)
 
StridedIterator (StridedIterator const &other)
 
+template<typename U >
 StridedIterator (StridedIterator< U > const &other)
 
+StridedIteratoroperator= (StridedIterator const &other)
 
+template<typename U >
StridedIteratoroperator= (StridedIterator< U > const &other)
 
+ + + +

+Friends

+class boost::iterator_core_access
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1StridedIterator.png b/classndarray_1_1detail_1_1StridedIterator.png new file mode 100644 index 00000000..3d0e796f Binary files /dev/null and b/classndarray_1_1detail_1_1StridedIterator.png differ diff --git a/classndarray_1_1detail_1_1UnaryOpExpression-members.html b/classndarray_1_1detail_1_1UnaryOpExpression-members.html new file mode 100644 index 00000000..8806bd0c --- /dev/null +++ b/classndarray_1_1detail_1_1UnaryOpExpression-members.html @@ -0,0 +1,108 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
_functor (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
_operand (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
back() constndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >inline
begin() const (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >inline
Element typedef (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
empty() constndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >inline
end() const (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >inline
front() constndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >inline
getNumElements() constndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >inline
getShape() const (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >inline
getSize() const (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >inline
Index typedef (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
Iterator typedef (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
ND typedef (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
operator[](Size n) const (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >inline
Reference typedef (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
size() constndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >inline
UnaryOpExpression(Operand const &operand, UnaryFunction const &functor) (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >inline
Value typedef (defined in ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >)ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >
+ + + + diff --git a/classndarray_1_1detail_1_1UnaryOpExpression.html b/classndarray_1_1detail_1_1UnaryOpExpression.html new file mode 100644 index 00000000..e0e90eeb --- /dev/null +++ b/classndarray_1_1detail_1_1UnaryOpExpression.html @@ -0,0 +1,260 @@ + + + + + + + +ndarray: ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::UnaryOpExpression< Operand, UnaryFunction, N >:
+
+
+ + +ndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef ExpressionTraits< Self >::Element Element
 
+typedef ExpressionTraits< Self >::ND ND
 
+typedef ExpressionTraits< Self >::Iterator Iterator
 
+typedef ExpressionTraits< Self >::Value Value
 
+typedef ExpressionTraits< Self >::Reference Reference
 
+typedef Vector< Size, N > Index
 
- Public Types inherited from ndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >
+typedef ExpressionTraits< UnaryOpExpression< Operand, UnaryFunction, N > >::Element Element
 Data type of expression elements.
 
+typedef ExpressionTraits< UnaryOpExpression< Operand, UnaryFunction, N > >::ND ND
 Number of dimensions (boost::mpl::int_).
 
+typedef ExpressionTraits< UnaryOpExpression< Operand, UnaryFunction, N > >::Iterator Iterator
 Nested expression or element iterator.
 
+typedef ExpressionTraits< UnaryOpExpression< Operand, UnaryFunction, N > >::Reference Reference
 Nested expression or element reference.
 
+typedef ExpressionTraits< UnaryOpExpression< Operand, UnaryFunction, N > >::Value Value
 Nested expression or element value type.
 
+typedef Vector< Size, ND::value > Index
 Vector type for N-dimensional indices.
 
+typedef UnaryOpExpression< Operand, UnaryFunction, N > Self
 CRTP derived type.
 
+typedef Value value_type
 
+typedef Iterator iterator
 
+typedef Iterator const_iterator
 
+typedef Reference reference
 
+typedef Reference const_reference
 
+typedef Iterator pointer
 
+typedef Offset difference_type
 
+typedef Size size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

UnaryOpExpression (Operand const &operand, UnaryFunction const &functor)
 
+Reference operator[] (Size n) const
 
+Iterator begin () const
 
+Iterator end () const
 
+template<int P>
Size getSize () const
 
+Index getShape () const
 
- Public Member Functions inherited from ndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >
+Reference operator[] (Size n) const
 Return a single nested expression or element.
 
+Reference front () const
 Return the first nested expression or element.
 
+Reference back () const
 Return the last nested expression or element.
 
+Iterator begin () const
 Return an Iterator to the beginning of the expression.
 
+Iterator end () const
 Return an Iterator to one past the end of the expression.
 
+Size getSize () const
 Return the size of a specific dimension.
 
+Index getShape () const
 Return a Vector of the sizes of all dimensions.
 
+Size getNumElements () const
 Return the total number of elements in the expression.
 
+size_type size () const
 Return the size of the first dimension.
 
+bool empty () const
 Return true if the first dimension has no elements.
 
+ + + + + +

+Public Attributes

+Operand _operand
 
+UnaryFunction _functor
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ndarray::ExpressionBase< UnaryOpExpression< Operand, UnaryFunction, N > >
+SelfgetSelf ()
 
+Self const & getSelf () const
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1UnaryOpExpression.png b/classndarray_1_1detail_1_1UnaryOpExpression.png new file mode 100644 index 00000000..f250bb32 Binary files /dev/null and b/classndarray_1_1detail_1_1UnaryOpExpression.png differ diff --git a/classndarray_1_1detail_1_1UnaryOpIterator-members.html b/classndarray_1_1detail_1_1UnaryOpIterator-members.html new file mode 100644 index 00000000..9b3817e3 --- /dev/null +++ b/classndarray_1_1detail_1_1UnaryOpIterator-members.html @@ -0,0 +1,96 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray::detail::UnaryOpIterator< Operand, UnaryFunction > Member List
+
+
+ +

This is the complete list of members for ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >, including all inherited members.

+ + + + + + + + +
BaseIterator typedef (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >
boost::iterator_core_access (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >friend
Reference typedef (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >
UnaryOpIterator() (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >inline
UnaryOpIterator(BaseIterator const &baseIter, UnaryFunction const &functor) (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >inline
UnaryOpIterator(UnaryOpIterator const &other) (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >inline
Value typedef (defined in ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >)ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >
+ + + + diff --git a/classndarray_1_1detail_1_1UnaryOpIterator.html b/classndarray_1_1detail_1_1UnaryOpIterator.html new file mode 100644 index 00000000..dfc4a840 --- /dev/null +++ b/classndarray_1_1detail_1_1UnaryOpIterator.html @@ -0,0 +1,128 @@ + + + + + + + +ndarray: ndarray::detail::UnaryOpIterator< Operand, UnaryFunction > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
ndarray::detail::UnaryOpIterator< Operand, UnaryFunction > Class Template Reference
+
+
+
+Inheritance diagram for ndarray::detail::UnaryOpIterator< Operand, UnaryFunction >:
+
+
+ +
+ + + + + + + + +

+Public Types

+typedef ExpressionTraits< Operand >::Iterator BaseIterator
 
+typedef ExpressionTraits< Operation >::Value Value
 
+typedef ExpressionTraits< Operation >::Reference Reference
 
+ + + + + +

+Public Member Functions

UnaryOpIterator (BaseIterator const &baseIter, UnaryFunction const &functor)
 
UnaryOpIterator (UnaryOpIterator const &other)
 
+ + + +

+Friends

+class boost::iterator_core_access
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classndarray_1_1detail_1_1UnaryOpIterator.png b/classndarray_1_1detail_1_1UnaryOpIterator.png new file mode 100644 index 00000000..322567f7 Binary files /dev/null and b/classndarray_1_1detail_1_1UnaryOpIterator.png differ diff --git a/classpybind11_1_1detail_1_1type__caster_3_01ndarray_1_1Array_3_01T_00_01N_00_01C_01_4_01_4-members.html b/classpybind11_1_1detail_1_1type__caster_3_01ndarray_1_1Array_3_01T_00_01N_00_01C_01_4_01_4-members.html new file mode 100644 index 00000000..498cb568 --- /dev/null +++ b/classpybind11_1_1detail_1_1type__caster_3_01ndarray_1_1Array_3_01T_00_01N_00_01C_01_4_01_4-members.html @@ -0,0 +1,97 @@ + + + + + + + +ndarray: Member List + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
pybind11::detail::type_caster< ndarray::Array< T, N, C > > Member List
+
+
+ +

This is the complete list of members for pybind11::detail::type_caster< ndarray::Array< T, N, C > >, including all inherited members.

+ + + + + + + + + +
cast(const ndarray::Array< T, N, C > &src, return_value_policy, handle) (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >inlinestatic
cast(const ndarray::Array< T, N, C > *src, return_value_policy policy, handle parent) (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >inlinestatic
cast_op_type typedef (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >
load(handle src, bool) (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >inline
name (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >static
operator ndarray::Array< T, N, C > &() (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >inline
operator ndarray::Array< T, N, C > *() (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >inline
set_value() (defined in pybind11::detail::type_caster< ndarray::Array< T, N, C > >)pybind11::detail::type_caster< ndarray::Array< T, N, C > >inline
+ + + + diff --git a/classpybind11_1_1detail_1_1type__caster_3_01ndarray_1_1Array_3_01T_00_01N_00_01C_01_4_01_4.html b/classpybind11_1_1detail_1_1type__caster_3_01ndarray_1_1Array_3_01T_00_01N_00_01C_01_4_01_4.html new file mode 100644 index 00000000..15059a0e --- /dev/null +++ b/classpybind11_1_1detail_1_1type__caster_3_01ndarray_1_1Array_3_01T_00_01N_00_01C_01_4_01_4.html @@ -0,0 +1,133 @@ + + + + + + + +ndarray: pybind11::detail::type_caster< ndarray::Array< T, N, C > > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
pybind11::detail::type_caster< ndarray::Array< T, N, C > > Class Template Reference
+
+
+ + + + + +

+Public Types

+template<typename _T >
using cast_op_type = pybind11::detail::cast_op_type< _T >
 
+ + + + + + + + + +

+Public Member Functions

+bool load (handle src, bool)
 
+void set_value ()
 
operator ndarray::Array< T, N, C > * ()
 
operator ndarray::Array< T, N, C > & ()
 
+ + + + + +

+Static Public Member Functions

+static handle cast (const ndarray::Array< T, N, C > &src, return_value_policy, handle)
 
+static handle cast (const ndarray::Array< T, N, C > *src, return_value_policy policy, handle parent)
 
+ + + +

+Static Public Attributes

+static constexpr auto name = _("numpy.ndarray")
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 00000000..98cc2c90 Binary files /dev/null and b/closed.png differ diff --git a/dir_a77cade9321fd3104f77bb58a6231bfa.html b/dir_a77cade9321fd3104f77bb58a6231bfa.html new file mode 100644 index 00000000..8000db74 --- /dev/null +++ b/dir_a77cade9321fd3104f77bb58a6231bfa.html @@ -0,0 +1,111 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/detail Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
detail Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Files

 ArrayAccess.h
 Definitions for ArrayAccess.
 
 BinaryOp.h
 Lazy binary expression templates.
 
 Core.h
 Definitions for Core.
 
 NestedIterator.h
 Definition of NestedIterator.
 
 StridedIterator.h
 Definition of StridedIterator.
 
 UnaryOp.h
 Lazy unary expression templates.
 
 ViewBuilder.h
 Implementation of arbitrary views into arrays.
 
+
+ + + + diff --git a/dir_ac74797f0b787ddb83590f17abce6693.html b/dir_ac74797f0b787ddb83590f17abce6693.html new file mode 100644 index 00000000..7592ef02 --- /dev/null +++ b/dir_ac74797f0b787ddb83590f17abce6693.html @@ -0,0 +1,163 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ndarray Directory Reference
+
+
+ + + + + + +

+Directories

 detail
 
 fft
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 arange.h
 Expression classes to generate regularly-spaced ranges of values.
 
 Array.h
 Definitions for Array.
 
 ArrayBase.h
 Definitions for ArrayBase.
 
 ArrayBaseN.h
 Definition of ArrayBaseN, a dimension-specialized CRTP base class for Array and ArrayRef.
 
 ArrayRef.h
 Definitions for ArrayRef.
 
 ArrayTraits.h
 Traits for Array.
 
 casts.h
 Specialized casts for Array.
 
 eigen.h
 Functions that return an Eigen Map non-reference-counted view into an ndarray::Array.
 
 eigen_fwd.h
 Forward declarations for ndarray/eigen interface.
 
 ExpressionBase.h
 Definitions for ExpressionBase.
 
 ExpressionTraits.h
 Traits for Expression.
 
 fft.h
 Main public header file for ndarray FFT library.
 
 fft_fwd.h
 Forward declarations and default template parameters for ndarray/fft.
 
 formatting.h
 iostream output support for Expression.
 
 initialization.h
 Construction functions for array.
 
 Manager.h
 Definition of Manager, which manages the ownership of array data.
 
 operators.h
 Arithmetic and logical operators for Array.
 
 pybind11.h
 Public header file for pybind11-based Python support.
 
 types.h
 Numeric type traits.
 
 Vector.h
 Definition for Vector.
 
 vectorize.h
 Code to apply arbitrary scalar functors to arrays.
 
 views.h
 Public interface for arbitrary views into arrays.
 
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 00000000..412c39a5 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,101 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
include Directory Reference
+
+
+ + + + +

+Directories

 ndarray
 
+ + + + + + + +

+Files

 ndarray.h
 Main public header file for ndarray.
 
 ndarray_fwd.h
 Forward declarations and default template parameters for ndarray.
 
+
+ + + + diff --git a/dir_d8606f243c572c662f69ad32ff84d64c.html b/dir_d8606f243c572c662f69ad32ff84d64c.html new file mode 100644 index 00000000..e447e269 --- /dev/null +++ b/dir_d8606f243c572c662f69ad32ff84d64c.html @@ -0,0 +1,102 @@ + + + + + + + +ndarray: /home/runner/work/ndarray/ndarray/include/ndarray/fft Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
ndarray +
+
NumPy-friendly multidimensional arrays in C++
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
fft Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

 FFTWTraits.h
 Traits classes that wrap FFTW in a template-friendly interface.
 
 FourierOps.h
 Common Fourier-space operations.
 
 FourierTraits.h
 Traits classes to handle real-data and complex-data FFTs in a template-friendly way.
 
 FourierTransform.h
 Definitions for FourierTransform.
 
+
+ + + + diff --git a/doc.svg b/doc.svg new file mode 100644 index 00000000..0b928a53 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt deleted file mode 100644 index 5f154054..00000000 --- a/doc/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf.in - ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf @ONLY) -add_custom_target(doc ${DOXYGEN_EXECUTABLE} - ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Running Doxygen" VERBATIM) - diff --git a/doc/doxygen.conf.in b/doc/doxygen.conf.in deleted file mode 100644 index d33176d1..00000000 --- a/doc/doxygen.conf.in +++ /dev/null @@ -1,2280 +0,0 @@ -# Doxyfile 1.8.5 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "ndarray" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "NumPy-friendly multidimensional arrays in C++" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese- -# Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi, -# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en, -# Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, -# Turkish, Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = @CMAKE_CURRENT_SOURCE_DIR@/../include/ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = *.h - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /