diff --git a/AccessorSubscript_8hpp.html b/AccessorSubscript_8hpp.html
deleted file mode 100644
index 6033a8f..0000000
--- a/AccessorSubscript_8hpp.html
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/AccessorSubscript.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "Index.hpp "
-
#include <CL/sycl.hpp>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/AccessorSubscript_8hpp__dep__incl.map b/AccessorSubscript_8hpp__dep__incl.map
deleted file mode 100644
index 45404bf..0000000
--- a/AccessorSubscript_8hpp__dep__incl.map
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AccessorSubscript_8hpp__dep__incl.md5 b/AccessorSubscript_8hpp__dep__incl.md5
deleted file mode 100644
index 504c78a..0000000
--- a/AccessorSubscript_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-5866e18dc9c28c29f1419474f6d3a9fc
\ No newline at end of file
diff --git a/AccessorSubscript_8hpp__dep__incl.png b/AccessorSubscript_8hpp__dep__incl.png
deleted file mode 100644
index bda8e97..0000000
Binary files a/AccessorSubscript_8hpp__dep__incl.png and /dev/null differ
diff --git a/AccessorSubscript_8hpp__incl.map b/AccessorSubscript_8hpp__incl.map
deleted file mode 100644
index 35937c7..0000000
--- a/AccessorSubscript_8hpp__incl.map
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AccessorSubscript_8hpp__incl.md5 b/AccessorSubscript_8hpp__incl.md5
deleted file mode 100644
index 2d1dde5..0000000
--- a/AccessorSubscript_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-026f0b751246cc492d0ef0844aab54fc
\ No newline at end of file
diff --git a/AccessorSubscript_8hpp__incl.png b/AccessorSubscript_8hpp__incl.png
deleted file mode 100644
index 157a7b9..0000000
Binary files a/AccessorSubscript_8hpp__incl.png and /dev/null differ
diff --git a/AccessorSubscript_8hpp_source.html b/AccessorSubscript_8hpp_source.html
deleted file mode 100644
index 8e677dd..0000000
--- a/AccessorSubscript_8hpp_source.html
+++ /dev/null
@@ -1,184 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/AccessorSubscript.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
47 template <
typename Cell,
typename Accessor, sycl::access::mode access_mode,
-
-
-
-
-
-
-
-
-
65 requires (current_subdim == 0)
-
66 : ac(ac), id_prefix() {
-
67 id_prefix[current_subdim] = i;
-
-
-
-
-
-
81 : ac(ac), id_prefix(id_prefix) {
-
82 id_prefix[current_subdim] = i;
-
-
-
-
-
-
-
-
114 requires (current_subdim ==
dimensions - 2 && access_mode == sycl::access::mode::read)
-
-
116 sycl::id<dimensions>
id = id_prefix;
-
117 id [current_subdim + 1] = i;
-
-
-
-
-
-
-
132 requires (current_subdim ==
dimensions - 2 && access_mode != sycl::access::mode::read)
-
-
134 sycl::id<dimensions>
id = id_prefix;
-
135 id [current_subdim + 1] = i;
-
-
-
-
-
-
-
141 sycl::id<dimensions> id_prefix;
-
-
-
-
-
-
A helper class to support the double-subscript idiom for GridAccessors.
Definition AccessorSubscript.hpp:49
-
Cell & operator[](uindex_t i)
Access the cell.
Definition AccessorSubscript.hpp:131
-
AccessorSubscript< Cell, Accessor, access_mode, current_subdim+1 > operator[](uindex_t i)
Access the next dimension's accessor subscript.
Definition AccessorSubscript.hpp:96
-
AccessorSubscript(Accessor &ac, uindex_t i)
Instantiate a new accessor subscript object with the given index as the prefix.
Definition AccessorSubscript.hpp:64
-
Cell const & operator[](uindex_t i)
Access the cell.
Definition AccessorSubscript.hpp:113
-
AccessorSubscript(Accessor &ac, sycl::id< dimensions > id_prefix, uindex_t i)
Instantiate a new subscript object with the given prefix and subscript index.
Definition AccessorSubscript.hpp:80
-
static constexpr uindex_t dimensions
The number of dimensions in the accessed grid.
Definition AccessorSubscript.hpp:52
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
-
-
-
diff --git a/BaseTransitionFunction_8hpp.html b/BaseTransitionFunction_8hpp.html
deleted file mode 100644
index 107bb01..0000000
--- a/BaseTransitionFunction_8hpp.html
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/BaseTransitionFunction.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "Concepts.hpp "
-
#include <variant>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/BaseTransitionFunction_8hpp__incl.map b/BaseTransitionFunction_8hpp__incl.map
deleted file mode 100644
index 5e7e67f..0000000
--- a/BaseTransitionFunction_8hpp__incl.map
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/BaseTransitionFunction_8hpp__incl.md5 b/BaseTransitionFunction_8hpp__incl.md5
deleted file mode 100644
index 1cbae13..0000000
--- a/BaseTransitionFunction_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-b5eafe82cab89bece9516ed2c8f79545
\ No newline at end of file
diff --git a/BaseTransitionFunction_8hpp__incl.png b/BaseTransitionFunction_8hpp__incl.png
deleted file mode 100644
index 8695d5a..0000000
Binary files a/BaseTransitionFunction_8hpp__incl.png and /dev/null differ
diff --git a/BaseTransitionFunction_8hpp_source.html b/BaseTransitionFunction_8hpp_source.html
deleted file mode 100644
index ede9b73..0000000
--- a/BaseTransitionFunction_8hpp_source.html
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/BaseTransitionFunction.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Base class for transition functions that disables advanced features.
Definition BaseTransitionFunction.hpp:40
-
static constexpr uindex_t stencil_radius
Definition BaseTransitionFunction.hpp:44
-
static constexpr uindex_t n_subiterations
Definition BaseTransitionFunction.hpp:45
-
std::monostate TimeDependentValue
Definition BaseTransitionFunction.hpp:42
-
std::monostate get_time_dependent_value(uindex_t i_iteration) const
Definition BaseTransitionFunction.hpp:47
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
-
-
-
diff --git a/Concepts_8hpp.html b/Concepts_8hpp.html
deleted file mode 100644
index 2755641..0000000
--- a/Concepts_8hpp.html
+++ /dev/null
@@ -1,183 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Concepts.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "Index.hpp "
-
#include "Stencil.hpp "
-
#include <concepts>
-
#include <type_traits>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/Concepts_8hpp__dep__incl.map b/Concepts_8hpp__dep__incl.map
deleted file mode 100644
index a942cb7..0000000
--- a/Concepts_8hpp__dep__incl.map
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Concepts_8hpp__dep__incl.md5 b/Concepts_8hpp__dep__incl.md5
deleted file mode 100644
index 0eae4f4..0000000
--- a/Concepts_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-863d703b82cb9309e2d58f6be12e01c0
\ No newline at end of file
diff --git a/Concepts_8hpp__dep__incl.png b/Concepts_8hpp__dep__incl.png
deleted file mode 100644
index 019bd5a..0000000
Binary files a/Concepts_8hpp__dep__incl.png and /dev/null differ
diff --git a/Concepts_8hpp__incl.map b/Concepts_8hpp__incl.map
deleted file mode 100644
index 3c50a70..0000000
--- a/Concepts_8hpp__incl.map
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Concepts_8hpp__incl.md5 b/Concepts_8hpp__incl.md5
deleted file mode 100644
index 54ea6e6..0000000
--- a/Concepts_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-aab70ce3331b4967b806ca07f1e87575
\ No newline at end of file
diff --git a/Concepts_8hpp__incl.png b/Concepts_8hpp__incl.png
deleted file mode 100644
index eefa041..0000000
Binary files a/Concepts_8hpp__incl.png and /dev/null differ
diff --git a/Concepts_8hpp_source.html b/Concepts_8hpp_source.html
deleted file mode 100644
index 4453d18..0000000
--- a/Concepts_8hpp_source.html
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Concepts.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
63 std::semiregular<typename T::Cell> && std::copyable<typename T::TimeDependentValue> &&
-
-
65 std::same_as<
decltype (T::stencil_radius),
const uindex_t > && (T::stencil_radius >= 1) &&
-
66 std::same_as<
decltype (T::n_subiterations),
const uindex_t > && (T::n_subiterations >= 1) &&
-
-
68 requires (T
const &trans_func,
-
69 Stencil<typename T::Cell, T::stencil_radius, typename T::TimeDependentValue>
const
-
-
71 { trans_func(
stencil ) } -> std::same_as<typename T::Cell>;
-
-
73 requires (T
const &trans_func,
uindex_t i_iteration) {
-
-
75 trans_func.get_time_dependent_value(i_iteration)
-
76 } -> std::same_as<typename T::TimeDependentValue>;
-
-
-
-
85 template <
typename Accessor,
typename Cell>
-
-
-
87 { ac[sycl::id<2>(c, r)] } -> std::same_as<Cell &>;
-
88 { ac[c][r] } -> std::same_as<Cell &>;
-
-
-
-
114 template <
typename G,
typename Cell>
-
-
-
116 { G(c, r) } -> std::same_as<G>;
-
117 { G(sycl::range<2>(c, r)) } -> std::same_as<G>;
-
118 { G(buffer) } -> std::same_as<G>;
-
119 { grid.copy_from_buffer(buffer) } -> std::same_as<void>;
-
120 { grid.copy_to_buffer(buffer) } -> std::same_as<void>;
-
121 { grid.get_grid_width() } -> std::convertible_to<uindex_t>;
-
122 { grid.get_grid_height() } -> std::convertible_to<uindex_t>;
-
123 { grid.make_similar() } -> std::same_as<G>;
-
-
-
-
-
-
-
155 template <
typename SU,
typename TF,
typename G>
-
-
-
-
158 requires (SU stencil_update, G &grid,
typename SU::Params params) {
-
159 { SU(params) } -> std::same_as<SU>;
-
160 { stencil_update.get_params() } -> std::same_as<typename SU::Params &>;
-
161 { stencil_update(grid) } -> std::same_as<G>;
-
-
-
164 requires (
typename SU::Params params) {
-
165 { params.transition_function } -> std::same_as<TF &>;
-
166 { params.halo_value } -> std::same_as<typename TF::Cell &>;
-
167 { params.iteration_offset } -> std::same_as<uindex_t &>;
-
168 { params.n_iterations } -> std::same_as<uindex_t &>;
-
169 { params.device } -> std::same_as<sycl::device &>;
-
170 } && TransitionFunction<TF> && Grid<G, typename TF::Cell> &&
-
-
171 (std::is_class<typename SU::Params>::value);
-
-
-
-
-
-
-
An accessor for a two-dimensional grid.
Definition Concepts.hpp:86
-
A regular grid of cells.
Definition Concepts.hpp:115
-
A grid updater that repeatedly applies stencil updates to each cell.
Definition Concepts.hpp:156
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
-
-
-
diff --git a/FDTD.png b/FDTD.png
deleted file mode 100755
index 7fba6b1..0000000
Binary files a/FDTD.png and /dev/null differ
diff --git a/GenericID_8hpp.html b/GenericID_8hpp.html
deleted file mode 100644
index 13b28c5..0000000
--- a/GenericID_8hpp.html
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/GenericID.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "Index.hpp "
-
#include <CL/sycl.hpp>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/GenericID_8hpp__dep__incl.map b/GenericID_8hpp__dep__incl.map
deleted file mode 100644
index 0454c6c..0000000
--- a/GenericID_8hpp__dep__incl.map
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/GenericID_8hpp__dep__incl.md5 b/GenericID_8hpp__dep__incl.md5
deleted file mode 100644
index 3f56e9b..0000000
--- a/GenericID_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-d4ddb94724652b470f70491de49479e2
\ No newline at end of file
diff --git a/GenericID_8hpp__dep__incl.png b/GenericID_8hpp__dep__incl.png
deleted file mode 100644
index fc0d49f..0000000
Binary files a/GenericID_8hpp__dep__incl.png and /dev/null differ
diff --git a/GenericID_8hpp__incl.map b/GenericID_8hpp__incl.map
deleted file mode 100644
index e25d30d..0000000
--- a/GenericID_8hpp__incl.map
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/GenericID_8hpp__incl.md5 b/GenericID_8hpp__incl.md5
deleted file mode 100644
index 60a3036..0000000
--- a/GenericID_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-286c6cd64db63571a82f3ffef22353e8
\ No newline at end of file
diff --git a/GenericID_8hpp__incl.png b/GenericID_8hpp__incl.png
deleted file mode 100644
index 5782bd9..0000000
Binary files a/GenericID_8hpp__incl.png and /dev/null differ
diff --git a/GenericID_8hpp_source.html b/GenericID_8hpp_source.html
deleted file mode 100644
index 061c52c..0000000
--- a/GenericID_8hpp_source.html
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/GenericID.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
47 GenericID (sycl::id<2> sycl_id) :
c (sycl_id[0]),
r (sycl_id[1]) {}
-
-
52 GenericID (sycl::range<2> sycl_range) :
c (sycl_range[0]),
r (sycl_range[1]) {}
-
-
-
-
58 return this->
c == other.
c && this->
r == other.
r ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
A generic, two-dimensional index.
Definition GenericID.hpp:32
-
GenericID()
Create a new index with undefined contents.
Definition GenericID.hpp:37
-
T c
The column index.
Definition GenericID.hpp:64
-
GenericID(sycl::id< 2 > sycl_id)
Convert the SYCL ID.
Definition GenericID.hpp:47
-
GenericID(sycl::range< 2 > sycl_range)
Convert the SYCl range.
Definition GenericID.hpp:52
-
GenericID(T column, T row)
Create a new index with the given column and row indices.
Definition GenericID.hpp:42
-
bool operator==(GenericID const &other) const
Test if the other generic ID has equivalent coordinates to this ID.
Definition GenericID.hpp:57
-
T r
The row index.
Definition GenericID.hpp:69
-
Definition AccessorSubscript.hpp:24
-
GenericID< uindex_t > UID
An unsigned, two-dimensional index.
Definition GenericID.hpp:80
-
GenericID< index_t > ID
A signed, two-dimensional index.
Definition GenericID.hpp:75
-
-
-
-
-
diff --git a/Helpers_8hpp.html b/Helpers_8hpp.html
deleted file mode 100644
index a31527c..0000000
--- a/Helpers_8hpp.html
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Helpers.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "Index.hpp "
-
#include <numeric>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
◆ value
-
-
-
-
-
-
-
diff --git a/Helpers_8hpp__dep__incl.map b/Helpers_8hpp__dep__incl.map
deleted file mode 100644
index 6b7cc19..0000000
--- a/Helpers_8hpp__dep__incl.map
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Helpers_8hpp__dep__incl.md5 b/Helpers_8hpp__dep__incl.md5
deleted file mode 100644
index 82e6d81..0000000
--- a/Helpers_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-e28fa4573dc79dadddaf867d2b52e9ae
\ No newline at end of file
diff --git a/Helpers_8hpp__dep__incl.png b/Helpers_8hpp__dep__incl.png
deleted file mode 100644
index fb35522..0000000
Binary files a/Helpers_8hpp__dep__incl.png and /dev/null differ
diff --git a/Helpers_8hpp__incl.map b/Helpers_8hpp__incl.map
deleted file mode 100644
index b6baba9..0000000
--- a/Helpers_8hpp__incl.map
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Helpers_8hpp__incl.md5 b/Helpers_8hpp__incl.md5
deleted file mode 100644
index b00b0dd..0000000
--- a/Helpers_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-3a9373ef543a332a0f9f137f9a855f4f
\ No newline at end of file
diff --git a/Helpers_8hpp__incl.png b/Helpers_8hpp__incl.png
deleted file mode 100644
index 8dabe18..0000000
Binary files a/Helpers_8hpp__incl.png and /dev/null differ
diff --git a/Helpers_8hpp_source.html b/Helpers_8hpp_source.html
deleted file mode 100644
index d68b12a..0000000
--- a/Helpers_8hpp_source.html
+++ /dev/null
@@ -1,137 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Helpers.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
35 return n_cells / word_length + (n_cells % word_length == 0 ? 0 : 1);
-
-
-
-
-
-
-
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
constexpr uindex_t n_cells_to_n_words(uindex_t n_cells, uindex_t word_length)
Compute the number of words necessary to store a given number of cells.
Definition Helpers.hpp:34
-
struct stencil::Padded __attribute__((aligned(std::bit_ceil(sizeof(T)))))
-
A container with padding to the next power of two.
Definition Helpers.hpp:45
-
T value
Definition Helpers.hpp:46
-
-
-
-
-
diff --git a/Index_8hpp.html b/Index_8hpp.html
deleted file mode 100644
index c6741eb..0000000
--- a/Index_8hpp.html
+++ /dev/null
@@ -1,197 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Index.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include <CL/sycl.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <cstdint>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
◆ STENCIL_INDEX_WIDTH
-
-
-
-
-
- #define STENCIL_INDEX_WIDTH 64
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Index_8hpp__dep__incl.map b/Index_8hpp__dep__incl.map
deleted file mode 100644
index 6336572..0000000
--- a/Index_8hpp__dep__incl.map
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Index_8hpp__dep__incl.md5 b/Index_8hpp__dep__incl.md5
deleted file mode 100644
index 1fabe00..0000000
--- a/Index_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-c57713be038fa064fd347e685f904ac3
\ No newline at end of file
diff --git a/Index_8hpp__dep__incl.png b/Index_8hpp__dep__incl.png
deleted file mode 100644
index ae121dc..0000000
Binary files a/Index_8hpp__dep__incl.png and /dev/null differ
diff --git a/Index_8hpp__incl.map b/Index_8hpp__incl.map
deleted file mode 100644
index 9e246b5..0000000
--- a/Index_8hpp__incl.map
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/Index_8hpp__incl.md5 b/Index_8hpp__incl.md5
deleted file mode 100644
index 46d7792..0000000
--- a/Index_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-b37334d535331cd1b61750ffd7996903
\ No newline at end of file
diff --git a/Index_8hpp__incl.png b/Index_8hpp__incl.png
deleted file mode 100644
index 7542084..0000000
Binary files a/Index_8hpp__incl.png and /dev/null differ
diff --git a/Index_8hpp_source.html b/Index_8hpp_source.html
deleted file mode 100644
index ad4b8dd..0000000
--- a/Index_8hpp_source.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Index.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
22 #include <boost/preprocessor/cat.hpp>
-
-
-
-
26 #ifndef STENCIL_INDEX_WIDTH
-
27 #define STENCIL_INDEX_WIDTH 64
-
-
-
-
-
-
-
#define STENCIL_INDEX_WIDTH
Definition Index.hpp:27
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
BOOST_PP_CAT(BOOST_PP_CAT(int, STENCIL_INDEX_WIDTH), _t) index_t
A signed integer of configurable width.
Definition Index.hpp:56
-
-
-
-
-
diff --git a/README_8md.html b/README_8md.html
deleted file mode 100644
index 9d21e62..0000000
--- a/README_8md.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: README.md File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SinglePassStrategies_8hpp.html b/SinglePassStrategies_8hpp.html
deleted file mode 100644
index 84d885e..0000000
--- a/SinglePassStrategies_8hpp.html
+++ /dev/null
@@ -1,200 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tdv/SinglePassStrategies.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/SinglePassStrategies_8hpp__dep__incl.map b/SinglePassStrategies_8hpp__dep__incl.map
deleted file mode 100644
index a2470e8..0000000
--- a/SinglePassStrategies_8hpp__dep__incl.map
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/SinglePassStrategies_8hpp__dep__incl.md5 b/SinglePassStrategies_8hpp__dep__incl.md5
deleted file mode 100644
index 28699a8..0000000
--- a/SinglePassStrategies_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-a63b4fa462c5c5b573c136657f76873c
\ No newline at end of file
diff --git a/SinglePassStrategies_8hpp__dep__incl.png b/SinglePassStrategies_8hpp__dep__incl.png
deleted file mode 100644
index df8edad..0000000
Binary files a/SinglePassStrategies_8hpp__dep__incl.png and /dev/null differ
diff --git a/SinglePassStrategies_8hpp__incl.map b/SinglePassStrategies_8hpp__incl.map
deleted file mode 100644
index 2691484..0000000
--- a/SinglePassStrategies_8hpp__incl.map
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SinglePassStrategies_8hpp__incl.md5 b/SinglePassStrategies_8hpp__incl.md5
deleted file mode 100644
index 31b3306..0000000
--- a/SinglePassStrategies_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-eb981e41a9050f279b12ea5d1f428a97
\ No newline at end of file
diff --git a/SinglePassStrategies_8hpp__incl.png b/SinglePassStrategies_8hpp__incl.png
deleted file mode 100644
index d395371..0000000
Binary files a/SinglePassStrategies_8hpp__incl.png and /dev/null differ
diff --git a/SinglePassStrategies_8hpp_source.html b/SinglePassStrategies_8hpp_source.html
deleted file mode 100644
index 1515069..0000000
--- a/SinglePassStrategies_8hpp_source.html
+++ /dev/null
@@ -1,350 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tdv/SinglePassStrategies.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
21 #include "../Concepts.hpp"
-
-
-
-
-
-
-
31 namespace single_pass {
-
-
47 template <
typename T,
typename TransFunc>
-
-
-
-
-
51 local_state.get_time_dependent_value(i)
-
52 } -> std::same_as<typename TransFunc::TimeDependentValue>;
-
-
-
-
64 template <
typename T,
typename TransFunc>
-
-
-
67 std::constructible_from<typename T::LocalState, T const &>;
-
-
84 template <
typename T,
typename TransFunc>
-
-
-
87 std::constructible_from<T, TransFunc, uindex_t, uindex_t> &&
-
-
89 std::constructible_from<typename T::KernelArgument, T &, sycl::handler &, uindex_t, uindex_t>;
-
-
98 template <
typename T,
typename TransFunc, uindex_t max_n_iterations>
-
-
-
-
-
-
-
115 template <stencil::concepts::TransitionFunction TransFunc, uindex_t max_n_iterations>
-
-
-
117 using TDV =
typename TransFunc::TimeDependentValue;
-
-
-
-
120 : trans_func(trans_func) {}
-
-
-
-
-
-
-
-
125 : trans_func(global_state.trans_func), iteration_offset(iteration_offset) {}
-
-
-
-
-
-
-
130 return trans_func.get_time_dependent_value(iteration_offset + i_iteration);
-
-
-
-
-
134 TransFunc trans_func;
-
-
-
-
-
-
139 TransFunc trans_func;
-
-
-
-
-
-
-
-
153 template <stencil::concepts::TransitionFunction TransFunc, uindex_t max_n_iterations>
-
-
-
155 using TDV =
typename TransFunc::TimeDependentValue;
-
-
-
-
158 : trans_func(trans_func) {}
-
-
-
-
-
-
-
-
163 : trans_func(global_state.trans_func), iteration_offset(iteration_offset) {}
-
-
-
-
-
-
-
167 for (
uindex_t i = 0; i < max_n_iterations; i++) {
-
168 values[i] = kernel_argument.trans_func.get_time_dependent_value(
-
169 kernel_argument.iteration_offset + i);
-
-
-
-
-
-
-
174 return values[i_iteration];
-
-
-
-
-
178 TDV values[max_n_iterations];
-
-
-
-
-
182 TransFunc trans_func;
-
-
-
-
-
-
187 TransFunc trans_func;
-
-
-
-
-
-
-
-
201 template <stencil::concepts::TransitionFunction TransFunc, uindex_t max_n_iterations>
-
-
-
-
204 using TDV =
typename TransFunc::TimeDependentValue;
-
-
-
-
207 : function(function), iteration_offset(iteration_offset),
-
208 value_buffer(sycl::range<1>(n_iterations)) {
-
209 sycl::host_accessor ac(value_buffer, sycl::read_write);
-
210 for (
uindex_t i = 0; i < n_iterations; i++) {
-
211 ac[i] = function.get_time_dependent_value(iteration_offset + i);
-
-
-
-
-
-
-
216 : function(other.function), iteration_offset(other.iteration_offset),
-
217 value_buffer(other.value_buffer) {}
-
-
-
-
-
-
-
-
-
223 assert(n_iterations <= max_n_iterations);
-
224 assert(i_iteration >= global_state.iteration_offset);
-
225 assert(i_iteration + n_iterations <=
-
226 global_state.iteration_offset + global_state.value_buffer.get_range()[0]);
-
-
228 sycl::range<1> access_range(n_iterations);
-
229 sycl::id<1> access_offset(i_iteration - global_state.iteration_offset);
-
230 ac = sycl::accessor<TDV, 1, sycl::access::mode::read>(
-
231 global_state.value_buffer, cgh, access_range, access_offset);
-
-
-
-
-
-
-
-
-
237 std::min(max_n_iterations,
uindex_t (kernel_argument.ac.get_range()[0]));
-
-
239 for (
uindex_t i = 0; i < n_values; i++)
-
240 values[i] = kernel_argument.ac[i];
-
-
-
-
-
-
-
246 TDV values[max_n_iterations];
-
-
-
-
-
250 sycl::accessor<TDV, 1, sycl::access::mode::read> ac;
-
-
-
-
-
-
-
256 sycl::buffer<TDV, 1> value_buffer;
-
-
-
-
-
-
-
-
-
-
-
GlobalState(TransFunc function, uindex_t iteration_offset, uindex_t n_iterations)
Definition SinglePassStrategies.hpp:206
-
typename TransFunc::TimeDependentValue TDV
Definition SinglePassStrategies.hpp:204
-
GlobalState(GlobalState const &other)
Definition SinglePassStrategies.hpp:215
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
The requirements for a TDV system's global state.
Definition SinglePassStrategies.hpp:85
-
The requirements for a TDV kernel argument.
Definition SinglePassStrategies.hpp:65
-
The requirements for a pass-local TDV system state.
Definition SinglePassStrategies.hpp:48
-
Requirements for a TDV implementation strategy.
Definition SinglePassStrategies.hpp:99
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
KernelArgument(GlobalState &global_state, sycl::handler &cgh, uindex_t iteration_offset, uindex_t n_iterations)
Definition SinglePassStrategies.hpp:123
-
TDV get_time_dependent_value(uindex_t i_iteration) const
Definition SinglePassStrategies.hpp:129
-
typename TransFunc::TimeDependentValue TDV
Definition SinglePassStrategies.hpp:117
-
GlobalState(TransFunc trans_func, uindex_t iteration_offset, uindex_t n_iterations)
Definition SinglePassStrategies.hpp:119
-
A TDV implementation strategy that inlines the TDV function into the transition function.
Definition SinglePassStrategies.hpp:114
-
LocalState(KernelArgument const &kernel_argument)
Definition SinglePassStrategies.hpp:166
-
TDV get_time_dependent_value(uindex_t i_iteration) const
Definition SinglePassStrategies.hpp:173
-
KernelArgument(GlobalState &global_state, sycl::handler &cgh, uindex_t iteration_offset, uindex_t n_iterations)
Definition SinglePassStrategies.hpp:161
-
GlobalState(TransFunc trans_func, uindex_t iteration_offset, uindex_t n_iterations)
Definition SinglePassStrategies.hpp:157
-
typename TransFunc::TimeDependentValue TDV
Definition SinglePassStrategies.hpp:155
-
A TDV implementation strategy that precomputes TDVs on the device.
Definition SinglePassStrategies.hpp:152
-
LocalState(KernelArgument const &kernel_argument)
Definition SinglePassStrategies.hpp:235
-
TDV get_time_dependent_value(uindex_t i) const
Definition SinglePassStrategies.hpp:243
-
KernelArgument(GlobalState &global_state, sycl::handler &cgh, uindex_t i_iteration, uindex_t n_iterations)
Definition SinglePassStrategies.hpp:220
-
A TDV implementation strategy that precomputes TDVs on the host.
Definition SinglePassStrategies.hpp:200
-
-
-
-
-
diff --git a/Stencil_8hpp.html b/Stencil_8hpp.html
deleted file mode 100644
index 2cda2c0..0000000
--- a/Stencil_8hpp.html
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Stencil.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "GenericID.hpp "
-
#include "Helpers.hpp "
-
#include "Index.hpp "
-
#include <bit>
-
#include <sycl/ext/intel/ac_types/ac_int.hpp>
-
#include <variant>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/Stencil_8hpp__dep__incl.map b/Stencil_8hpp__dep__incl.map
deleted file mode 100644
index dfabd6f..0000000
--- a/Stencil_8hpp__dep__incl.map
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Stencil_8hpp__dep__incl.md5 b/Stencil_8hpp__dep__incl.md5
deleted file mode 100644
index 21d893e..0000000
--- a/Stencil_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-1ea0ec1c7e410253f26a996326ef620e
\ No newline at end of file
diff --git a/Stencil_8hpp__dep__incl.png b/Stencil_8hpp__dep__incl.png
deleted file mode 100644
index 790e4b7..0000000
Binary files a/Stencil_8hpp__dep__incl.png and /dev/null differ
diff --git a/Stencil_8hpp__incl.map b/Stencil_8hpp__incl.map
deleted file mode 100644
index d1e3b1e..0000000
--- a/Stencil_8hpp__incl.map
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Stencil_8hpp__incl.md5 b/Stencil_8hpp__incl.md5
deleted file mode 100644
index 8196db6..0000000
--- a/Stencil_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-2c12e0befb4022e66f7893625cfb4e99
\ No newline at end of file
diff --git a/Stencil_8hpp__incl.png b/Stencil_8hpp__incl.png
deleted file mode 100644
index ac9e603..0000000
Binary files a/Stencil_8hpp__incl.png and /dev/null differ
diff --git a/Stencil_8hpp_source.html b/Stencil_8hpp_source.html
deleted file mode 100644
index 1adadb8..0000000
--- a/Stencil_8hpp_source.html
+++ /dev/null
@@ -1,229 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/Stencil.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
25 #include <sycl/ext/intel/ac_types/ac_int.hpp>
-
-
-
-
-
46 template <
typename Cell, uindex_t stencil_radius,
typename TimeDependentValue = std::monostate>
-
47 requires std::semiregular<Cell> && (stencil_radius >= 1)
-
-
-
-
51 static constexpr uindex_t diameter = 2 * stencil_radius + 1;
-
-
54 static constexpr unsigned long bits_stencil = std::bit_width(diameter);
-
-
-
-
-
-
-
-
-
-
-
-
78 TimeDependentValue tdv)
-
79 : id(id), iteration(iteration), subiteration(subiteration), grid_range(grid_range),
-
80 time_dependent_value(tdv), internal() {}
-
-
-
-
-
93 TimeDependentValue tdv, Cell raw[diameter][diameter])
-
94 : id(id), iteration(iteration), subiteration(subiteration), grid_range(grid_range),
-
95 time_dependent_value(tdv), internal() {
-
-
97 for (
uindex_t c = 0; c < diameter; c++) {
-
-
99 for (
uindex_t r = 0; r < diameter; r++) {
-
100 internal[c][r] = raw[c][r];
-
-
-
-
-
-
-
-
111 return internal[
id .c + stencil_radius][
id .r + stencil_radius];
-
-
-
-
119 Cell &
operator[] (
ID id ) {
return internal[
id .c + stencil_radius][
id .r + stencil_radius]; }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
189 Cell internal[diameter][diameter];
-
-
-
-
-
-
-
A generic, two-dimensional index.
Definition GenericID.hpp:32
-
The stencil buffer.
Definition Stencil.hpp:48
-
const UID grid_range
The range of the underlying grid.
Definition Stencil.hpp:183
-
Cell const & operator[](ID id) const
Access a cell in the stencil.
Definition Stencil.hpp:110
-
Stencil(ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv, Cell raw[diameter][diameter])
Create a new stencil with the given contents.
Definition Stencil.hpp:92
-
Cell & operator[](ID id)
Access a cell in the stencil.
Definition Stencil.hpp:119
-
Cell & operator[](StencilUID id)
Access a cell in the stencil.
Definition Stencil.hpp:171
-
ac_int< bits_stencil, false > uindex_stencil_t
An unsigned index type for column and row indices in this stencil.
Definition Stencil.hpp:60
-
const ID id
The position of the central cell in the global grid.
Definition Stencil.hpp:174
-
Cell & operator[](UID id)
Access a cell in the stencil.
Definition Stencil.hpp:155
-
ac_int< bits_stencil, true > index_stencil_t
A signed index type for column and row indices in this stencil.
Definition Stencil.hpp:57
-
const uindex_t iteration
The present iteration index of the cells in the stencil.
Definition Stencil.hpp:177
-
Cell const & operator[](UID id) const
Access a cell in the stencil.
Definition Stencil.hpp:147
-
Stencil(ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv)
Create a new stencil with an uninitialized buffer.
Definition Stencil.hpp:77
-
Cell const & operator[](StencilID id) const
Access a cell in the stencil.
Definition Stencil.hpp:126
-
const uindex_t subiteration
The present sub-iteration index of the cells in the stencil.
Definition Stencil.hpp:180
-
const TimeDependentValue time_dependent_value
The time-dependent value for this iteration.
Definition Stencil.hpp:186
-
Cell const & operator[](StencilUID id) const
Access a cell in the stencil.
Definition Stencil.hpp:163
-
Cell & operator[](StencilID id)
Access a cell in the stencil.
Definition Stencil.hpp:136
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
-
-
-
diff --git a/annotated.html b/annotated.html
deleted file mode 100644
index 2fefde8..0000000
--- a/annotated.html
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 1 2 3 4 5 6 7 ]
-
-
-
-
-
-
diff --git a/bc_s.png b/bc_s.png
deleted file mode 100644
index 224b29a..0000000
Binary files a/bc_s.png and /dev/null differ
diff --git a/bc_sd.png b/bc_sd.png
deleted file mode 100644
index 31ca888..0000000
Binary files a/bc_sd.png and /dev/null differ
diff --git a/classes.html b/classes.html
deleted file mode 100644
index 380b2f1..0000000
--- a/classes.html
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Index
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
diff --git a/classstencil_1_1AccessorSubscript-members.html b/classstencil_1_1AccessorSubscript-members.html
deleted file mode 100644
index d62b95b..0000000
--- a/classstencil_1_1AccessorSubscript-members.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > , including all inherited members.
-
- AccessorSubscript (Accessor &ac, uindex_t i)stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > inline
- AccessorSubscript (Accessor &ac, sycl::id< dimensions > id_prefix, uindex_t i)stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > inline
- dimensions stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > static
- operator[] (uindex_t i)stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > inline
- operator[] (uindex_t i)stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > inline
- operator[] (uindex_t i)stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > inline
-
-
-
-
-
diff --git a/classstencil_1_1AccessorSubscript.html b/classstencil_1_1AccessorSubscript.html
deleted file mode 100644
index 4aafb55..0000000
--- a/classstencil_1_1AccessorSubscript.html
+++ /dev/null
@@ -1,383 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A helper class to support the double-subscript idiom for GridAccessors .
- More...
-
-
#include <AccessorSubscript.hpp >
-
-
-static constexpr uindex_t dimensions = Accessor::dimensions
- The number of dimensions in the accessed grid.
-
-
-
-
template<typename Cell, typename Accessor, sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-class stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim >
A helper class to support the double-subscript idiom for GridAccessors .
-
This class is used to support expressions like accessor[i_column][i_row]
. Each subscript except the last one creates an object of this class, which stores the index of the subscript as well as all previous indices to form a so-called "prefix." When the last subscript is called, the index is added to the prefix to yield the complete, multi-dimensional index. Then, the last subscript object returns a reference to the requested cell.
-
Template Parameters
-
- Cell The cell type to support
- Accessor accessor to direct to. It must fulfill stencil::concepts::GridAccessor , but since this class is also part of the concept's definition, we can't check it here.
- access_mode The access mode of the accessor. Used to enable and disable different operator[] implementations
- current_subdim The current subdim. Decides whether the next call to operator[] returns another AccessorSubscript or the final cell reference.
-
-
-
-
-
-
◆ AccessorSubscript() [1/2]
-
-
-
-
-template<typename Cell , typename Accessor , sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-
-
-
-
Instantiate a new accessor subscript object with the given index as the prefix.
-
This accessor is meant to be used by the operator[]
implementation of the accessor to construct the first subscript object. It is therefore only available iff the current subdimention is zero.
-
Parameters
-
- ac The accessor to redirect to.
- i The index of the previous subscript. It will be used as a prefix.
-
-
-
-
-
-
-
-
◆ AccessorSubscript() [2/2]
-
-
-
-
-template<typename Cell , typename Accessor , sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-
-
-
-
Instantiate a new subscript object with the given prefix and subscript index.
-
This constructor will take the given prefix, add the new index to it at the current position, and use the resulting prefix.
-
Parameters
-
- ac The accessor to redirect to.
- id_prefix The previous prefix
- i The new index to add to the prefix.
-
-
-
-
-
-
-
-
-
◆ operator[]() [1/3]
-
-
-
-
-template<typename Cell , typename Accessor , sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-
-
-
-
Access the next dimension's accessor subscript.
-
The resulting subscript object will contain the current prefix together with the given index. This implementation is only available to intermediate dimensions. For the last dimension, the resulting ID will be evaluated and returned.
-
Parameters
-
- i The next dimension's index.
-
-
-
-
Returns A subscript object for the following dimensions.
-
-
-
-
-
◆ operator[]() [2/3]
-
-
-
-
-template<typename Cell , typename Accessor , sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-
-
-
-
Access the cell.
-
This will add the given index to the prefix and use the underlying accessor to provide a reference to the cell. This is the implementation for read-only accessors as it returns a constant reference.
-
Parameters
-
- i The final dimension's index.
-
-
-
-
Returns A constant reference to the indexed cell.
-
-
-
-
-
◆ operator[]() [3/3]
-
-
-
-
-template<typename Cell , typename Accessor , sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-
-
-
-
Access the cell.
-
This will add the given index to the prefix and use the underlying accessor to provide a reference to the cell. This is the implementation for accessors that may alter the grid.
-
Parameters
-
- i The final dimension's index.
-
-
-
-
Returns A reference to the indexed cell.
-
-
-
-
-
-
◆ dimensions
-
-
-
-
-template<typename Cell , typename Accessor , sycl::access::mode access_mode,
uindex_t current_subdim = 0>
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of dimensions in the accessed grid.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1BaseTransitionFunction-members.html b/classstencil_1_1BaseTransitionFunction-members.html
deleted file mode 100644
index 5c167ba..0000000
--- a/classstencil_1_1BaseTransitionFunction-members.html
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::BaseTransitionFunction , including all inherited members.
-
-
-
-
-
diff --git a/classstencil_1_1BaseTransitionFunction.html b/classstencil_1_1BaseTransitionFunction.html
deleted file mode 100644
index d75b14a..0000000
--- a/classstencil_1_1BaseTransitionFunction.html
+++ /dev/null
@@ -1,209 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::BaseTransitionFunction Class Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
Base class for transition functions that disables advanced features.
- More...
-
-
#include <BaseTransitionFunction.hpp >
-
-
-
Base class for transition functions that disables advanced features.
-
Users who want to start implementing a transition function should let it inherit this class. It provides default definitions that disable certain advanced StencilStream features, for example the time-dependent value feature or sub-iterations.
-
For the time-dependent value system, this class uses the std::monostate
type. This type has only one value, which is "computed" for every iteration.
-
-
-
◆ TimeDependentValue
-
-
-
-
-
◆ get_time_dependent_value()
-
-
-
-
-
-
-
-
- std::monostate stencil::BaseTransitionFunction::get_time_dependent_value
- (
- uindex_t
- i_iteration )
- const
-
-
-
-
-inline
-
-
-
-
-
-
-
-
-
◆ n_subiterations
-
-
-
-
-
-
-
-
- constexpr uindex_t stencil::BaseTransitionFunction::n_subiterations = 1
-
-
-
-
-static constexpr
-
-
-
-
-
-
-
-
◆ stencil_radius
-
-
-
-
-
-
-
-
- constexpr uindex_t stencil::BaseTransitionFunction::stencil_radius = 1
-
-
-
-
-static constexpr
-
-
-
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1GenericID-members.html b/classstencil_1_1GenericID-members.html
deleted file mode 100644
index fe60e8d..0000000
--- a/classstencil_1_1GenericID-members.html
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::GenericID< T > , including all inherited members.
-
-
-
-
-
diff --git a/classstencil_1_1GenericID.html b/classstencil_1_1GenericID.html
deleted file mode 100644
index 4db5308..0000000
--- a/classstencil_1_1GenericID.html
+++ /dev/null
@@ -1,334 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::GenericID< T > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A generic, two-dimensional index.
- More...
-
-
#include <GenericID.hpp >
-
-
- GenericID ()
- Create a new index with undefined contents.
-
- GenericID (T column, T row)
- Create a new index with the given column and row indices.
-
- GenericID (sycl::id< 2 > sycl_id)
- Convert the SYCL ID.
-
- GenericID (sycl::range< 2 > sycl_range)
- Convert the SYCl range.
-
-bool operator== (GenericID const &other) const
- Test if the other generic ID has equivalent coordinates to this ID.
-
-
-
-T c
- The column index.
-
-T r
- The row index.
-
-
-
-
template<typename T>
-class stencil::GenericID< T >
A generic, two-dimensional index.
-
Template Parameters
-
- The index type. It can be anything as long as it can be constructed from a dimension of sycl::id
and tested for equality.
-
-
-
-
-
-
◆ GenericID() [1/4]
-
-
-
-
-template<typename T >
-
-
-
-
Create a new index with undefined contents.
-
-
-
-
-
◆ GenericID() [2/4]
-
-
-
-
-template<typename T >
-
-
-
-
-
- stencil::GenericID < T >::GenericID
- (
- T
- column ,
-
-
-
-
- T
- row
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new index with the given column and row indices.
-
-
-
-
-
◆ GenericID() [3/4]
-
-
-
-
-template<typename T >
-
-
-
-
Convert the SYCL ID.
-
-
-
-
-
◆ GenericID() [4/4]
-
-
-
-
-template<typename T >
-
-
-
-
Convert the SYCl range.
-
-
-
-
-
-
◆ operator==()
-
-
-
-
-template<typename T >
-
-
-
-
Test if the other generic ID has equivalent coordinates to this ID.
-
-
-
-
-
-
-
-
-
-
-template<typename T >
-
-
-
-
-
-
-
-
-
-template<typename T >
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1Stencil-members.html b/classstencil_1_1Stencil-members.html
deleted file mode 100644
index 90b0b6f..0000000
--- a/classstencil_1_1Stencil-members.html
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::Stencil< Cell, stencil_radius, TimeDependentValue > , including all inherited members.
-
- bits_stencil stencil::Stencil< Cell, stencil_radius, TimeDependentValue > static
- diameter stencil::Stencil< Cell, stencil_radius, TimeDependentValue > static
- grid_range stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- id stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- index_stencil_t typedefstencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- iteration stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- operator[] (ID id) conststencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (ID id)stencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (StencilID id) conststencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (StencilID id)stencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (UID id) conststencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (UID id)stencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (StencilUID id) conststencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- operator[] (StencilUID id)stencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- Stencil (ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv)stencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- Stencil (ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv, Cell raw[diameter][diameter])stencil::Stencil< Cell, stencil_radius, TimeDependentValue > inline
- StencilID typedefstencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- StencilUID typedefstencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- subiteration stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- time_dependent_value stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
- uindex_stencil_t typedefstencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-
-
-
-
-
diff --git a/classstencil_1_1Stencil.html b/classstencil_1_1Stencil.html
deleted file mode 100644
index 000e642..0000000
--- a/classstencil_1_1Stencil.html
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::Stencil< Cell, stencil_radius, TimeDependentValue > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
The stencil buffer.
- More...
-
-
#include <Stencil.hpp >
-
-
-
-
-
template<
typename Cell,
uindex_t stencil_radius,
typename TimeDependentValue = std::monostate>
-requires std::semiregular<Cell> && (stencil_radius >= 1)
-class stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
The stencil buffer.
-
The stencil buffer contains the extended Moore neighborhood of a central cell and is used by a transition function to calculate the next iteration of the central cell.
-
This implementation provides two ways to index the stencil: With an ID
and a UID
. Since ID
is signed, the column and row axes are within the range of [-radius : radius]. Therefore, (0,0) points to the central cell. UID
is unsigned and the column and row axes are within the range of [0 : 2*radius + 1). Therefore, (0,0) points to the north-western corner of the stencil.
-
Template Parameters
-
- Cell The type of cells in the stencil
- stencil_radius The radius of the stencil, i.e. the extent of the stencil in each direction from the central cell.
- TimeDependentValue The type of values provided by the TDV system.
-
-
-
-
-
-
◆ index_stencil_t
-
-
-
-
-
A signed index type for column and row indices in this stencil.
-
-
-
-
-
◆ StencilID
-
-
-
-
-
A signed, two-dimensional index to address cells in this stencil.
-
-
-
-
-
◆ StencilUID
-
-
-
-
-
An unsigned, two-dimensional index to address cells in this stencil.
-
-
-
-
-
◆ uindex_stencil_t
-
-
-
-
-
An unsigned index type for column and row indices in this stencil.
-
-
-
-
-
-
◆ Stencil() [1/2]
-
-
-
-
-
-
-
-
-
- stencil::Stencil < Cell, stencil_radius, TimeDependentValue >::Stencil
- (
- ID
- id ,
-
-
-
-
- UID
- grid_range ,
-
-
-
-
- uindex_t
- iteration ,
-
-
-
-
- uindex_t
- subiteration ,
-
-
-
-
- TimeDependentValue
- tdv
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new stencil with an uninitialized buffer.
-
Parameters
-
- id The position of the central cell in the global grid.
- grid_range The range of the underlying grid.
- iteration The present iteration index of the cells in the stencil.
- subiteration The present sub-iteration index of the cells in the stencil.
- tdv The time-dependent value for this iteration.
-
-
-
-
-
-
-
-
◆ Stencil() [2/2]
-
-
-
-
-
-
-
-
-
- stencil::Stencil < Cell, stencil_radius, TimeDependentValue >::Stencil
- (
- ID
- id ,
-
-
-
-
- UID
- grid_range ,
-
-
-
-
- uindex_t
- iteration ,
-
-
-
-
- uindex_t
- subiteration ,
-
-
-
-
- TimeDependentValue
- tdv ,
-
-
-
-
- Cell
- raw [diameter][diameter]
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new stencil with the given contents.
-
Parameters
-
- id The position of the central cell in the global grid.
- grid_range The range of the underlying grid.
- iteration The present iteration index of the cells in the stencil.
- subiteration The present sub-iteration index of the cells in the stencil.
- tdv The time-dependent value for this iteration.
- raw An array of cells, which is copied into the stencil object.
-
-
-
-
-
-
-
-
-
◆ operator[]() [1/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are signed, the origin of this index operator is the central cell.
-
-
-
-
-
◆ operator[]() [2/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are signed, the origin of this index operator is the central cell.
-
-
-
-
-
◆ operator[]() [3/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are signed, the origin of this index operator is the central cell.
-
-
-
-
-
◆ operator[]() [4/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are signed, the origin of this index operator is the central cell.
-
-
-
-
-
◆ operator[]() [5/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are unsigned, the origin of this index operator is the north-western corner.
-
-
-
-
-
◆ operator[]() [6/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are unsigned, the origin of this index operator is the north-western corner.
-
-
-
-
-
◆ operator[]() [7/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are unsigned, the origin of this index operator is the north-western corner.
-
-
-
-
-
◆ operator[]() [8/8]
-
-
-
-
-
Access a cell in the stencil.
-
Since the indices in id
are unsigned, the origin of this index operator is the north-western corner.
-
-
-
-
-
-
◆ bits_stencil
-
-
-
-
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of bits necessary to express column and row indices in the stencil.
-
-
-
-
-
◆ diameter
-
-
-
-
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The diameter (aka width and height) of the stencil buffer.
-
-
-
-
-
◆ grid_range
-
-
-
-
-
The range of the underlying grid.
-
-
-
-
-
◆ id
-
-
-
-
-template<typename Cell ,
uindex_t stencil_radius, typename TimeDependentValue = std::monostate>
-
-
-
-
The position of the central cell in the global grid.
-
-
-
-
-
◆ iteration
-
-
-
-
-
The present iteration index of the cells in the stencil.
-
-
-
-
-
◆ subiteration
-
-
-
-
-
The present sub-iteration index of the cells in the stencil.
-
-
-
-
-
◆ time_dependent_value
-
-
-
-
-
-
- const TimeDependentValue stencil::Stencil < Cell, stencil_radius, TimeDependentValue >::time_dependent_value
-
-
-
-
-
The time-dependent value for this iteration.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1Stencil__coll__graph.map b/classstencil_1_1Stencil__coll__graph.map
deleted file mode 100644
index 1a249da..0000000
--- a/classstencil_1_1Stencil__coll__graph.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/classstencil_1_1Stencil__coll__graph.md5 b/classstencil_1_1Stencil__coll__graph.md5
deleted file mode 100644
index f72d84e..0000000
--- a/classstencil_1_1Stencil__coll__graph.md5
+++ /dev/null
@@ -1 +0,0 @@
-b9d558f6cfa25cfb5a65f3fb66a3c8f2
\ No newline at end of file
diff --git a/classstencil_1_1Stencil__coll__graph.png b/classstencil_1_1Stencil__coll__graph.png
deleted file mode 100644
index 6b21677..0000000
Binary files a/classstencil_1_1Stencil__coll__graph.png and /dev/null differ
diff --git a/classstencil_1_1cpu_1_1Grid-members.html b/classstencil_1_1cpu_1_1Grid-members.html
deleted file mode 100644
index 011dfbd..0000000
--- a/classstencil_1_1cpu_1_1Grid-members.html
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::cpu::Grid< Cell > , including all inherited members.
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1Grid.html b/classstencil_1_1cpu_1_1Grid.html
deleted file mode 100644
index c8b380c..0000000
--- a/classstencil_1_1cpu_1_1Grid.html
+++ /dev/null
@@ -1,552 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::cpu::Grid< Cell > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid class for the CPU backend.
- More...
-
-
#include <Grid.hpp >
-
-
- Grid (uindex_t c, uindex_t r)
- Create a new, uninitialized grid with the given dimensions.
-
- Grid (sycl::range< 2 > range)
- Create a new, uninitialized grid with the given dimensions.
-
- Grid (sycl::buffer< Cell, 2 > other_buffer)
- Create a new grid with the same size and contents as the given SYCL buffer.
-
- Grid (Grid const &other_grid)
- Create a new reference to the given grid.
-
-void copy_from_buffer (sycl::buffer< Cell, 2 > other_buffer)
- Copy the contents of the SYCL buffer into the grid.
-
-void copy_to_buffer (sycl::buffer< Cell, 2 > other_buffer)
- Copy the contents of the grid into the SYCL buffer.
-
-uindex_t get_grid_width () const
- Return the width, or number of columns, of the grid.
-
-uindex_t get_grid_height () const
- Return the height, or number of rows, of the grid.
-
-Grid make_similar () const
- Create an new, uninitialized grid with the same size as the current one.
-
-sycl::buffer< Cell, 2 > & get_buffer ()
-
-
-
-
template<typename Cell>
-class stencil::cpu::Grid< Cell >
A grid class for the CPU backend.
-
This grid, which fullfils the Grid concept, contains a two-dimensional buffer of cells to be used together with the StencilUpdate class.
-
The contents of the grid can be accessed by a host-side program using the GridAccessor class template. For example, one can write the contents of a grid
object as follows:
-
-
for (
uindex_t c = 0; c < grid.get_grid_width(); c++) {
-
for (
uindex_t r = 0; r < grid.get_grid_height(); r++) {
-
accessor[c][r] = foo(c, r);
-
}
-
}
-
An accessor for the grid.
Definition Grid.hpp:147
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
Alternatively, one may write their data into a SYCL buffer and copy it into the grid using the method copy_from_buffer . The method copy_to_buffer does the reverse: It writes the contents of the grid into a SYCL buffer.
-
Template Parameters
-
- Cell The cell type to store.
-
-
-
-
-
-
◆ Grid() [1/4]
-
-
-
-
-template<typename Cell >
-
-
-
-
Create a new, uninitialized grid with the given dimensions.
-
Parameters
-
- c The width, or number of columns, of the new grid.
- r The height, or number of rows, of the new grid.
-
-
-
-
-
-
-
-
◆ Grid() [2/4]
-
-
-
-
-template<typename Cell >
-
-
-
-
Create a new, uninitialized grid with the given dimensions.
-
Parameters
-
- range The range of the new grid. The first index will be the width and the second index will be the height of the grid.
-
-
-
-
-
-
-
-
◆ Grid() [3/4]
-
-
-
-
-template<typename Cell >
-
-
-
-
Create a new grid with the same size and contents as the given SYCL buffer.
-
The contents of the buffer will be copied to the grid by the host. The SYCL buffer can later be used elsewhere.
-
Parameters
-
- other_buffer The buffer with the contents of the new grid.
-
-
-
-
-
-
-
-
◆ Grid() [4/4]
-
-
-
-
-template<typename Cell >
-
-
-
-
Create a new reference to the given grid.
-
The newly created grid object will point to the same underlying data as the referenced grid. Changes made via the newly created grid object will also be visible to the old grid object, and vice-versa.
-
Parameters
-
- other_grid The other grid the new grid should reference.
-
-
-
-
-
-
-
-
-
◆ copy_from_buffer()
-
-
-
-
-template<typename Cell >
-
-
-
-
-
- void stencil::cpu::Grid < Cell >::copy_from_buffer
- (
- sycl::buffer< Cell, 2 >
- other_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Copy the contents of the SYCL buffer into the grid.
-
The SYCL buffer will be accessed read-only one the host; It may be used elsewhere too. The buffer however has to have the same size as the grid, otherwise a std::range_error is thrown.
-
Parameters
-
- other_buffer The buffer to copy the data from.
-
-
-
-
Exceptions
-
- std::range_error The size of the buffer does not match the grid.
-
-
-
-
-
-
-
-
◆ copy_to_buffer()
-
-
-
-
-template<typename Cell >
-
-
-
-
-
- void stencil::cpu::Grid < Cell >::copy_to_buffer
- (
- sycl::buffer< Cell, 2 >
- other_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Copy the contents of the grid into the SYCL buffer.
-
The contents of the SYCL buffer will be overwritten on the host. The buffer also has to have the same size as the grid, otherwise a std::range_error is thrown.
-
Parameters
-
- other_buffer The buffer to copy the data to.
-
-
-
-
Exceptions
-
- std::range_error The size of the buffer does not match the grid.
-
-
-
-
-
-
-
-
◆ get_buffer()
-
-
-
-
-template<typename Cell >
-
-
-
-
-
-
-
◆ get_grid_height()
-
-
-
-
-template<typename Cell >
-
-
-
-
Return the height, or number of rows, of the grid.
-
-
-
-
-
◆ get_grid_width()
-
-
-
-
-template<typename Cell >
-
-
-
-
Return the width, or number of columns, of the grid.
-
-
-
-
-
◆ make_similar()
-
-
-
-
-template<typename Cell >
-
-
-
-
Create an new, uninitialized grid with the same size as the current one.
-
-
-
-
-
-
◆ dimensions
-
-
-
-
-template<typename Cell >
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of dimensions of the grid.
-
May be changed in the future when other dimensions are supported.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor-members.html b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor-members.html
deleted file mode 100644
index 91cb290..0000000
--- a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor-members.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::cpu::Grid< Cell >::GridAccessor< access_mode > , including all inherited members.
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html
deleted file mode 100644
index c904e3a..0000000
--- a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::cpu::Grid< Cell >::GridAccessor< access_mode > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
An accessor for the grid.
- More...
-
-
#include <Grid.hpp >
-
-
-
-
-
-
-
template<typename Cell>
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-class stencil::cpu::Grid< Cell >::GridAccessor< access_mode >
An accessor for the grid.
-
Instances of this class provide access to a grid, so that host code can read and write the contents of a grid. As such, it fullfils the GridAccessor concept.
-
Template Parameters
-
- access_mode The access mode for the accessor.
-
-
-
-
-
-
◆ GridAccessor()
-
-
-
-
-template<typename Cell >
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
Create a new accessor to the given grid.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.map b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.map
deleted file mode 100644
index 4d10650..0000000
--- a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.md5 b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.md5
deleted file mode 100644
index df74d66..0000000
--- a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.md5
+++ /dev/null
@@ -1 +0,0 @@
-fced7a9678c4d21ff13711253ea33665
\ No newline at end of file
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.png b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.png
deleted file mode 100644
index d22ffec..0000000
Binary files a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__coll__graph.png and /dev/null differ
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.map b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.map
deleted file mode 100644
index 4d10650..0000000
--- a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.md5 b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.md5
deleted file mode 100644
index df74d66..0000000
--- a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.md5
+++ /dev/null
@@ -1 +0,0 @@
-fced7a9678c4d21ff13711253ea33665
\ No newline at end of file
diff --git a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.png b/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.png
deleted file mode 100644
index d22ffec..0000000
Binary files a/classstencil_1_1cpu_1_1Grid_1_1GridAccessor__inherit__graph.png and /dev/null differ
diff --git a/classstencil_1_1cpu_1_1StencilUpdate-members.html b/classstencil_1_1cpu_1_1StencilUpdate-members.html
deleted file mode 100644
index 852a0b9..0000000
--- a/classstencil_1_1cpu_1_1StencilUpdate-members.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::cpu::StencilUpdate< F > , including all inherited members.
-
-
-
-
-
diff --git a/classstencil_1_1cpu_1_1StencilUpdate.html b/classstencil_1_1cpu_1_1StencilUpdate.html
deleted file mode 100644
index ac5a30c..0000000
--- a/classstencil_1_1cpu_1_1StencilUpdate.html
+++ /dev/null
@@ -1,314 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::cpu::StencilUpdate< F > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid updater that applies an iterative stencil code to a grid.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-struct Params
- Parameters for the stencil updater. More...
-
-
-
-using GridImpl = Grid < Cell >
- Shorthand for the used and supported grid type.
-
-
-
-
template<concepts::TransitionFunction F>
-class stencil::cpu::StencilUpdate< F >
A grid updater that applies an iterative stencil code to a grid.
-
This updater applies an iterative stencil code, defined by the template parameter F
, to the grid; As often as requested.
-
Template Parameters
-
- F The transition function to apply to input grids.
-
-
-
-
-
-
◆ GridImpl
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Shorthand for the used and supported grid type.
-
-
-
-
-
-
◆ StencilUpdate()
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Create a new stencil updater object.
-
-
-
-
-
-
◆ get_n_processed_cells()
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Return the accumulated total number of cells processed by this updater.
-
For each call of to operator()() , this is the width times the height of the grid, times the number of computed iterations. This will also be accumulated across multiple calls to operator()() .
-
-
-
-
-
◆ get_params()
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Return a reference to the parameters.
-
Modifications to the parameters struct will be used in the next call to operator()() .
-
-
-
-
-
◆ get_walltime()
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Return the accumulated runtime of the updater, measured from the host side.
-
For each call to operator()() , the time it took to submit all kernels and, if Params::blocking is true, to finish the computation is recorded and accumulated.
-
-
-
-
-
◆ operator()()
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Compute a new grid based on the source grid, using the configured transition function.
-
The computation does not work in-place. Instead, it will allocate two additional grids with the same size as the source grid and use them for a double buffering scheme. Therefore, you are free to reuse the source grid as it will not be altered.
-
If Params::blocking is set to true, this method will block until the computation is complete. Otherwise, it will return as soon as all kernels are submitted.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1Grid-members.html b/classstencil_1_1monotile_1_1Grid-members.html
deleted file mode 100644
index 32811eb..0000000
--- a/classstencil_1_1monotile_1_1Grid-members.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::monotile::Grid< Cell, word_size > , including all inherited members.
-
- copy_from_buffer (sycl::buffer< Cell, 2 > input_buffer)stencil::monotile::Grid< Cell, word_size > inline
- copy_to_buffer (sycl::buffer< Cell, 2 > output_buffer)stencil::monotile::Grid< Cell, word_size > inline
- dimensions stencil::monotile::Grid< Cell, word_size > static
- get_grid_height () conststencil::monotile::Grid< Cell, word_size > inline
- get_grid_width () conststencil::monotile::Grid< Cell, word_size > inline
- Grid (uindex_t grid_width, uindex_t grid_height)stencil::monotile::Grid< Cell, word_size > inline
- Grid (sycl::range< 2 > range)stencil::monotile::Grid< Cell, word_size > inline
- Grid (sycl::buffer< Cell, 2 > buffer)stencil::monotile::Grid< Cell, word_size > inline
- Grid (Grid const &other_grid)stencil::monotile::Grid< Cell, word_size > inline
- make_similar () conststencil::monotile::Grid< Cell, word_size > inline
- submit_read (sycl::queue queue)stencil::monotile::Grid< Cell, word_size > inline
- submit_write (sycl::queue queue)stencil::monotile::Grid< Cell, word_size > inline
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1Grid.html b/classstencil_1_1monotile_1_1Grid.html
deleted file mode 100644
index e3b2b69..0000000
--- a/classstencil_1_1monotile_1_1Grid.html
+++ /dev/null
@@ -1,627 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::monotile::Grid< Cell, word_size > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid class for the monotile architecture.
- More...
-
-
#include <Grid.hpp >
-
-
- Grid (uindex_t grid_width, uindex_t grid_height)
- Create a new, uninitialized grid with the given dimensions.
-
- Grid (sycl::range< 2 > range)
- Create a new, uninitialized grid with the given dimensions.
-
- Grid (sycl::buffer< Cell, 2 > buffer)
- Create a new grid with the same size and contents as the given SYCL buffer.
-
- Grid (Grid const &other_grid)
- Create a new reference to the given grid.
-
-Grid make_similar () const
- Create an new, uninitialized grid with the same size as the current one.
-
-uindex_t get_grid_width () const
- Return the width, or number of columns, of the grid.
-
-uindex_t get_grid_height () const
- Return the height, or number of rows, of the grid.
-
-void copy_from_buffer (sycl::buffer< Cell, 2 > input_buffer)
- Copy the contents of the SYCL buffer into the grid.
-
-void copy_to_buffer (sycl::buffer< Cell, 2 > output_buffer)
- Copy the contents of the grid into the SYCL buffer.
-
-template<typename in_pipe >
-sycl::event submit_read (sycl::queue queue)
- Submit a kernel that sends the contents of the grid into a pipe.
-
-template<typename out_pipe >
-sycl::event submit_write (sycl::queue queue)
- Submit a kernel that receives cells from the pipe and writes them to the grid.
-
-
-
-
template<class Cell,
uindex_t word_size = 64>
-class stencil::monotile::Grid< Cell, word_size >
A grid class for the monotile architecture.
-
This grid, which fullfils the Grid concept, contains a two-dimensional buffer of cells to be used together with the StencilUpdate class.
-
The contents of the grid can be accessed by a host-side program using the GridAccessor class template. For example, one can write the contents of a grid
object as follows:
-
-
for (
uindex_t c = 0; c < grid.get_grid_width(); c++) {
-
for (
uindex_t r = 0; r < grid.get_grid_height(); r++) {
-
accessor[c][r] = foo(c, r);
-
}
-
}
-
An accessor for the monotile grid.
Definition Grid.hpp:144
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
Alternatively, one may write their data into a SYCL buffer and copy it into the grid using the method copy_from_buffer . The method copy_to_buffer does the reverse: It writes the contents of the grid into a SYCL buffer.
-
On the device side, the data can be read or written with the help of the method templates submit_read and submit_write . Those take a SYCL pipe as a template argument and enqueue kernels that read/write the contents of the grid to/from the pipes.
-
Template Parameters
-
- Cell The cell type to store.
- word_size The word size of the memory system, in bytes. This is used to optimize the kernels submitted by submit_read and submit_write .
-
-
-
-
-
-
◆ Grid() [1/4]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Create a new, uninitialized grid with the given dimensions.
-
Parameters
-
- grid_width The width, or number of columns, of the new grid.
- grid_height The height, or number of rows, of the new grid.
-
-
-
-
-
-
-
-
◆ Grid() [2/4]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Create a new, uninitialized grid with the given dimensions.
-
Parameters
-
- range The range of the new grid. The first index will be the width and the second index will be the height of the grid.
-
-
-
-
-
-
-
-
◆ Grid() [3/4]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Create a new grid with the same size and contents as the given SYCL buffer.
-
The contents of the buffer will be copied to the grid by the host. The SYCL buffer can later be used elsewhere.
-
Parameters
-
- buffer The buffer with the contents of the new grid.
-
-
-
-
-
-
-
-
◆ Grid() [4/4]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Create a new reference to the given grid.
-
The newly created grid object will point to the same underlying data as the referenced grid. Changes made via the newly created grid object will also be visible to the old grid object, and vice-versa.
-
Parameters
-
- other_grid The other grid the new grid should reference.
-
-
-
-
-
-
-
-
-
◆ copy_from_buffer()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
-
- void stencil::monotile::Grid < Cell, word_size >::copy_from_buffer
- (
- sycl::buffer< Cell, 2 >
- input_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Copy the contents of the SYCL buffer into the grid.
-
The SYCL buffer will be accessed read-only one the host; It may be used elsewhere too. The buffer however has to have the same size as the grid, otherwise a std::range_error is thrown.
-
Parameters
-
- input_buffer The buffer to copy the data from.
-
-
-
-
Exceptions
-
- std::range_error The size of the buffer does not match the grid.
-
-
-
-
-
-
-
-
◆ copy_to_buffer()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
-
- void stencil::monotile::Grid < Cell, word_size >::copy_to_buffer
- (
- sycl::buffer< Cell, 2 >
- output_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Copy the contents of the grid into the SYCL buffer.
-
The contents of the SYCL buffer will be overwritten on the host. The buffer also has to have the same size as the grid, otherwise a std::range_error is thrown.
-
Parameters
-
- output_buffer The buffer to copy the data to.
-
-
-
-
Exceptions
-
- std::range_error The size of the buffer does not match the grid.
-
-
-
-
-
-
-
-
◆ get_grid_height()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Return the height, or number of rows, of the grid.
-
-
-
-
-
◆ get_grid_width()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Return the width, or number of columns, of the grid.
-
-
-
-
-
◆ make_similar()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
Create an new, uninitialized grid with the same size as the current one.
-
-
-
-
-
◆ submit_read()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<typename in_pipe >
-
-
-
-
Submit a kernel that sends the contents of the grid into a pipe.
-
The entirety of the grid will be send into the pipe in column-major order, meaning that the last index (which denotes the row) will change the quickest. The method returns the event of the launched kernel immediately.
-
This method is explicitly part of the user-facing API: You are allowed and encouraged to use this method to feed custom kernels.
-
Template Parameters
-
- in_pipe The pipe the data is sent into.
-
-
-
-
Parameters
-
- queue The queue to submit the kernel to.
-
-
-
-
Returns The event object of the submitted kernel.
-
-
-
-
-
◆ submit_write()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<typename out_pipe >
-
-
-
-
Submit a kernel that receives cells from the pipe and writes them to the grid.
-
The kernel expects that the entirety of the grid can be overwritten with the cells read from the pipe. Also, it expects that the cells are sent in column-major order, meaning that the last index (which denotes the row) will change the quickest. The method returns the event of the launched kernel immediately.
-
This method is explicitly part of the user-facing API: You are allowed and encouraged to use this method to feed custom kernels.
-
Template Parameters
-
- out_pipe The pipe the data is received from.
-
-
-
-
Parameters
-
- queue The queue to submit the kernel to.
-
-
-
-
Returns The event object of the submitted kernel.
-
-
-
-
-
-
◆ dimensions
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of dimensions of the grid.
-
May be changed in the future when other dimensions are supported.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1Grid_1_1GridAccessor-members.html b/classstencil_1_1monotile_1_1Grid_1_1GridAccessor-members.html
deleted file mode 100644
index 156f653..0000000
--- a/classstencil_1_1monotile_1_1Grid_1_1GridAccessor-members.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , including all inherited members.
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html b/classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html
deleted file mode 100644
index 1428e56..0000000
--- a/classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html
+++ /dev/null
@@ -1,334 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
An accessor for the monotile grid.
- More...
-
-
#include <Grid.hpp >
-
-
-static constexpr uindex_t dimensions = Grid::dimensions
- The number of dimensions of the underlying grid.
-
-
-
-
template<class Cell,
uindex_t word_size = 64>
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-class stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode >
An accessor for the monotile grid.
-
Instances of this class provide access to a grid, so that host code can read and write the contents of a grid. As such, it fullfils the GridAccessor concept.
-
Template Parameters
-
- access_mode The access mode for the accessor.
-
-
-
-
-
-
◆ BaseSubscript
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
Shorthand for the used subscript type.
-
-
-
-
-
-
◆ GridAccessor()
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
Create a new accessor to the given grid.
-
-
-
-
-
-
◆ operator[]() [1/3]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
Access a cell of the grid.
-
Parameters
-
- id The index of the accessed cell. The first index is the column index, the second one is the row index.
-
-
-
-
Returns A constant reference to the indexed cell.
-
-
-
-
-
◆ operator[]() [2/3]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
Access a cell of the grid.
-
Parameters
-
- id The index of the accessed cell. The first index is the column index, the second one is the row index.
-
-
-
-
Returns A reference to the indexed cell.
-
-
-
-
-
◆ operator[]() [3/3]
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
Access/Dereference the first dimension.
-
This subscript operator is the first subscript in an expression like accessor[i_column][i_row]
. It will return a BaseSubscript object that handles subsequent dimensions.
-
-
-
-
-
-
◆ dimensions
-
-
-
-
-template<class Cell ,
uindex_t word_size = 64>
-
-template<sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of dimensions of the underlying grid.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1StencilUpdate-members.html b/classstencil_1_1monotile_1_1StencilUpdate-members.html
deleted file mode 100644
index 351f707..0000000
--- a/classstencil_1_1monotile_1_1StencilUpdate-members.html
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , including all inherited members.
-
- get_kernel_runtime () conststencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > inline
- get_n_processed_cells () conststencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > inline
- get_params ()stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > inline
- get_walltime () conststencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > inline
- GridImpl typedefstencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >
- operator() (GridImpl &source_grid)stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > inline
- StencilUpdate (Params params)stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > inline
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1StencilUpdate.html b/classstencil_1_1monotile_1_1StencilUpdate.html
deleted file mode 100644
index a549ac3..0000000
--- a/classstencil_1_1monotile_1_1StencilUpdate.html
+++ /dev/null
@@ -1,352 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid updater that applies an iterative stencil code to a grid.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-struct Params
- Parameters for the stencil updater. More...
-
-
-
-using GridImpl = Grid < Cell, word_size >
- Shorthand for the used and supported grid type.
-
-
-
- StencilUpdate (Params params)
- Create a new stencil updater object.
-
-Params & get_params ()
- Return a reference to the parameters.
-
-GridImpl operator() (GridImpl &source_grid)
- Compute a new grid based on the source grid, using the configured transition function.
-
-uindex_t get_n_processed_cells () const
- Return the accumulated total number of cells processed by this updater.
-
-double get_kernel_runtime () const
- Return the accumulated total runtime of the execution kernel.
-
-double get_walltime () const
- Return the accumulated runtime of the updater, measured from the host side.
-
-
-
-
template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-class stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >
A grid updater that applies an iterative stencil code to a grid.
-
This updater applies an iterative stencil code, defined by the template parameter F
, to the grid; As often as requested. Since the underlying FPGA design follows the Monotile architecture (See monotile ), an instance of this updater template can only process grids up to the defined max_grid_width
and max_grid_height
.
-
Template Parameters
-
- F The transition function to apply to input grids.
- n_processing_elements (Optimization parameter) The number of processing elements (PEs) to implement. Increasing the number of PEs leads to a higher performance since more iterations are computed in parallel. However, it will also increase the resource and space usage of the design. Too many PEs might also decrease the clock frequency.
- max_grid_width (Optimization parameter) The maximally supported grid width. For best hardware utilization, this should be a power of two. Increase this parameter to the maximum your application is expected to handle. However, higher maximal grid width might lead to increased logic and space usage as well as decreased clock frequencies.
- max_grid_height (Optimization parameter) The maximally supported grid height. Increase this parameter to the maximum your application is expected to handle. However, increasing the maximal grid height will increase the BRAM usage of each PE.
- TDVStrategy (Optimization parameter) The precomputation strategy for the time-dependent value system.
- word_size (Optimization parameter) The width of the global memory channel, in bytes. For DDR-based systems, this should be 512 bits, or 64 bytes.
-
-
-
-
-
-
◆ GridImpl
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Shorthand for the used and supported grid type.
-
-
-
-
-
-
◆ StencilUpdate()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Create a new stencil updater object.
-
-
-
-
-
-
◆ get_kernel_runtime()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
-
- double stencil::monotile::StencilUpdate < F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::get_kernel_runtime
- (
- )
- const
-
-
-
-
-inline
-
-
-
-
-
Return the accumulated total runtime of the execution kernel.
-
This runtime is accumulated across multiple calls to operator()() . However, this is only possible if Params::profiling is set to true.
-
-
-
-
-
◆ get_n_processed_cells()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Return the accumulated total number of cells processed by this updater.
-
For each call of to operator()() , this is the width times the height of the grid, times the number of computed iterations. This will also be accumulated across multiple calls to operator()() .
-
-
-
-
-
◆ get_params()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Return a reference to the parameters.
-
Modifications to the parameters struct will be used in the next call to operator()() .
-
-
-
-
-
◆ get_walltime()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
-
- double stencil::monotile::StencilUpdate < F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::get_walltime
- (
- )
- const
-
-
-
-
-inline
-
-
-
-
-
Return the accumulated runtime of the updater, measured from the host side.
-
For each call to operator()() , the time it took to submit all kernels and, if Params::blocking is true, to finish the computation is recorded and accumulated.
-
-
-
-
-
◆ operator()()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Compute a new grid based on the source grid, using the configured transition function.
-
The computation does not work in-place. Instead, it will allocate two additional grids with the same size as the source grid and use them for a double buffering scheme. Therefore, you are free to reuse the source grid as it will not be altered.
-
If Params::blocking is set to true, this method will block until the computation is complete. Otherwise, it will return as soon as all kernels are submitted.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1StencilUpdateKernel-members.html b/classstencil_1_1monotile_1_1StencilUpdateKernel-members.html
deleted file mode 100644
index dc0875d..0000000
--- a/classstencil_1_1monotile_1_1StencilUpdateKernel-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > , including all inherited members.
-
- operator() () conststencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > inline
- StencilUpdateKernel (TransFunc trans_func, uindex_t i_iteration, uindex_t target_i_iteration, uindex_t grid_width, uindex_t grid_height, Cell halo_value, TDVKernelArgument tdv_kernel_argument)stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > inline
-
-
-
-
-
diff --git a/classstencil_1_1monotile_1_1StencilUpdateKernel.html b/classstencil_1_1monotile_1_1StencilUpdateKernel.html
deleted file mode 100644
index c73239e..0000000
--- a/classstencil_1_1monotile_1_1StencilUpdateKernel.html
+++ /dev/null
@@ -1,239 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
The execution kernel of the monotile architecture.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-
template<concepts::TransitionFunction TransFunc, tdv::single_pass::KernelArgument< TransFunc > TDVKernelArgument,
uindex_t n_processing_elements,
uindex_t max_grid_width,
uindex_t max_grid_height, typename in_pipe, typename out_pipe>
-requires (n_processing_elements % TransFunc::n_subiterations == 0)
-class stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe >
The execution kernel of the monotile architecture.
-
It receives the contents of a tile and it's halo from the in_pipe
, applies the transition function when applicable and writes the result to the out_pipe
.
-
With the monotile approach, the whole grid fits in one tile. This eliminates the need to calculate the cells of the tile halo, reducing the cache size and number of loop iterations. More is described in monotile .
-
Template Parameters
-
- TransFunc The type of transition function to use.
- TDVKernelArgument The type of parameter for the TDV system that is passed from the host to the kernel.
- n_processing_elements The number of processing elements to use. Similar to an unroll factor for a loop.
- max_grid_width The maximum number of columns in the grid. This will define the bit width of the cell indices.
- max_grid_height The maximum number of rows in the grid. This will define the size of the column buffer.
- in_pipe The pipe to read from.
- out_pipe The pipe to write to.
-
-
-
-
-
-
◆ StencilUpdateKernel()
-
-
-
-
-template<concepts::TransitionFunction TransFunc, tdv::single_pass::KernelArgument< TransFunc > TDVKernelArgument,
uindex_t n_processing_elements,
uindex_t max_grid_width,
uindex_t max_grid_height, typename in_pipe , typename out_pipe >
-
-
-
-
-
- stencil::monotile::StencilUpdateKernel < TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe >::StencilUpdateKernel
- (
- TransFunc
- trans_func ,
-
-
-
-
- uindex_t
- i_iteration ,
-
-
-
-
- uindex_t
- target_i_iteration ,
-
-
-
-
- uindex_t
- grid_width ,
-
-
-
-
- uindex_t
- grid_height ,
-
-
-
-
- Cell
- halo_value ,
-
-
-
-
- TDVKernelArgument
- tdv_kernel_argument
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Create and configure the execution kernel.
-
Parameters
-
- trans_func The instance of the transition function to use.
- i_iteration The iteration index of the input cells.
- target_i_iteration The final, requested iteration index after the updates. This may be higher than what the kernel can process in one pass. In this case, the kernel will compute the maximum number of iterations.
- grid_width The number of cell columns in the grid.
- grid_height The number of cell rows in the grid.
- halo_value The value of cells outside the grid.
- tdv_kernel_argument The argument for the TDV system that is passed from the host to the device. This may for example contain global memory accessors.
-
-
-
-
-
-
-
-
-
◆ operator()()
-
-
-
-
-template<concepts::TransitionFunction TransFunc, tdv::single_pass::KernelArgument< TransFunc > TDVKernelArgument,
uindex_t n_processing_elements,
uindex_t max_grid_width,
uindex_t max_grid_height, typename in_pipe , typename out_pipe >
-
-
-
-
Execute the kernel.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState-members.html b/classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState-members.html
deleted file mode 100644
index e301e79..0000000
--- a/classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState-members.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html b/classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html
deleted file mode 100644
index f5f6eed..0000000
--- a/classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-using TDV = typename TransFunc::TimeDependentValue
-
-
-
-
-
◆ TDV
-
-
-
-
-
◆ GlobalState() [1/2]
-
-
-
-
◆ GlobalState() [2/2]
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1Grid-members.html b/classstencil_1_1tiling_1_1Grid-members.html
deleted file mode 100644
index e91920e..0000000
--- a/classstencil_1_1tiling_1_1Grid-members.html
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > , including all inherited members.
-
- copy_from_buffer (sycl::buffer< Cell, 2 > input_buffer)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- copy_to_buffer (sycl::buffer< Cell, 2 > output_buffer)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- dimensions stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > static
- get_grid_height () conststencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- get_grid_width () conststencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- get_tile_range () conststencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- Grid (uindex_t grid_width, uindex_t grid_height)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- Grid (sycl::range< 2 > range)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- Grid (sycl::buffer< Cell, 2 > input_buffer)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- Grid (Grid const &other_grid)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- make_similar () conststencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- submit_read (sycl::queue &queue, uindex_t tile_c, uindex_t tile_r, Cell halo_value)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
- submit_write (sycl::queue queue, uindex_t tile_c, uindex_t tile_r)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > inline
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1Grid.html b/classstencil_1_1tiling_1_1Grid.html
deleted file mode 100644
index b9d3179..0000000
--- a/classstencil_1_1tiling_1_1Grid.html
+++ /dev/null
@@ -1,721 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid class for the tiling architecture.
- More...
-
-
#include <Grid.hpp >
-
-
- Grid (uindex_t grid_width, uindex_t grid_height)
- Create a new, uninitialized grid with the given dimensions.
-
- Grid (sycl::range< 2 > range)
- Create a new, uninitialized grid with the given dimensions.
-
- Grid (sycl::buffer< Cell, 2 > input_buffer)
- Create a new grid with the same size and contents as the given SYCL buffer.
-
- Grid (Grid const &other_grid)
- Create a new reference to the given grid.
-
-void copy_from_buffer (sycl::buffer< Cell, 2 > input_buffer)
- Copy the contents of the SYCL buffer into the grid.
-
-void copy_to_buffer (sycl::buffer< Cell, 2 > output_buffer)
- Copy the contents of the grid into the SYCL buffer.
-
-Grid make_similar () const
- Create an new, uninitialized grid with the same size as the current one.
-
-uindex_t get_grid_width () const
- Return the width, or number of columns, of the grid.
-
-uindex_t get_grid_height () const
- Return the height, or number of rows, of the grid.
-
-GenericID < uindex_t > get_tile_range () const
- Return the range of (central) tiles of the grid.
-
-template<typename in_pipe >
-sycl::event submit_read (sycl::queue &queue, uindex_t tile_c, uindex_t tile_r, Cell halo_value)
- Submit a kernel that sends a tile of the grid into a pipe.
-
-template<typename out_pipe >
-sycl::event submit_write (sycl::queue queue, uindex_t tile_c, uindex_t tile_r)
- Submit a kernel that receives cells from the pipe and writes them to the grid.
-
-
-
-
template<typename Cell,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024,
uindex_t halo_radius = 1>
-class stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
A grid class for the tiling architecture.
-
This grid, which fullfils the Grid concept, contains a two-dimensional buffer of cells to be used together with the StencilUpdate class.
-
Since this class template requires multiple template arguments that must match the used StencilUpdate instance, it is advised to use the StencilUpdate::GridImpl shorthand instead of re-applying the same arguments to the grid class template.
-
The contents of the grid can be accessed by a host-side program using the GridAccessor class template. For example, one can write the contents of a grid
object as follows:
-
-
for (
uindex_t c = 0; c < grid.get_grid_width(); c++) {
-
for (
uindex_t r = 0; r < grid.get_grid_height(); r++) {
-
accessor[c][r] = foo(c, r);
-
}
-
}
-
An accessor for the monotile grid.
Definition Grid.hpp:135
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
Alternatively, one may write their data into a SYCL buffer and copy it into the grid using the method copy_from_buffer . The method copy_to_buffer does the reverse: It writes the contents of the grid into a SYCL buffer.
-
On the device side, the data can be read or written with the help of the method templates submit_read and submit_write . Those take a SYCL pipe as a template argument and enqueue kernels that read/write the contents of the grid to/from the pipes.
-
Template Parameters
-
- Cell The cell type to store.
- tile_width The width of a grid tile. This has to match the tile width of the used StencilUpdate class instance.
- tile_height The height of a grid tile. This has to match the tile height of the used StencilUpdate class instance.
- halo_radius The halo radius required for input tiles. This has to be the number of PEs in a StencilUpdate times the stencil radius of the implemented transition function.
-
-
-
-
-
-
◆ Grid() [1/4]
-
-
-
-
-
Create a new, uninitialized grid with the given dimensions.
-
Parameters
-
- grid_width The width, or number of columns, of the new grid.
- grid_height The height, or number of rows, of the new grid.
-
-
-
-
-
-
-
-
◆ Grid() [2/4]
-
-
-
-
-
-
-
-
-
- stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::Grid
- (
- sycl::range< 2 >
- range )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new, uninitialized grid with the given dimensions.
-
Parameters
-
- range The range of the new grid. The first index will be the width and the second index will be the height of the grid.
-
-
-
-
-
-
-
-
◆ Grid() [3/4]
-
-
-
-
-
-
-
-
-
- stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::Grid
- (
- sycl::buffer< Cell, 2 >
- input_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new grid with the same size and contents as the given SYCL buffer.
-
The contents of the buffer will be copied to the grid by the host. The SYCL buffer can later be used elsewhere.
-
Parameters
-
- input_buffer The buffer with the contents of the new grid.
-
-
-
-
-
-
-
-
◆ Grid() [4/4]
-
-
-
-
-
-
-
-
-
- stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::Grid
- (
- Grid < Cell, tile_width, tile_height, halo_radius > const &
- other_grid )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new reference to the given grid.
-
The newly created grid object will point to the same underlying data as the referenced grid. Changes made via the newly created grid object will also be visible to the old grid object, and vice-versa.
-
Parameters
-
- other_grid The other grid the new grid should reference.
-
-
-
-
-
-
-
-
-
◆ copy_from_buffer()
-
-
-
-
-
-
-
-
-
- void stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::copy_from_buffer
- (
- sycl::buffer< Cell, 2 >
- input_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Copy the contents of the SYCL buffer into the grid.
-
The SYCL buffer will be accessed read-only one the host; It may be used elsewhere too. The buffer however has to have the same size as the grid, otherwise a std::range_error is thrown.
-
Parameters
-
- input_buffer The buffer to copy the data from.
-
-
-
-
Exceptions
-
- std::range_error The size of the buffer does not match the grid.
-
-
-
-
-
-
-
-
◆ copy_to_buffer()
-
-
-
-
-
-
-
-
-
- void stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::copy_to_buffer
- (
- sycl::buffer< Cell, 2 >
- output_buffer )
-
-
-
-
-
-inline
-
-
-
-
-
Copy the contents of the grid into the SYCL buffer.
-
The contents of the SYCL buffer will be overwritten on the host. The buffer also has to have the same size as the grid, otherwise a std::range_error is thrown.
-
Parameters
-
- output_buffer The buffer to copy the data to.
-
-
-
-
Exceptions
-
- std::range_error The size of the buffer does not match the grid.
-
-
-
-
-
-
-
-
◆ get_grid_height()
-
-
-
-
-
Return the height, or number of rows, of the grid.
-
-
-
-
-
◆ get_grid_width()
-
-
-
-
-
Return the width, or number of columns, of the grid.
-
-
-
-
-
◆ get_tile_range()
-
-
-
-
-
Return the range of (central) tiles of the grid.
-
This is not the range of a single tile nor is the range of the grid. It is the range of valid arguments for submit_read and submit_write . For example, if the grid is 60 by 60 cells in size and a tile is 32 by 32 cells in size, the tile range would be 2 by 2 tiles.
-
Returns The range of tiles of the grid.
-
-
-
-
-
◆ make_similar()
-
-
-
-
-
Create an new, uninitialized grid with the same size as the current one.
-
-
-
-
-
◆ submit_read()
-
-
-
-
-
-template<typename in_pipe >
-
-
-
-
-
- sycl::event stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::submit_read
- (
- sycl::queue &
- queue ,
-
-
-
-
- uindex_t
- tile_c ,
-
-
-
-
- uindex_t
- tile_r ,
-
-
-
-
- Cell
- halo_value
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Submit a kernel that sends a tile of the grid into a pipe.
-
The submitted kernel will send the contents of a tile, along with the required halo, into a pipe in column-major order. This means that the last index (which denotes the row) will change the quickest. The method returns the event of the launched kernel immediately.
-
The tile column and row indices denote the indices of the tile , not the cells. The starting column index will be tile_c * tile_width - halo_radius
and the end index will be (tile_c + 1) * tile_width + halo_radius
. The start and end indices for the rows are analogous.
-
This method is explicitly part of the user-facing API: You are allowed and encouraged to use this method to feed custom kernels.
-
Template Parameters
-
- in_pipe The pipe the data is sent into.
-
-
-
-
Parameters
-
- queue The queue to submit the kernel to.
- tile_c The column index of the tile to read.
- tile_r The row index of the tile to read.
- halo_value The value to present for cells outside of the grid.
-
-
-
-
Exceptions
-
- std::out_of_range The grid does not contain the requested tile; Either the column or row index to high.
-
-
-
-
Returns The event object of the submitted kernel.
-
-
-
-
-
◆ submit_write()
-
-
-
-
-
-template<typename out_pipe >
-
-
-
-
-
- sycl::event stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::submit_write
- (
- sycl::queue
- queue ,
-
-
-
-
- uindex_t
- tile_c ,
-
-
-
-
- uindex_t
- tile_r
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Submit a kernel that receives cells from the pipe and writes them to the grid.
-
The kernel expects that one tile worth of cells can be read from the pipe. Also, it expects that the cells are sent in column-major order, meaning that the last index (which denotes the row) will change the quickest. The method returns the event of the launched kernel immediately.
-
The tile column and row indices denote the indices of the tile , not the cells. The starting column index will be tile_c * tile_width
and the end index will be (tile_c + 1) * tile_width
. The start and end indices for the rows are analogous.
-
This method is explicitly part of the user-facing API: You are allowed and encouraged to use this method to feed custom kernels.
-
Template Parameters
-
- out_pipe The pipe the data is received from.
-
-
-
-
Parameters
-
- queue The queue to submit the kernel to.
- tile_c The column index of the tile to read.
- tile_r The row index of the tile to read.
-
-
-
-
Exceptions
-
- std::out_of_range The grid does not contain the requested tile; Either the column or row index to high.
-
-
-
-
Returns The event object of the submitted kernel.
-
-
-
-
-
-
◆ dimensions
-
-
-
-
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of dimensions of the grid.
-
May be changed in the future when other dimensions are supported.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1Grid_1_1GridAccessor-members.html b/classstencil_1_1tiling_1_1Grid_1_1GridAccessor-members.html
deleted file mode 100644
index f85cee1..0000000
--- a/classstencil_1_1tiling_1_1Grid_1_1GridAccessor-members.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > , including all inherited members.
-
- BaseSubscript typedefstencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
- dimensions stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > static
- GridAccessor (Grid &grid)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > inline
- operator[] (uindex_t i)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > inline
- operator[] (sycl::id< 2 > id)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > inline
- operator[] (sycl::id< 2 > id)stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > inline
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html b/classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html
deleted file mode 100644
index 2d273fe..0000000
--- a/classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html
+++ /dev/null
@@ -1,334 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
An accessor for the monotile grid.
- More...
-
-
#include <Grid.hpp >
-
-
-static constexpr uindex_t dimensions = Grid::dimensions
- The number of dimensions of the underlying grid.
-
-
-
-
template<typename Cell,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024,
uindex_t halo_radius = 1>
-template<sycl::access::mode access_mode>
-class stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
An accessor for the monotile grid.
-
Instances of this class provide access to a grid, so that host code can read and write the contents of a grid. As such, it fullfils the GridAccessor concept.
-
Template Parameters
-
- access_mode The access mode for the accessor.
-
-
-
-
-
-
◆ BaseSubscript
-
-
-
-
-
-template<sycl::access::mode access_mode>
-
-
-
-
Shorthand for the used subscript type.
-
-
-
-
-
-
◆ GridAccessor()
-
-
-
-
-
-template<sycl::access::mode access_mode>
-
-
-
-
-
- stencil::tiling::Grid < Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >::GridAccessor
- (
- Grid &
- grid )
-
-
-
-
-
-inline
-
-
-
-
-
Create a new accessor to the given grid.
-
-
-
-
-
-
◆ operator[]() [1/3]
-
-
-
-
-
-template<sycl::access::mode access_mode>
-
-
-
-
Access a cell of the grid.
-
Parameters
-
- id The index of the accessed cell. The first index is the column index, the second one is the row index.
-
-
-
-
Returns A constant reference to the indexed cell.
-
-
-
-
-
◆ operator[]() [2/3]
-
-
-
-
-
-template<sycl::access::mode access_mode>
-
-
-
-
Access a cell of the grid.
-
Parameters
-
- id The index of the accessed cell. The first index is the column index, the second one is the row index.
-
-
-
-
Returns A reference to the indexed cell.
-
-
-
-
-
◆ operator[]() [3/3]
-
-
-
-
-
-template<sycl::access::mode access_mode>
-
-
-
-
Access/Dereference the first dimension.
-
This subscript operator is the first subscript in an expression like accessor[i_column][i_row]
. It will return a BaseSubscript object that handles subsequent dimensions.
-
-
-
-
-
-
◆ dimensions
-
-
-
-
-
-template<sycl::access::mode access_mode>
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The number of dimensions of the underlying grid.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1StencilUpdate-members.html b/classstencil_1_1tiling_1_1StencilUpdate-members.html
deleted file mode 100644
index 6425c07..0000000
--- a/classstencil_1_1tiling_1_1StencilUpdate-members.html
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > , including all inherited members.
-
- get_kernel_runtime () conststencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > inline
- get_n_processed_cells () conststencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > inline
- get_params ()stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > inline
- get_walltime () conststencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > inline
- GridImpl typedefstencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
- halo_radius stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > static
- operator() (GridImpl &source_grid)stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > inline
- StencilUpdate (Params params)stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > inline
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1StencilUpdate.html b/classstencil_1_1tiling_1_1StencilUpdate.html
deleted file mode 100644
index 54115df..0000000
--- a/classstencil_1_1tiling_1_1StencilUpdate.html
+++ /dev/null
@@ -1,385 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid updater that applies an iterative stencil code to a grid.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-struct Params
- Parameters for the stencil updater. More...
-
-
-
-using GridImpl = Grid < Cell, tile_width, tile_height, halo_radius >
- A shorthand for the used and supported grid type.
-
-
-
- StencilUpdate (Params params)
- Create a new stencil updater object.
-
-Params & get_params ()
- Return a reference to the parameters.
-
-GridImpl operator() (GridImpl &source_grid)
- Compute a new grid based on the source grid, using the configured transition function.
-
-uindex_t get_n_processed_cells () const
- Return the accumulated total number of cells processed by this updater.
-
-double get_kernel_runtime () const
- Return the accumulated total runtime of the execution kernel.
-
-double get_walltime () const
- Return the accumulated runtime of the updater, measured from the host side.
-
-
-
-static constexpr uindex_t halo_radius = F::stencil_radius * n_processing_elements
- The radius of an input's tile halo.
-
-
-
-
template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-class stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
A grid updater that applies an iterative stencil code to a grid.
-
This updater applies an iterative stencil code, defined by the template parameter F
, to the grid; As often as requested.
-
Template Parameters
-
- F The transition function to apply to input grids.
- n_processing_elements (Optimization parameter) The number of processing elements (PEs) to implement. Increasing the number of PEs leads to a higher performance since more iterations are computed in parallel. However, it will also increase the resource and space usage of the design. Too many PEs might also decrease the clock frequency.
- tile_width (Optimization parameter) The width of the tile that is updated in one pass. For best hardware utilization, this should be a power of two. Increasing the maximal width of a tile may increase the performance of the design by introducing longer steady-states and reducing halo computation overheads. However, it will also increase the logic resource utilization and might lower the clock frequency.
- tile_height (Optimization parameter) The height of the tile that is updated in one pass. Increasing the maximal height of a tile may increase the performance of the design by introducing longer steady-states and reducing halo computation overheads. However, it will also increase the logic and on-chip memory utilization and might lower the clock frequency.
- TDVStrategy (Optimization parameter) The precomputation strategy for the time-dependent value system (See guide).
-
-
-
-
-
-
◆ GridImpl
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
A shorthand for the used and supported grid type.
-
-
-
-
-
-
◆ StencilUpdate()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Create a new stencil updater object.
-
-
-
-
-
-
◆ get_kernel_runtime()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Return the accumulated total runtime of the execution kernel.
-
This runtime is accumulated across multiple calls to operator()() . However, this is only possible if Params::profiling is set to true.
-
-
-
-
-
◆ get_n_processed_cells()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Return the accumulated total number of cells processed by this updater.
-
For each call of to operator()() , this is the width times the height of the grid, times the number of computed iterations. This will also be accumulated across multiple calls to operator()() .
-
-
-
-
-
◆ get_params()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Return a reference to the parameters.
-
Modifications to the parameters struct will be used in the next call to operator()() .
-
-
-
-
-
◆ get_walltime()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Return the accumulated runtime of the updater, measured from the host side.
-
For each call to operator()() , the time it took to submit all kernels and, if Params::blocking is true, to finish the computation is recorded and accumulated.
-
-
-
-
-
◆ operator()()
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Compute a new grid based on the source grid, using the configured transition function.
-
The computation does not work in-place. Instead, it will allocate two additional grids with the same size as the source grid and use them for a double buffering scheme. Therefore, you are free to reuse the source grid as it will not be altered.
-
If Params::blocking is set to true, this method will block until the computation is complete. Otherwise, it will return as soon as all kernels are submitted.
-
-
-
-
-
-
◆ halo_radius
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
-
-
-static constexpr
-
-
-
-
-
The radius of an input's tile halo.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1StencilUpdateKernel-members.html b/classstencil_1_1tiling_1_1StencilUpdateKernel-members.html
deleted file mode 100644
index 2f6c36b..0000000
--- a/classstencil_1_1tiling_1_1StencilUpdateKernel-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe > , including all inherited members.
-
- operator() () conststencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe > inline
- StencilUpdateKernel (TransFunc trans_func, uindex_t i_iteration, uindex_t target_i_iteration, uindex_t grid_c_offset, uindex_t grid_r_offset, uindex_t grid_width, uindex_t grid_height, Cell halo_value, TDVKernelArgument tdv_kernel_argument)stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe > inline
-
-
-
-
-
diff --git a/classstencil_1_1tiling_1_1StencilUpdateKernel.html b/classstencil_1_1tiling_1_1StencilUpdateKernel.html
deleted file mode 100644
index 0636dc0..0000000
--- a/classstencil_1_1tiling_1_1StencilUpdateKernel.html
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe > Class Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A kernel that executes a stencil transition function on a tile.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-
template<concepts::TransitionFunction TransFunc, tdv::single_pass::KernelArgument< TransFunc > TDVKernelArgument,
uindex_t n_processing_elements,
uindex_t output_tile_width,
uindex_t output_tile_height, typename in_pipe, typename out_pipe>
-requires (n_processing_elements % TransFunc::n_subiterations == 0)
-class stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >
A kernel that executes a stencil transition function on a tile.
-
It receives the contents of a tile and it's halo from the in_pipe
, applies the transition function when applicable and writes the result to the out_pipe
.
-
Template Parameters
-
- TransFunc The type of transition function to use.
- TDVKernelArgument The type of parameter for the TDV system that is passed from the host to the kernel.
- n_processing_elements The number of processing elements to use. Similar to an unroll factor for a loop.
- output_tile_width The number of columns in a grid tile.
- output_tile_height The number of rows in a grid tile.
- in_pipe The pipe to read from.
- out_pipe The pipe to write to.
-
-
-
-
-
-
◆ StencilUpdateKernel()
-
-
-
-
-template<concepts::TransitionFunction TransFunc, tdv::single_pass::KernelArgument< TransFunc > TDVKernelArgument,
uindex_t n_processing_elements,
uindex_t output_tile_width,
uindex_t output_tile_height, typename in_pipe , typename out_pipe >
-
-
-
-
-
- stencil::tiling::StencilUpdateKernel < TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >::StencilUpdateKernel
- (
- TransFunc
- trans_func ,
-
-
-
-
- uindex_t
- i_iteration ,
-
-
-
-
- uindex_t
- target_i_iteration ,
-
-
-
-
- uindex_t
- grid_c_offset ,
-
-
-
-
- uindex_t
- grid_r_offset ,
-
-
-
-
- uindex_t
- grid_width ,
-
-
-
-
- uindex_t
- grid_height ,
-
-
-
-
- Cell
- halo_value ,
-
-
-
-
- TDVKernelArgument
- tdv_kernel_argument
-
-
-
- )
-
-
-
-
-
-inline
-
-
-
-
-
Create and configure the execution kernel.
-
Parameters
-
- trans_func The instance of the transition function to use.
- i_iteration The iteration index of the input cells.
- target_i_iteration The number of iterations to compute. If this number is bigger than n_processing_elements
, only n_processing_elements
iterations will be computed.
- grid_c_offset The column offset of the processed tile relative to the grid's origin, not including the halo. For example, for the most north-western tile the offset will always be (0,0), not (-halo_radius,-halo_radius)
- grid_r_offset The row offset of the processed tile relative to the grid's origin. See grid_c_offset
for details.
- grid_width The number of cell columns in the grid.
- grid_height The number of cell rows in the grid.
- halo_value The value of cells in the grid halo.
- tdv_kernel_argument The argument for the TDV system that is passed from the host to the device. This may for example contain global memory accessors.
-
-
-
-
-
-
-
-
-
◆ operator()()
-
-
-
-
-template<concepts::TransitionFunction TransFunc, tdv::single_pass::KernelArgument< TransFunc > TDVKernelArgument,
uindex_t n_processing_elements,
uindex_t output_tile_width,
uindex_t output_tile_height, typename in_pipe , typename out_pipe >
-
-
-
-
-
- void stencil::tiling::StencilUpdateKernel < TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >::operator()
- (
- )
- const
-
-
-
-
-inline
-
-
-
-
-
Execute the configured operations.
-
-
-
-
The documentation for this class was generated from the following file:
-
-
-
-
-
diff --git a/closed.png b/closed.png
deleted file mode 100644
index 98cc2c9..0000000
Binary files a/closed.png and /dev/null differ
diff --git a/concepts.html b/concepts.html
deleted file mode 100644
index 87ecb3d..0000000
--- a/concepts.html
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Concepts
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
Here is a list of all concepts with brief descriptions:
-
[detail level 1 2 3 4 ]
- ▼ N stencil
- ▼ N concepts
- R TransitionFunction A technical definition of a stencil transition function
- R GridAccessor An accessor for a two-dimensional grid
- R Grid A regular grid of cells
- R StencilUpdate A grid updater that repeatedly applies stencil updates to each cell
- ▼ N tdv
- ▼ N single_pass Implementations of the TDV system for single-pass backends
- R LocalState The requirements for a pass-local TDV system state
- R KernelArgument The requirements for a TDV kernel argument
- R GlobalState The requirements for a TDV system's global state
- R Strategy Requirements for a TDV implementation strategy
-
-
-
-
-
-
-
diff --git a/conceptstencil_1_1concepts_1_1Grid.html b/conceptstencil_1_1concepts_1_1Grid.html
deleted file mode 100644
index b66cd4a..0000000
--- a/conceptstencil_1_1concepts_1_1Grid.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::concepts::Grid Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A regular grid of cells.
-More...
-
-
#include <Concepts.hpp >
-
-
template <typename G, typename Cell>
-
-
{ G(c, r) } -> std::same_as<G>;
-
{ G(sycl::range<2>(c, r)) } -> std::same_as<G>;
-
{ G(buffer) } -> std::same_as<G>;
-
{ grid.copy_from_buffer(buffer) } -> std::same_as<void>;
-
{ grid.copy_to_buffer(buffer) } -> std::same_as<void>;
-
{ grid.get_grid_width() } -> std::convertible_to<uindex_t>;
-
{ grid.get_grid_height() } -> std::convertible_to<uindex_t>;
-
{ grid.make_similar() } -> std::same_as<G>;
-
{
-
typename G::template GridAccessor<sycl::access::mode::read_write>(grid)
-
} -> GridAccessor<Cell>;
-
}
-
A regular grid of cells.
Definition Concepts.hpp:115
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
A regular grid of cells.
-
Template Parameters
-
- Cell The type of cells the grid contains.
-
-
-
-
First of all, each grid must contain a template class called GridAccessor
that, given an instance of sycl::access::mode
, fulfills the GridAccessor concept. Apart from this, each grid class must implement the following methods:
-
-Grid(uindex_t c, uindex_t r)
: Create a new grid with c
columns and r
rows.
-Grid(sycl::range<2> range)
: Create new grid with range[0]
columns and range[1]
rows.
-Grid(sycl::buffer<Cell, 2> buffer)
: Create new grid and copy the contents of the buffer
into the grid.
-void copy_from_buffer(sycl::buffer<Cell, 2> buffer)
: Copy the contents of the buffer
into the grid.
-void copy_to_buffer(sycl::buffer<Cell, 2> buffer)
: Copy the contents of the grid into the buffer
.
-uindex_t get_grid_width()
: Get the number of columns in the grid.
-uindex_t get_grid_height()
: Get the number of rows in the grid.
-Grid make_similar()
: Create a new grid with the same number of rows and columns as this grid.
-
-
Newly created grids may be uninitialized.
-
-
-
-
-
diff --git a/conceptstencil_1_1concepts_1_1GridAccessor.html b/conceptstencil_1_1concepts_1_1GridAccessor.html
deleted file mode 100644
index 40d4086..0000000
--- a/conceptstencil_1_1concepts_1_1GridAccessor.html
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::concepts::GridAccessor Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
An accessor for a two-dimensional grid.
-More...
-
-
#include <Concepts.hpp >
-
-
template <typename Accessor, typename Cell>
-
-
{ ac[sycl::id<2>(c, r)] } -> std::same_as<Cell &>;
-
{ ac[c][r] } -> std::same_as<Cell &>;
-
}
-
An accessor for a two-dimensional grid.
Definition Concepts.hpp:86
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
An accessor for a two-dimensional grid.
-
It must provide access either via a sycl::id<2>
object or via two consecutive accesses with uindex_t
s.
-
-
-
-
-
diff --git a/conceptstencil_1_1concepts_1_1StencilUpdate.html b/conceptstencil_1_1concepts_1_1StencilUpdate.html
deleted file mode 100644
index 169f9c9..0000000
--- a/conceptstencil_1_1concepts_1_1StencilUpdate.html
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::concepts::StencilUpdate Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A grid updater that repeatedly applies stencil updates to each cell.
-More...
-
-
#include <Concepts.hpp >
-
-
template <typename SU, typename TF, typename G>
-
-
-
requires (SU stencil_update, G &grid, typename SU::Params params) {
-
{ SU(params) } -> std::same_as<SU>;
-
{ stencil_update.get_params() } -> std::same_as<typename SU::Params &>;
-
{ stencil_update(grid) } -> std::same_as<G>;
-
} &&
-
-
requires (typename SU::Params params) {
-
{ params.transition_function } -> std::same_as<TF &>;
-
{ params.halo_value } -> std::same_as<typename TF::Cell &>;
-
{ params.iteration_offset } -> std::same_as<uindex_t &>;
-
{ params.n_iterations } -> std::same_as<uindex_t &>;
-
{ params.device } -> std::same_as<sycl::device &>;
-
} && TransitionFunction<TF> && Grid<G, typename TF::Cell> &&
-
(std::is_class<typename SU::Params>::value)
-
A grid updater that repeatedly applies stencil updates to each cell.
Definition Concepts.hpp:156
-
-
A grid updater that repeatedly applies stencil updates to each cell.
-
Template Parameters
-
- TF The transition function type, which must satisfy the TransitionFunction concept.
- G The grid type the updater operates on. It must satisfy the Grid concept.
-
-
-
-
The constructor of a stencil update must accept a parameter struct instance. This struct must be (re-)defined inside the class as Params
, and must contain the following fields. Where a default value is given, this default value must be provided. Additional parameter fields may be added as needed.
-TF transition_function
: The transition function instance to use.
-TF::Cell halo_value = TF::Cell()
: The default value for cells outside of the actual grid.
-uindex_t iteration_offset = 0
: The starting iteration index of the input grid.
-uindex_t n_iterations = 0
: The number of iterations to compute. The iteration index of the output grid will be iteration_offset + n_iterations
.
-sycl::device device = sycl::device()
: The SYCL device to use for computations.
-
-
Each updater must define the following methods:
-SU(SU::Params params)
: Create a new stencil update object using the given parameters.
-SU::Params &get_params()
: Get the reference to the current parameter configuration. Changed parameter fields must be used the next time operator()
is called.
-G operator()(Grid input_grid)
: Create a new, updated version of the input_grid
. The input_grid
must not be modified.
-
-
-
-
-
-
diff --git a/conceptstencil_1_1concepts_1_1TransitionFunction.html b/conceptstencil_1_1concepts_1_1TransitionFunction.html
deleted file mode 100644
index fb4beb8..0000000
--- a/conceptstencil_1_1concepts_1_1TransitionFunction.html
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::concepts::TransitionFunction Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A technical definition of a stencil transition function.
-More...
-
-
#include <Concepts.hpp >
-
-
template <typename T>
-
-
std::semiregular<typename T::Cell> && std::copyable<typename T::TimeDependentValue> &&
-
-
std::same_as<
decltype (T::stencil_radius),
const uindex_t > && (T::stencil_radius >= 1) &&
-
std::same_as<
decltype (T::n_subiterations),
const uindex_t > && (T::n_subiterations >= 1) &&
-
-
requires (T const &trans_func,
-
Stencil<typename T::Cell, T::stencil_radius, typename T::TimeDependentValue> const
-
-
{ trans_func(
stencil ) } -> std::same_as<typename T::Cell>;
-
} &&
-
requires (T
const &trans_func,
uindex_t i_iteration) {
-
{
-
trans_func.get_time_dependent_value(i_iteration)
-
} -> std::same_as<typename T::TimeDependentValue>;
-
}
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
A technical definition of a stencil transition function.
-
This concept lists all required type definitions, constants, and methods that a StencilUpdate needs from a transition function. This includes multiple definitions for advanced features. Most users are adviced to extend the stencil::BaseTransitionFunction class. It provides default definitions that disable those features.
-
The required type definitions are:
-Cell
: The cell type the transition function operates on. It must be semiregular, i.e. copyable bit by bit.
-TimeDependentValue
: The type of the time-dependent value computed by the get_time_dependent_value
method. It must also be semiregular.
-
-
The required constants are:
-uindex_t stencil_radius
: The radius of the stencil. It must be greater than or equal to 1.
-uindex_t n_subiterations
: The number of sub-iterations of the transition function. It must be greater than or equal to 1.
-
-
The required methods are:
-Cell operator()(Stencil<Cell, stencil_radius> const&stencil) const
: Compute the next iteration of the stencil's central cell. This method must be pure, i.e. it must not modify either the stencil's or the transition function's state.
-TimeDependentValue get_time_dependent_value(uindex_t i_iteration) const
: Compute the time-dependent value for the given iteration. This method must be pure, i.e. it must not modify the transition function's state.
-
-
-
-
-
-
diff --git a/conceptstencil_1_1tdv_1_1single__pass_1_1GlobalState.html b/conceptstencil_1_1tdv_1_1single__pass_1_1GlobalState.html
deleted file mode 100644
index 5a660ec..0000000
--- a/conceptstencil_1_1tdv_1_1single__pass_1_1GlobalState.html
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::GlobalState Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
The requirements for a TDV system's global state.
-More...
-
-
#include <SinglePassStrategies.hpp >
-
-
template <typename T, typename TransFunc>
-
-
-
std::constructible_from<T, TransFunc, uindex_t, uindex_t> &&
-
-
std::constructible_from<typename T::KernelArgument, T &, sycl::handler &, uindex_t, uindex_t>
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
The requirements for a TDV system's global state.
Definition SinglePassStrategies.hpp:85
-
The requirements for a TDV kernel argument.
Definition SinglePassStrategies.hpp:65
-
-
The requirements for a TDV system's global state.
-
This global state is constructed and stored on the host. It is constructed by the StencilUpdate from the transition function as well as the iteration index offset and the number of iterations that are requested from the user. For example, if we have a transition function object tf
and the user has requested to compute the iterations 17 to 42, the call to the global state constructor will be GlobalState(tf, 17, 42-17)
.
-
The stencil updater will then submit execution kernels for one or multiple passes. For each of these passes, it will construct a KernelArgument on the host using a reference to this global state, a reference to the SYCL handler, as well as the iteration offset and number of iterations of this pass.
-
-
-
-
-
diff --git a/conceptstencil_1_1tdv_1_1single__pass_1_1KernelArgument.html b/conceptstencil_1_1tdv_1_1single__pass_1_1KernelArgument.html
deleted file mode 100644
index 7e76535..0000000
--- a/conceptstencil_1_1tdv_1_1single__pass_1_1KernelArgument.html
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::KernelArgument Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
The requirements for a TDV kernel argument.
-More...
-
-
#include <SinglePassStrategies.hpp >
-
-
template <typename T, typename TransFunc>
-
-
-
std::constructible_from<typename T::LocalState, T const &>
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
The requirements for a TDV kernel argument.
Definition SinglePassStrategies.hpp:65
-
The requirements for a pass-local TDV system state.
Definition SinglePassStrategies.hpp:48
-
-
The requirements for a TDV kernel argument.
-
Each kernel argument is constructed on the host and then passed to the execution kernel. From this kernel argument, the execution constructs the LocalState .
-
Template Parameters
-
- TransFunc The transition function that contains the TDV definition.
-
-
-
-
-
-
-
-
diff --git a/conceptstencil_1_1tdv_1_1single__pass_1_1LocalState.html b/conceptstencil_1_1tdv_1_1single__pass_1_1LocalState.html
deleted file mode 100644
index 56fe281..0000000
--- a/conceptstencil_1_1tdv_1_1single__pass_1_1LocalState.html
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::LocalState Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
The requirements for a pass-local TDV system state.
-More...
-
-
#include <SinglePassStrategies.hpp >
-
-
template <typename T, typename TransFunc>
-
-
-
{
-
local_state.get_time_dependent_value(i)
-
} -> std::same_as<typename TransFunc::TimeDependentValue>;
-
}
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
The requirements for a pass-local TDV system state.
Definition SinglePassStrategies.hpp:48
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
The requirements for a pass-local TDV system state.
-
Each local state is instantiated just prior to starting a pass, and the final time-dependent values are extracted from it.
-
The required methods are:
-
-TDV get_time_dependent_value(uindex_t i) const
: Return the time-dependent value for the pass-local iteration i
. This is the current iteration minus the iteration index offset of the current pass. The type TDV
has to be the same as TransFunc::TimeDependentValue
.
-
-
Template Parameters
-
- TransFunc The transition function that contains the TDV definition.
-
-
-
-
-
-
-
-
diff --git a/conceptstencil_1_1tdv_1_1single__pass_1_1Strategy.html b/conceptstencil_1_1tdv_1_1single__pass_1_1Strategy.html
deleted file mode 100644
index 0b3c2a9..0000000
--- a/conceptstencil_1_1tdv_1_1single__pass_1_1Strategy.html
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::Strategy Concept Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
Requirements for a TDV implementation strategy.
-More...
-
-
#include <SinglePassStrategies.hpp >
-
-
template <typename T, typename TransFunc, uindex_t max_n_iterations>
-
-
-
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
The requirements for a TDV system's global state.
Definition SinglePassStrategies.hpp:85
-
Requirements for a TDV implementation strategy.
Definition SinglePassStrategies.hpp:99
-
-
Requirements for a TDV implementation strategy.
-
Such a strategy must contain a template for a valid GlobalState , which is instantiated with the transition function and the maximal number of iterations that are computed in one pass.
-
-
-
-
-
diff --git a/convection-animation.mp4 b/convection-animation.mp4
deleted file mode 100644
index bac4123..0000000
Binary files a/convection-animation.mp4 and /dev/null differ
diff --git a/cpu_2Grid_8hpp.html b/cpu_2Grid_8hpp.html
deleted file mode 100644
index f6b461a..0000000
--- a/cpu_2Grid_8hpp.html
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/cpu/Grid.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "../Index.hpp "
-
#include <memory>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/cpu_2Grid_8hpp__dep__incl.map b/cpu_2Grid_8hpp__dep__incl.map
deleted file mode 100644
index 0789d9a..0000000
--- a/cpu_2Grid_8hpp__dep__incl.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/cpu_2Grid_8hpp__dep__incl.md5 b/cpu_2Grid_8hpp__dep__incl.md5
deleted file mode 100644
index 891e497..0000000
--- a/cpu_2Grid_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-cc0a30d184f1e87a4015a230898b328d
\ No newline at end of file
diff --git a/cpu_2Grid_8hpp__dep__incl.png b/cpu_2Grid_8hpp__dep__incl.png
deleted file mode 100644
index aa0786c..0000000
Binary files a/cpu_2Grid_8hpp__dep__incl.png and /dev/null differ
diff --git a/cpu_2Grid_8hpp__incl.map b/cpu_2Grid_8hpp__incl.map
deleted file mode 100644
index 03120e1..0000000
--- a/cpu_2Grid_8hpp__incl.map
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/cpu_2Grid_8hpp__incl.md5 b/cpu_2Grid_8hpp__incl.md5
deleted file mode 100644
index b990f7d..0000000
--- a/cpu_2Grid_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-205383702d0be547914b4f5585861f80
\ No newline at end of file
diff --git a/cpu_2Grid_8hpp__incl.png b/cpu_2Grid_8hpp__incl.png
deleted file mode 100644
index a7f3345..0000000
Binary files a/cpu_2Grid_8hpp__incl.png and /dev/null differ
diff --git a/cpu_2Grid_8hpp_source.html b/cpu_2Grid_8hpp_source.html
deleted file mode 100644
index 13de737..0000000
--- a/cpu_2Grid_8hpp_source.html
+++ /dev/null
@@ -1,200 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/cpu/Grid.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
21 #include "../Index.hpp"
-
-
-
-
-
-
-
-
51 template <
typename Cell>
class Grid {
-
-
-
-
-
-
75 Grid (sycl::range<2> range) : buffer(range) {}
-
-
-
85 Grid (sycl::buffer<Cell, 2> other_buffer) : buffer(other_buffer.get_range()) {
-
-
-
-
-
98 Grid (
Grid const &other_grid) : buffer(other_grid.buffer) {}
-
-
-
-
111 if (buffer.get_range() != other_buffer.get_range()) {
-
112 throw std::range_error(
"The target buffer has not the same size as the grid" );
-
-
114 sycl::host_accessor buffer_ac(buffer, sycl::write_only);
-
115 sycl::host_accessor other_ac(other_buffer, sycl::read_only);
-
116 std::memcpy(buffer_ac.get_pointer(), other_ac.get_pointer(), buffer_ac.byte_size());
-
-
-
-
-
-
129 if (buffer.get_range() != other_buffer.get_range()) {
-
130 throw std::range_error(
"The target buffer has not the same size as the grid" );
-
-
132 sycl::host_accessor buffer_ac(buffer, sycl::read_only);
-
133 sycl::host_accessor other_ac(other_buffer, sycl::write_only);
-
134 std::memcpy(other_ac.get_pointer(), buffer_ac.get_pointer(), buffer_ac.byte_size());
-
-
-
-
146 template <sycl::access::mode access_mode = sycl::access::mode::read_write>
-
-
147 class GridAccessor :
public sycl::host_accessor<Cell, Grid::dimensions, access_mode> {
-
-
-
-
153 : sycl::host_accessor<Cell,
Grid ::
dimensions , access_mode>(grid.buffer) {}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
174 sycl::buffer<Cell, 2> buffer;
-
-
-
-
-
-
An accessor for the grid.
Definition Grid.hpp:147
-
GridAccessor(Grid &grid)
Create a new accessor to the given grid.
Definition Grid.hpp:152
-
A grid class for the CPU backend.
Definition Grid.hpp:51
-
Grid(uindex_t c, uindex_t r)
Create a new, uninitialized grid with the given dimensions.
Definition Grid.hpp:67
-
void copy_to_buffer(sycl::buffer< Cell, 2 > other_buffer)
Copy the contents of the grid into the SYCL buffer.
Definition Grid.hpp:128
-
Grid(sycl::range< 2 > range)
Create a new, uninitialized grid with the given dimensions.
Definition Grid.hpp:75
-
void copy_from_buffer(sycl::buffer< Cell, 2 > other_buffer)
Copy the contents of the SYCL buffer into the grid.
Definition Grid.hpp:110
-
Grid(Grid const &other_grid)
Create a new reference to the given grid.
Definition Grid.hpp:98
-
Grid make_similar() const
Create an new, uninitialized grid with the same size as the current one.
Definition Grid.hpp:169
-
sycl::buffer< Cell, 2 > & get_buffer()
Definition Grid.hpp:171
-
uindex_t get_grid_height() const
Return the height, or number of rows, of the grid.
Definition Grid.hpp:164
-
uindex_t get_grid_width() const
Return the width, or number of columns, of the grid.
Definition Grid.hpp:159
-
static constexpr uindex_t dimensions
The number of dimensions of the grid.
Definition Grid.hpp:58
-
Grid(sycl::buffer< Cell, 2 > other_buffer)
Create a new grid with the same size and contents as the given SYCL buffer.
Definition Grid.hpp:85
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
-
-
-
-
diff --git a/cpu_2StencilUpdate_8hpp.html b/cpu_2StencilUpdate_8hpp.html
deleted file mode 100644
index b625ce3..0000000
--- a/cpu_2StencilUpdate_8hpp.html
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/cpu/StencilUpdate.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "../Concepts.hpp "
-
#include "../Stencil.hpp "
-
#include "Grid.hpp "
-
#include <chrono>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/cpu_2StencilUpdate_8hpp__incl.map b/cpu_2StencilUpdate_8hpp__incl.map
deleted file mode 100644
index 2b4d4a1..0000000
--- a/cpu_2StencilUpdate_8hpp__incl.map
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/cpu_2StencilUpdate_8hpp__incl.md5 b/cpu_2StencilUpdate_8hpp__incl.md5
deleted file mode 100644
index e3c7a62..0000000
--- a/cpu_2StencilUpdate_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-f34662be499d7b6e51092f8f8a36b415
\ No newline at end of file
diff --git a/cpu_2StencilUpdate_8hpp__incl.png b/cpu_2StencilUpdate_8hpp__incl.png
deleted file mode 100644
index 439e863..0000000
Binary files a/cpu_2StencilUpdate_8hpp__incl.png and /dev/null differ
diff --git a/cpu_2StencilUpdate_8hpp_source.html b/cpu_2StencilUpdate_8hpp_source.html
deleted file mode 100644
index 15f94d5..0000000
--- a/cpu_2StencilUpdate_8hpp_source.html
+++ /dev/null
@@ -1,260 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/cpu/StencilUpdate.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
24 #include "../Concepts.hpp"
-
25 #include "../Stencil.hpp"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
80 sycl::device
device = sycl::device();
-
-
-
-
-
-
-
-
-
-
-
-
112 GridImpl *pass_source = &source_grid;
-
113 GridImpl *pass_target = &swap_grid_b;
-
-
115 sycl::queue queue(params.
device );
-
116 auto walltime_start = std::chrono::high_resolution_clock::now();
-
-
-
119 for (
uindex_t i_subiter = 0; i_subiter < F::n_subiterations; i_subiter++) {
-
-
-
122 if (i_iter == 0 && i_subiter == 0) {
-
123 pass_source = &swap_grid_b;
-
124 pass_target = &swap_grid_a;
-
-
126 std::swap(pass_source, pass_target);
-
-
-
-
-
-
-
-
-
135 auto walltime_end = std::chrono::high_resolution_clock::now();
-
136 std::chrono::duration<double> walltime = walltime_end - walltime_start;
-
137 this->walltime += walltime.count();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
187 using TDV =
typename F::TimeDependentValue;
-
-
-
190 queue.submit([&](sycl::handler &cgh) {
-
191 sycl::accessor source_ac(pass_source->get_buffer(), cgh, sycl::read_only);
-
192 sycl::accessor target_ac(pass_target->get_buffer(), cgh, sycl::write_only);
-
193 index_t grid_width = source_ac.get_range()[0];
-
194 index_t grid_height = source_ac.get_range()[1];
-
-
-
-
198 TDV tdv = transition_function.get_time_dependent_value(i_iter);
-
-
200 auto kernel = [=](sycl::id<2> id) {
-
201 StencilImpl
stencil (
ID (
id [0],
id [1]),
UID (grid_width, grid_height), i_iter,
-
-
-
204 for (
index_t rel_c = -stencil_radius; rel_c <= stencil_radius; rel_c++) {
-
205 for (
index_t rel_r = -stencil_radius; rel_r <= stencil_radius; rel_r++) {
-
-
-
208 bool within_grid = c >= 0 && r >= 0 && c < grid_width && r < grid_height;
-
209 stencil [
ID (rel_c, rel_r)] = (within_grid) ? source_ac[c][r] : halo_value;
-
-
-
-
213 target_ac[id] = transition_function(
stencil );
-
-
-
216 cgh.parallel_for(source_ac.get_range(), kernel);
-
-
-
-
-
-
-
-
-
-
-
The stencil buffer.
Definition Stencil.hpp:48
-
A grid class for the CPU backend.
Definition Grid.hpp:51
-
Grid make_similar() const
Create an new, uninitialized grid with the same size as the current one.
Definition Grid.hpp:169
-
uindex_t get_grid_height() const
Return the height, or number of rows, of the grid.
Definition Grid.hpp:164
-
uindex_t get_grid_width() const
Return the width, or number of columns, of the grid.
Definition Grid.hpp:159
-
A grid updater that applies an iterative stencil code to a grid.
Definition StencilUpdate.hpp:40
-
StencilUpdate(Params params)
Create a new stencil updater object.
Definition StencilUpdate.hpp:97
-
uindex_t get_n_processed_cells() const
Return the accumulated total number of cells processed by this updater.
Definition StencilUpdate.hpp:158
-
Grid< Cell > GridImpl
Shorthand for the used and supported grid type.
Definition StencilUpdate.hpp:46
-
Params & get_params()
Return a reference to the parameters.
Definition StencilUpdate.hpp:149
-
double get_walltime() const
Return the accumulated runtime of the updater, measured from the host side.
Definition StencilUpdate.hpp:166
-
GridImpl operator()(GridImpl &source_grid)
Compute a new grid based on the source grid, using the configured transition function.
Definition StencilUpdate.hpp:109
-
Definition AccessorSubscript.hpp:24
-
GenericID< uindex_t > UID
An unsigned, two-dimensional index.
Definition GenericID.hpp:80
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
GenericID< index_t > ID
A signed, two-dimensional index.
Definition GenericID.hpp:75
-
BOOST_PP_CAT(BOOST_PP_CAT(int, STENCIL_INDEX_WIDTH), _t) index_t
A signed integer of configurable width.
Definition Index.hpp:56
-
Parameters for the stencil updater.
Definition StencilUpdate.hpp:51
-
uindex_t iteration_offset
The iteration index offset.
Definition StencilUpdate.hpp:70
-
Cell halo_value
The cell value to present for cells outside of the grid.
Definition StencilUpdate.hpp:62
-
bool blocking
Should the stencil updater block until completion, or return immediately after all kernels have been ...
Definition StencilUpdate.hpp:91
-
uindex_t n_iterations
The number of iterations to compute.
Definition StencilUpdate.hpp:75
-
sycl::device device
The device to use for computations.
Definition StencilUpdate.hpp:80
-
F transition_function
An instance of the transition function type.
Definition StencilUpdate.hpp:57
-
-
-
-
-
-
diff --git a/dir_000001_000003.html b/dir_000001_000003.html
deleted file mode 100644
index 0087483..0000000
--- a/dir_000001_000003.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/monotile -> tdv Relation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_000004_000003.html b/dir_000004_000003.html
deleted file mode 100644
index d3f0d31..0000000
--- a/dir_000004_000003.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tiling -> tdv Relation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_05934bb813e37030ffeb5fd4f84c0e0c.html b/dir_05934bb813e37030ffeb5fd4f84c0e0c.html
deleted file mode 100644
index cba6542..0000000
--- a/dir_05934bb813e37030ffeb5fd4f84c0e0c.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/monotile Directory Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.map b/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.map
deleted file mode 100644
index 107d714..0000000
--- a/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.map
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.md5 b/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.md5
deleted file mode 100644
index 9d5495b..0000000
--- a/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.md5
+++ /dev/null
@@ -1 +0,0 @@
-d3a0129428f163a47b60696f36c9f817
\ No newline at end of file
diff --git a/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.png b/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.png
deleted file mode 100644
index 4e250c5..0000000
Binary files a/dir_05934bb813e37030ffeb5fd4f84c0e0c_dep.png and /dev/null differ
diff --git a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da.html b/dir_2bbcefc313a5aaefe7ac1cd4adfe39da.html
deleted file mode 100644
index 4982994..0000000
--- a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tiling Directory Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.map b/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.map
deleted file mode 100644
index 66d431d..0000000
--- a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.map
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.md5 b/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.md5
deleted file mode 100644
index 34d8234..0000000
--- a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.md5
+++ /dev/null
@@ -1 +0,0 @@
-c1fed4c1b5d46d1949fe53c6dfa8a8be
\ No newline at end of file
diff --git a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.png b/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.png
deleted file mode 100644
index a984e12..0000000
Binary files a/dir_2bbcefc313a5aaefe7ac1cd4adfe39da_dep.png and /dev/null differ
diff --git a/dir_47884370eb8f763e1c3ccacbbac53ba9.html b/dir_47884370eb8f763e1c3ccacbbac53ba9.html
deleted file mode 100644
index ba92045..0000000
--- a/dir_47884370eb8f763e1c3ccacbbac53ba9.html
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/cpu Directory Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.map b/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.map
deleted file mode 100644
index f506762..0000000
--- a/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.map
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.md5 b/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.md5
deleted file mode 100644
index b4f4c08..0000000
--- a/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.md5
+++ /dev/null
@@ -1 +0,0 @@
-5fd2629b375c05dfc162153b3b8939f8
\ No newline at end of file
diff --git a/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.png b/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.png
deleted file mode 100644
index ecc03bd..0000000
Binary files a/dir_47884370eb8f763e1c3ccacbbac53ba9_dep.png and /dev/null differ
diff --git a/dir_5e2394f53400ec3b819dca9374f90d55.html b/dir_5e2394f53400ec3b819dca9374f90d55.html
deleted file mode 100644
index b167023..0000000
--- a/dir_5e2394f53400ec3b819dca9374f90d55.html
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream Directory Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_5e2394f53400ec3b819dca9374f90d55_dep.map b/dir_5e2394f53400ec3b819dca9374f90d55_dep.map
deleted file mode 100644
index d866cf1..0000000
--- a/dir_5e2394f53400ec3b819dca9374f90d55_dep.map
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_5e2394f53400ec3b819dca9374f90d55_dep.md5 b/dir_5e2394f53400ec3b819dca9374f90d55_dep.md5
deleted file mode 100644
index d934110..0000000
--- a/dir_5e2394f53400ec3b819dca9374f90d55_dep.md5
+++ /dev/null
@@ -1 +0,0 @@
-b7ed3f6e43c7fe11bd2aef34795666d4
\ No newline at end of file
diff --git a/dir_5e2394f53400ec3b819dca9374f90d55_dep.png b/dir_5e2394f53400ec3b819dca9374f90d55_dep.png
deleted file mode 100644
index 11b4800..0000000
Binary files a/dir_5e2394f53400ec3b819dca9374f90d55_dep.png and /dev/null differ
diff --git a/dir_dbac940d53c03450098e8012f2701f82.html b/dir_dbac940d53c03450098e8012f2701f82.html
deleted file mode 100644
index abbcc8c..0000000
--- a/dir_dbac940d53c03450098e8012f2701f82.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tdv Directory Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dir_dbac940d53c03450098e8012f2701f82_dep.map b/dir_dbac940d53c03450098e8012f2701f82_dep.map
deleted file mode 100644
index bc97444..0000000
--- a/dir_dbac940d53c03450098e8012f2701f82_dep.map
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/dir_dbac940d53c03450098e8012f2701f82_dep.md5 b/dir_dbac940d53c03450098e8012f2701f82_dep.md5
deleted file mode 100644
index a47d176..0000000
--- a/dir_dbac940d53c03450098e8012f2701f82_dep.md5
+++ /dev/null
@@ -1 +0,0 @@
-7403b539dab2e2a2fad505df233798f4
\ No newline at end of file
diff --git a/dir_dbac940d53c03450098e8012f2701f82_dep.png b/dir_dbac940d53c03450098e8012f2701f82_dep.png
deleted file mode 100644
index 72a5d5e..0000000
Binary files a/dir_dbac940d53c03450098e8012f2701f82_dep.png and /dev/null differ
diff --git a/doc.svg b/doc.svg
deleted file mode 100644
index 0b928a5..0000000
--- a/doc.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docd.svg b/docd.svg
deleted file mode 100644
index ac18b27..0000000
--- a/docd.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/doxygen.css b/doxygen.css
deleted file mode 100644
index 009a9b5..0000000
--- a/doxygen.css
+++ /dev/null
@@ -1,2045 +0,0 @@
-/* The standard CSS for doxygen 1.9.8*/
-
-html {
-/* page base colors */
---page-background-color: white;
---page-foreground-color: black;
---page-link-color: #3D578C;
---page-visited-link-color: #4665A2;
-
-/* index */
---index-odd-item-bg-color: #F8F9FC;
---index-even-item-bg-color: white;
---index-header-color: black;
---index-separator-color: #A0A0A0;
-
-/* header */
---header-background-color: #F9FAFC;
---header-separator-color: #C4CFE5;
---header-gradient-image: url('nav_h.png');
---group-header-separator-color: #879ECB;
---group-header-color: #354C7B;
---inherit-header-color: gray;
-
---footer-foreground-color: #2A3D61;
---footer-logo-width: 104px;
---citation-label-color: #334975;
---glow-color: cyan;
-
---title-background-color: white;
---title-separator-color: #5373B4;
---directory-separator-color: #9CAFD4;
---separator-color: #4A6AAA;
-
---blockquote-background-color: #F7F8FB;
---blockquote-border-color: #9CAFD4;
-
---scrollbar-thumb-color: #9CAFD4;
---scrollbar-background-color: #F9FAFC;
-
---icon-background-color: #728DC1;
---icon-foreground-color: white;
---icon-doc-image: url('doc.svg');
---icon-folder-open-image: url('folderopen.svg');
---icon-folder-closed-image: url('folderclosed.svg');
-
-/* brief member declaration list */
---memdecl-background-color: #F9FAFC;
---memdecl-separator-color: #DEE4F0;
---memdecl-foreground-color: #555;
---memdecl-template-color: #4665A2;
-
-/* detailed member list */
---memdef-border-color: #A8B8D9;
---memdef-title-background-color: #E2E8F2;
---memdef-title-gradient-image: url('nav_f.png');
---memdef-proto-background-color: #DFE5F1;
---memdef-proto-text-color: #253555;
---memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
---memdef-doc-background-color: white;
---memdef-param-name-color: #602020;
---memdef-template-color: #4665A2;
-
-/* tables */
---table-cell-border-color: #2D4068;
---table-header-background-color: #374F7F;
---table-header-foreground-color: #FFFFFF;
-
-/* labels */
---label-background-color: #728DC1;
---label-left-top-border-color: #5373B4;
---label-right-bottom-border-color: #C4CFE5;
---label-foreground-color: white;
-
-/** navigation bar/tree/menu */
---nav-background-color: #F9FAFC;
---nav-foreground-color: #364D7C;
---nav-gradient-image: url('tab_b.png');
---nav-gradient-hover-image: url('tab_h.png');
---nav-gradient-active-image: url('tab_a.png');
---nav-gradient-active-image-parent: url("../tab_a.png");
---nav-separator-image: url('tab_s.png');
---nav-breadcrumb-image: url('bc_s.png');
---nav-breadcrumb-border-color: #C2CDE4;
---nav-splitbar-image: url('splitbar.png');
---nav-font-size-level1: 13px;
---nav-font-size-level2: 10px;
---nav-font-size-level3: 9px;
---nav-text-normal-color: #283A5D;
---nav-text-hover-color: white;
---nav-text-active-color: white;
---nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-menu-button-color: #364D7C;
---nav-menu-background-color: white;
---nav-menu-foreground-color: #555555;
---nav-menu-toggle-color: rgba(255, 255, 255, 0.5);
---nav-arrow-color: #9CAFD4;
---nav-arrow-selected-color: #9CAFD4;
-
-/* table of contents */
---toc-background-color: #F4F6FA;
---toc-border-color: #D8DFEE;
---toc-header-color: #4665A2;
---toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595; ");
-
-/** search field */
---search-background-color: white;
---search-foreground-color: #909090;
---search-magnification-image: url('mag.svg');
---search-magnification-select-image: url('mag_sel.svg');
---search-active-color: black;
---search-filter-background-color: #F9FAFC;
---search-filter-foreground-color: black;
---search-filter-border-color: #90A5CE;
---search-filter-highlight-text-color: white;
---search-filter-highlight-bg-color: #3D578C;
---search-results-foreground-color: #425E97;
---search-results-background-color: #EEF1F7;
---search-results-border-color: black;
---search-box-shadow: inset 0.5px 0.5px 3px 0px #555;
-
-/** code fragments */
---code-keyword-color: #008000;
---code-type-keyword-color: #604020;
---code-flow-keyword-color: #E08000;
---code-comment-color: #800000;
---code-preprocessor-color: #806020;
---code-string-literal-color: #002080;
---code-char-literal-color: #008080;
---code-xml-cdata-color: black;
---code-vhdl-digit-color: #FF00FF;
---code-vhdl-char-color: #000000;
---code-vhdl-keyword-color: #700070;
---code-vhdl-logic-color: #FF0000;
---code-link-color: #4665A2;
---code-external-link-color: #4665A2;
---fragment-foreground-color: black;
---fragment-background-color: #FBFCFD;
---fragment-border-color: #C4CFE5;
---fragment-lineno-border-color: #00FF00;
---fragment-lineno-background-color: #E8E8E8;
---fragment-lineno-foreground-color: black;
---fragment-lineno-link-fg-color: #4665A2;
---fragment-lineno-link-bg-color: #D8D8D8;
---fragment-lineno-link-hover-fg-color: #4665A2;
---fragment-lineno-link-hover-bg-color: #C8C8C8;
---tooltip-foreground-color: black;
---tooltip-background-color: white;
---tooltip-border-color: gray;
---tooltip-doc-color: grey;
---tooltip-declaration-color: #006318;
---tooltip-link-color: #4665A2;
---tooltip-shadow: 1px 1px 7px gray;
---fold-line-color: #808080;
---fold-minus-image: url('minus.svg');
---fold-plus-image: url('plus.svg');
---fold-minus-image-relpath: url('../../minus.svg');
---fold-plus-image-relpath: url('../../plus.svg');
-
-/** font-family */
---font-family-normal: Roboto,sans-serif;
---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
---font-family-title: Tahoma,Arial,sans-serif;
---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
---font-family-search: Arial,Verdana,sans-serif;
---font-family-icon: Arial,Helvetica;
---font-family-tooltip: Roboto,sans-serif;
-
-}
-
-@media (prefers-color-scheme: dark) {
- html:not(.dark-mode) {
- color-scheme: dark;
-
-/* page base colors */
---page-background-color: black;
---page-foreground-color: #C9D1D9;
---page-link-color: #90A5CE;
---page-visited-link-color: #A3B4D7;
-
-/* index */
---index-odd-item-bg-color: #0B101A;
---index-even-item-bg-color: black;
---index-header-color: #C4CFE5;
---index-separator-color: #334975;
-
-/* header */
---header-background-color: #070B11;
---header-separator-color: #141C2E;
---header-gradient-image: url('nav_hd.png');
---group-header-separator-color: #283A5D;
---group-header-color: #90A5CE;
---inherit-header-color: #A0A0A0;
-
---footer-foreground-color: #5B7AB7;
---footer-logo-width: 60px;
---citation-label-color: #90A5CE;
---glow-color: cyan;
-
---title-background-color: #090D16;
---title-separator-color: #354C79;
---directory-separator-color: #283A5D;
---separator-color: #283A5D;
-
---blockquote-background-color: #101826;
---blockquote-border-color: #283A5D;
-
---scrollbar-thumb-color: #283A5D;
---scrollbar-background-color: #070B11;
-
---icon-background-color: #334975;
---icon-foreground-color: #C4CFE5;
---icon-doc-image: url('docd.svg');
---icon-folder-open-image: url('folderopend.svg');
---icon-folder-closed-image: url('folderclosedd.svg');
-
-/* brief member declaration list */
---memdecl-background-color: #0B101A;
---memdecl-separator-color: #2C3F65;
---memdecl-foreground-color: #BBB;
---memdecl-template-color: #7C95C6;
-
-/* detailed member list */
---memdef-border-color: #233250;
---memdef-title-background-color: #1B2840;
---memdef-title-gradient-image: url('nav_fd.png');
---memdef-proto-background-color: #19243A;
---memdef-proto-text-color: #9DB0D4;
---memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9);
---memdef-doc-background-color: black;
---memdef-param-name-color: #D28757;
---memdef-template-color: #7C95C6;
-
-/* tables */
---table-cell-border-color: #283A5D;
---table-header-background-color: #283A5D;
---table-header-foreground-color: #C4CFE5;
-
-/* labels */
---label-background-color: #354C7B;
---label-left-top-border-color: #4665A2;
---label-right-bottom-border-color: #283A5D;
---label-foreground-color: #CCCCCC;
-
-/** navigation bar/tree/menu */
---nav-background-color: #101826;
---nav-foreground-color: #364D7C;
---nav-gradient-image: url('tab_bd.png');
---nav-gradient-hover-image: url('tab_hd.png');
---nav-gradient-active-image: url('tab_ad.png');
---nav-gradient-active-image-parent: url("../tab_ad.png");
---nav-separator-image: url('tab_sd.png');
---nav-breadcrumb-image: url('bc_sd.png');
---nav-breadcrumb-border-color: #2A3D61;
---nav-splitbar-image: url('splitbard.png');
---nav-font-size-level1: 13px;
---nav-font-size-level2: 10px;
---nav-font-size-level3: 9px;
---nav-text-normal-color: #B6C4DF;
---nav-text-hover-color: #DCE2EF;
---nav-text-active-color: #DCE2EF;
---nav-text-normal-shadow: 0px 1px 1px black;
---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
---nav-menu-button-color: #B6C4DF;
---nav-menu-background-color: #05070C;
---nav-menu-foreground-color: #BBBBBB;
---nav-menu-toggle-color: rgba(255, 255, 255, 0.2);
---nav-arrow-color: #334975;
---nav-arrow-selected-color: #90A5CE;
-
-/* table of contents */
---toc-background-color: #151E30;
---toc-border-color: #202E4A;
---toc-header-color: #A3B4D7;
---toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595; ");
-
-/** search field */
---search-background-color: black;
---search-foreground-color: #C5C5C5;
---search-magnification-image: url('mag_d.svg');
---search-magnification-select-image: url('mag_seld.svg');
---search-active-color: #C5C5C5;
---search-filter-background-color: #101826;
---search-filter-foreground-color: #90A5CE;
---search-filter-border-color: #7C95C6;
---search-filter-highlight-text-color: #BCC9E2;
---search-filter-highlight-bg-color: #283A5D;
---search-results-background-color: #101826;
---search-results-foreground-color: #90A5CE;
---search-results-border-color: #7C95C6;
---search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C;
-
-/** code fragments */
---code-keyword-color: #CC99CD;
---code-type-keyword-color: #AB99CD;
---code-flow-keyword-color: #E08000;
---code-comment-color: #717790;
---code-preprocessor-color: #65CABE;
---code-string-literal-color: #7EC699;
---code-char-literal-color: #00E0F0;
---code-xml-cdata-color: #C9D1D9;
---code-vhdl-digit-color: #FF00FF;
---code-vhdl-char-color: #C0C0C0;
---code-vhdl-keyword-color: #CF53C9;
---code-vhdl-logic-color: #FF0000;
---code-link-color: #79C0FF;
---code-external-link-color: #79C0FF;
---fragment-foreground-color: #C9D1D9;
---fragment-background-color: black;
---fragment-border-color: #30363D;
---fragment-lineno-border-color: #30363D;
---fragment-lineno-background-color: black;
---fragment-lineno-foreground-color: #6E7681;
---fragment-lineno-link-fg-color: #6E7681;
---fragment-lineno-link-bg-color: #303030;
---fragment-lineno-link-hover-fg-color: #8E96A1;
---fragment-lineno-link-hover-bg-color: #505050;
---tooltip-foreground-color: #C9D1D9;
---tooltip-background-color: #202020;
---tooltip-border-color: #C9D1D9;
---tooltip-doc-color: #D9E1E9;
---tooltip-declaration-color: #20C348;
---tooltip-link-color: #79C0FF;
---tooltip-shadow: none;
---fold-line-color: #808080;
---fold-minus-image: url('minusd.svg');
---fold-plus-image: url('plusd.svg');
---fold-minus-image-relpath: url('../../minusd.svg');
---fold-plus-image-relpath: url('../../plusd.svg');
-
-/** font-family */
---font-family-normal: Roboto,sans-serif;
---font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
---font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
---font-family-title: Tahoma,Arial,sans-serif;
---font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
---font-family-search: Arial,Verdana,sans-serif;
---font-family-icon: Arial,Helvetica;
---font-family-tooltip: Roboto,sans-serif;
-
-}}
-body {
- background-color: var(--page-background-color);
- color: var(--page-foreground-color);
-}
-
-body, table, div, p, dl {
- font-weight: 400;
- font-size: 14px;
- font-family: var(--font-family-normal);
- line-height: 22px;
-}
-
-/* @group Heading Levels */
-
-.title {
- font-weight: 400;
- font-size: 14px;
- font-family: var(--font-family-normal);
- line-height: 28px;
- font-size: 150%;
- font-weight: bold;
- margin: 10px 2px;
-}
-
-h1.groupheader {
- font-size: 150%;
-}
-
-h2.groupheader {
- border-bottom: 1px solid var(--group-header-separator-color);
- color: var(--group-header-color);
- font-size: 150%;
- font-weight: normal;
- margin-top: 1.75em;
- padding-top: 8px;
- padding-bottom: 4px;
- width: 100%;
-}
-
-h3.groupheader {
- font-size: 100%;
-}
-
-h1, h2, h3, h4, h5, h6 {
- -webkit-transition: text-shadow 0.5s linear;
- -moz-transition: text-shadow 0.5s linear;
- -ms-transition: text-shadow 0.5s linear;
- -o-transition: text-shadow 0.5s linear;
- transition: text-shadow 0.5s linear;
- margin-right: 15px;
-}
-
-h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
- text-shadow: 0 0 15px var(--glow-color);
-}
-
-dt {
- font-weight: bold;
-}
-
-p.startli, p.startdd {
- margin-top: 2px;
-}
-
-th p.starttd, th p.intertd, th p.endtd {
- font-size: 100%;
- font-weight: 700;
-}
-
-p.starttd {
- margin-top: 0px;
-}
-
-p.endli {
- margin-bottom: 0px;
-}
-
-p.enddd {
- margin-bottom: 4px;
-}
-
-p.endtd {
- margin-bottom: 2px;
-}
-
-p.interli {
-}
-
-p.interdd {
-}
-
-p.intertd {
-}
-
-/* @end */
-
-caption {
- font-weight: bold;
-}
-
-span.legend {
- font-size: 70%;
- text-align: center;
-}
-
-h3.version {
- font-size: 90%;
- text-align: center;
-}
-
-div.navtab {
- padding-right: 15px;
- text-align: right;
- line-height: 110%;
-}
-
-div.navtab table {
- border-spacing: 0;
-}
-
-td.navtab {
- padding-right: 6px;
- padding-left: 6px;
-}
-
-td.navtabHL {
- background-image: var(--nav-gradient-active-image);
- background-repeat:repeat-x;
- padding-right: 6px;
- padding-left: 6px;
-}
-
-td.navtabHL a, td.navtabHL a:visited {
- color: var(--nav-text-hover-color);
- text-shadow: var(--nav-text-hover-shadow);
-}
-
-a.navtab {
- font-weight: bold;
-}
-
-div.qindex{
- text-align: center;
- width: 100%;
- line-height: 140%;
- font-size: 130%;
- color: var(--index-separator-color);
-}
-
-#main-menu a:focus {
- outline: auto;
- z-index: 10;
- position: relative;
-}
-
-dt.alphachar{
- font-size: 180%;
- font-weight: bold;
-}
-
-.alphachar a{
- color: var(--index-header-color);
-}
-
-.alphachar a:hover, .alphachar a:visited{
- text-decoration: none;
-}
-
-.classindex dl {
- padding: 25px;
- column-count:1
-}
-
-.classindex dd {
- display:inline-block;
- margin-left: 50px;
- width: 90%;
- line-height: 1.15em;
-}
-
-.classindex dl.even {
- background-color: var(--index-even-item-bg-color);
-}
-
-.classindex dl.odd {
- background-color: var(--index-odd-item-bg-color);
-}
-
-@media(min-width: 1120px) {
- .classindex dl {
- column-count:2
- }
-}
-
-@media(min-width: 1320px) {
- .classindex dl {
- column-count:3
- }
-}
-
-
-/* @group Link Styling */
-
-a {
- color: var(--page-link-color);
- font-weight: normal;
- text-decoration: none;
-}
-
-.contents a:visited {
- color: var(--page-visited-link-color);
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-a.el {
- font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code, a.code:visited, a.line, a.line:visited {
- color: var(--code-link-color);
-}
-
-a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
- color: var(--code-external-link-color);
-}
-
-a.code.hl_class { /* style for links to class names in code snippets */ }
-a.code.hl_struct { /* style for links to struct names in code snippets */ }
-a.code.hl_union { /* style for links to union names in code snippets */ }
-a.code.hl_interface { /* style for links to interface names in code snippets */ }
-a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
-a.code.hl_category { /* style for links to category names in code snippets */ }
-a.code.hl_exception { /* style for links to exception names in code snippets */ }
-a.code.hl_service { /* style for links to service names in code snippets */ }
-a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
-a.code.hl_concept { /* style for links to concept names in code snippets */ }
-a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
-a.code.hl_package { /* style for links to package names in code snippets */ }
-a.code.hl_define { /* style for links to macro names in code snippets */ }
-a.code.hl_function { /* style for links to function names in code snippets */ }
-a.code.hl_variable { /* style for links to variable names in code snippets */ }
-a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
-a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
-a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
-a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
-a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
-a.code.hl_friend { /* style for links to friend names in code snippets */ }
-a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
-a.code.hl_property { /* style for links to property names in code snippets */ }
-a.code.hl_event { /* style for links to event names in code snippets */ }
-a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
-a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
-
-/* @end */
-
-dl.el {
- margin-left: -1cm;
-}
-
-ul {
- overflow: visible;
-}
-
-ul.multicol {
- -moz-column-gap: 1em;
- -webkit-column-gap: 1em;
- column-gap: 1em;
- -moz-column-count: 3;
- -webkit-column-count: 3;
- column-count: 3;
- list-style-type: none;
-}
-
-#side-nav ul {
- overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
-}
-
-#main-nav ul {
- overflow: visible; /* reset ul rule for the navigation bar drop down lists */
-}
-
-.fragment {
- text-align: left;
- direction: ltr;
- overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
- overflow-y: hidden;
-}
-
-pre.fragment {
- border: 1px solid var(--fragment-border-color);
- background-color: var(--fragment-background-color);
- color: var(--fragment-foreground-color);
- padding: 4px 6px;
- margin: 4px 8px 4px 2px;
- overflow: auto;
- word-wrap: break-word;
- font-size: 9pt;
- line-height: 125%;
- font-family: var(--font-family-monospace);
- font-size: 105%;
-}
-
-div.fragment {
- padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
- margin: 4px 8px 4px 2px;
- color: var(--fragment-foreground-color);
- background-color: var(--fragment-background-color);
- border: 1px solid var(--fragment-border-color);
-}
-
-div.line {
- font-family: var(--font-family-monospace);
- font-size: 13px;
- min-height: 13px;
- line-height: 1.2;
- text-wrap: unrestricted;
- white-space: -moz-pre-wrap; /* Moz */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- white-space: pre-wrap; /* CSS3 */
- word-wrap: break-word; /* IE 5.5+ */
- text-indent: -53px;
- padding-left: 53px;
- padding-bottom: 0px;
- margin: 0px;
- -webkit-transition-property: background-color, box-shadow;
- -webkit-transition-duration: 0.5s;
- -moz-transition-property: background-color, box-shadow;
- -moz-transition-duration: 0.5s;
- -ms-transition-property: background-color, box-shadow;
- -ms-transition-duration: 0.5s;
- -o-transition-property: background-color, box-shadow;
- -o-transition-duration: 0.5s;
- transition-property: background-color, box-shadow;
- transition-duration: 0.5s;
-}
-
-div.line:after {
- content:"\000A";
- white-space: pre;
-}
-
-div.line.glow {
- background-color: var(--glow-color);
- box-shadow: 0 0 10px var(--glow-color);
-}
-
-span.fold {
- margin-left: 5px;
- margin-right: 1px;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
- display: inline-block;
- width: 12px;
- height: 12px;
- background-repeat:no-repeat;
- background-position:center;
-}
-
-span.lineno {
- padding-right: 4px;
- margin-right: 9px;
- text-align: right;
- border-right: 2px solid var(--fragment-lineno-border-color);
- color: var(--fragment-lineno-foreground-color);
- background-color: var(--fragment-lineno-background-color);
- white-space: pre;
-}
-span.lineno a, span.lineno a:visited {
- color: var(--fragment-lineno-link-fg-color);
- background-color: var(--fragment-lineno-link-bg-color);
-}
-
-span.lineno a:hover {
- color: var(--fragment-lineno-link-hover-fg-color);
- background-color: var(--fragment-lineno-link-hover-bg-color);
-}
-
-.lineno {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-div.classindex ul {
- list-style: none;
- padding-left: 0;
-}
-
-div.classindex span.ai {
- display: inline-block;
-}
-
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- font-weight: bold;
-}
-
-div.groupText {
- margin-left: 16px;
- font-style: italic;
-}
-
-body {
- color: var(--page-foreground-color);
- margin: 0;
-}
-
-div.contents {
- margin-top: 10px;
- margin-left: 12px;
- margin-right: 8px;
-}
-
-p.formulaDsp {
- text-align: center;
-}
-
-img.dark-mode-visible {
- display: none;
-}
-img.light-mode-visible {
- display: none;
-}
-
-img.formulaDsp {
-
-}
-
-img.formulaInl, img.inline {
- vertical-align: middle;
-}
-
-div.center {
- text-align: center;
- margin-top: 0px;
- margin-bottom: 0px;
- padding: 0px;
-}
-
-div.center img {
- border: 0px;
-}
-
-address.footer {
- text-align: right;
- padding-right: 12px;
-}
-
-img.footer {
- border: 0px;
- vertical-align: middle;
- width: var(--footer-logo-width);
-}
-
-.compoundTemplParams {
- color: var(--memdecl-template-color);
- font-size: 80%;
- line-height: 120%;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
- color: var(--code-keyword-color);
-}
-
-span.keywordtype {
- color: var(--code-type-keyword-color);
-}
-
-span.keywordflow {
- color: var(--code-flow-keyword-color);
-}
-
-span.comment {
- color: var(--code-comment-color);
-}
-
-span.preprocessor {
- color: var(--code-preprocessor-color);
-}
-
-span.stringliteral {
- color: var(--code-string-literal-color);
-}
-
-span.charliteral {
- color: var(--code-char-literal-color);
-}
-
-span.xmlcdata {
- color: var(--code-xml-cdata-color);
-}
-
-span.vhdldigit {
- color: var(--code-vhdl-digit-color);
-}
-
-span.vhdlchar {
- color: var(--code-vhdl-char-color);
-}
-
-span.vhdlkeyword {
- color: var(--code-vhdl-keyword-color);
-}
-
-span.vhdllogic {
- color: var(--code-vhdl-logic-color);
-}
-
-blockquote {
- background-color: var(--blockquote-background-color);
- border-left: 2px solid var(--blockquote-border-color);
- margin: 0 24px 0 4px;
- padding: 0 12px 0 16px;
-}
-
-/* @end */
-
-td.tiny {
- font-size: 75%;
-}
-
-.dirtab {
- padding: 4px;
- border-collapse: collapse;
- border: 1px solid var(--table-cell-border-color);
-}
-
-th.dirtab {
- background-color: var(--table-header-background-color);
- color: var(--table-header-foreground-color);
- font-weight: bold;
-}
-
-hr {
- height: 0px;
- border: none;
- border-top: 1px solid var(--separator-color);
-}
-
-hr.footer {
- height: 1px;
-}
-
-/* @group Member Descriptions */
-
-table.memberdecls {
- border-spacing: 0px;
- padding: 0px;
-}
-
-.memberdecls td, .fieldtable tr {
- -webkit-transition-property: background-color, box-shadow;
- -webkit-transition-duration: 0.5s;
- -moz-transition-property: background-color, box-shadow;
- -moz-transition-duration: 0.5s;
- -ms-transition-property: background-color, box-shadow;
- -ms-transition-duration: 0.5s;
- -o-transition-property: background-color, box-shadow;
- -o-transition-duration: 0.5s;
- transition-property: background-color, box-shadow;
- transition-duration: 0.5s;
-}
-
-.memberdecls td.glow, .fieldtable tr.glow {
- background-color: var(--glow-color);
- box-shadow: 0 0 15px var(--glow-color);
-}
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- background-color: var(--memdecl-background-color);
- border: none;
- margin: 4px;
- padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
- padding: 0px 8px 4px 8px;
- color: var(--memdecl-foreground-color);
-}
-
-.memSeparator {
- border-bottom: 1px solid var(--memdecl-separator-color);
- line-height: 1px;
- margin: 0px;
- padding: 0px;
-}
-
-.memItemLeft, .memTemplItemLeft {
- white-space: nowrap;
-}
-
-.memItemRight, .memTemplItemRight {
- width: 100%;
-}
-
-.memTemplParams {
- color: var(--memdecl-template-color);
- white-space: nowrap;
- font-size: 80%;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtitle {
- padding: 8px;
- border-top: 1px solid var(--memdef-border-color);
- border-left: 1px solid var(--memdef-border-color);
- border-right: 1px solid var(--memdef-border-color);
- border-top-right-radius: 4px;
- border-top-left-radius: 4px;
- margin-bottom: -1px;
- background-image: var(--memdef-title-gradient-image);
- background-repeat: repeat-x;
- background-color: var(--memdef-title-background-color);
- line-height: 1.25;
- font-weight: 300;
- float:left;
-}
-
-.permalink
-{
- font-size: 65%;
- display: inline-block;
- vertical-align: middle;
-}
-
-.memtemplate {
- font-size: 80%;
- color: var(--memdef-template-color);
- font-weight: normal;
- margin-left: 9px;
-}
-
-.mempage {
- width: 100%;
-}
-
-.memitem {
- padding: 0;
- margin-bottom: 10px;
- margin-right: 5px;
- -webkit-transition: box-shadow 0.5s linear;
- -moz-transition: box-shadow 0.5s linear;
- -ms-transition: box-shadow 0.5s linear;
- -o-transition: box-shadow 0.5s linear;
- transition: box-shadow 0.5s linear;
- display: table !important;
- width: 100%;
-}
-
-.memitem.glow {
- box-shadow: 0 0 15px var(--glow-color);
-}
-
-.memname {
- font-weight: 400;
- margin-left: 6px;
-}
-
-.memname td {
- vertical-align: bottom;
-}
-
-.memproto, dl.reflist dt {
- border-top: 1px solid var(--memdef-border-color);
- border-left: 1px solid var(--memdef-border-color);
- border-right: 1px solid var(--memdef-border-color);
- padding: 6px 0px 6px 0px;
- color: var(--memdef-proto-text-color);
- font-weight: bold;
- text-shadow: var(--memdef-proto-text-shadow);
- background-color: var(--memdef-proto-background-color);
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- border-top-right-radius: 4px;
-}
-
-.overload {
- font-family: var(--font-family-monospace);
- font-size: 65%;
-}
-
-.memdoc, dl.reflist dd {
- border-bottom: 1px solid var(--memdef-border-color);
- border-left: 1px solid var(--memdef-border-color);
- border-right: 1px solid var(--memdef-border-color);
- padding: 6px 10px 2px 10px;
- border-top-width: 0;
- background-image:url('nav_g.png');
- background-repeat:repeat-x;
- background-color: var(--memdef-doc-background-color);
- /* opera specific markup */
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
- /* firefox specific markup */
- -moz-border-radius-bottomleft: 4px;
- -moz-border-radius-bottomright: 4px;
- -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
- /* webkit specific markup */
- -webkit-border-bottom-left-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
- -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-dl.reflist dt {
- padding: 5px;
-}
-
-dl.reflist dd {
- margin: 0px 0px 10px 0px;
- padding: 5px;
-}
-
-.paramkey {
- text-align: right;
-}
-
-.paramtype {
- white-space: nowrap;
-}
-
-.paramname {
- color: var(--memdef-param-name-color);
- white-space: nowrap;
-}
-.paramname em {
- font-style: normal;
-}
-.paramname code {
- line-height: 14px;
-}
-
-.params, .retval, .exception, .tparams {
- margin-left: 0px;
- padding-left: 0px;
-}
-
-.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
- font-weight: bold;
- vertical-align: top;
-}
-
-.params .paramtype, .tparams .paramtype {
- font-style: italic;
- vertical-align: top;
-}
-
-.params .paramdir, .tparams .paramdir {
- font-family: var(--font-family-monospace);
- vertical-align: top;
-}
-
-table.mlabels {
- border-spacing: 0px;
-}
-
-td.mlabels-left {
- width: 100%;
- padding: 0px;
-}
-
-td.mlabels-right {
- vertical-align: bottom;
- padding: 0px;
- white-space: nowrap;
-}
-
-span.mlabels {
- margin-left: 8px;
-}
-
-span.mlabel {
- background-color: var(--label-background-color);
- border-top:1px solid var(--label-left-top-border-color);
- border-left:1px solid var(--label-left-top-border-color);
- border-right:1px solid var(--label-right-bottom-border-color);
- border-bottom:1px solid var(--label-right-bottom-border-color);
- text-shadow: none;
- color: var(--label-foreground-color);
- margin-right: 4px;
- padding: 2px 3px;
- border-radius: 3px;
- font-size: 7pt;
- white-space: nowrap;
- vertical-align: middle;
-}
-
-
-
-/* @end */
-
-/* these are for tree view inside a (index) page */
-
-div.directory {
- margin: 10px 0px;
- border-top: 1px solid var(--directory-separator-color);
- border-bottom: 1px solid var(--directory-separator-color);
- width: 100%;
-}
-
-.directory table {
- border-collapse:collapse;
-}
-
-.directory td {
- margin: 0px;
- padding: 0px;
- vertical-align: top;
-}
-
-.directory td.entry {
- white-space: nowrap;
- padding-right: 6px;
- padding-top: 3px;
-}
-
-.directory td.entry a {
- outline:none;
-}
-
-.directory td.entry a img {
- border: none;
-}
-
-.directory td.desc {
- width: 100%;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 3px;
- border-left: 1px solid rgba(0,0,0,0.05);
-}
-
-.directory tr.odd {
- padding-left: 6px;
- background-color: var(--index-odd-item-bg-color);
-}
-
-.directory tr.even {
- padding-left: 6px;
- background-color: var(--index-even-item-bg-color);
-}
-
-.directory img {
- vertical-align: -30%;
-}
-
-.directory .levels {
- white-space: nowrap;
- width: 100%;
- text-align: right;
- font-size: 9pt;
-}
-
-.directory .levels span {
- cursor: pointer;
- padding-left: 2px;
- padding-right: 2px;
- color: var(--page-link-color);
-}
-
-.arrow {
- color: var(--nav-arrow-color);
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- cursor: pointer;
- font-size: 80%;
- display: inline-block;
- width: 16px;
- height: 22px;
-}
-
-.icon {
- font-family: var(--font-family-icon);
- line-height: normal;
- font-weight: bold;
- font-size: 12px;
- height: 14px;
- width: 16px;
- display: inline-block;
- background-color: var(--icon-background-color);
- color: var(--icon-foreground-color);
- text-align: center;
- border-radius: 4px;
- margin-left: 2px;
- margin-right: 2px;
-}
-
-.icona {
- width: 24px;
- height: 22px;
- display: inline-block;
-}
-
-.iconfopen {
- width: 24px;
- height: 18px;
- margin-bottom: 4px;
- background-image:var(--icon-folder-open-image);
- background-repeat: repeat-y;
- vertical-align:top;
- display: inline-block;
-}
-
-.iconfclosed {
- width: 24px;
- height: 18px;
- margin-bottom: 4px;
- background-image:var(--icon-folder-closed-image);
- background-repeat: repeat-y;
- vertical-align:top;
- display: inline-block;
-}
-
-.icondoc {
- width: 24px;
- height: 18px;
- margin-bottom: 4px;
- background-image:var(--icon-doc-image);
- background-position: 0px -4px;
- background-repeat: repeat-y;
- vertical-align:top;
- display: inline-block;
-}
-
-/* @end */
-
-div.dynheader {
- margin-top: 8px;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-address {
- font-style: normal;
- color: var(--footer-foreground-color);
-}
-
-table.doxtable caption {
- caption-side: top;
-}
-
-table.doxtable {
- border-collapse:collapse;
- margin-top: 4px;
- margin-bottom: 4px;
-}
-
-table.doxtable td, table.doxtable th {
- border: 1px solid var(--table-cell-border-color);
- padding: 3px 7px 2px;
-}
-
-table.doxtable th {
- background-color: var(--table-header-background-color);
- color: var(--table-header-foreground-color);
- font-size: 110%;
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-table.fieldtable {
- margin-bottom: 10px;
- border: 1px solid var(--memdef-border-color);
- border-spacing: 0px;
- border-radius: 4px;
- box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
-}
-
-.fieldtable td, .fieldtable th {
- padding: 3px 7px 2px;
-}
-
-.fieldtable td.fieldtype, .fieldtable td.fieldname {
- white-space: nowrap;
- border-right: 1px solid var(--memdef-border-color);
- border-bottom: 1px solid var(--memdef-border-color);
- vertical-align: top;
-}
-
-.fieldtable td.fieldname {
- padding-top: 3px;
-}
-
-.fieldtable td.fielddoc {
- border-bottom: 1px solid var(--memdef-border-color);
-}
-
-.fieldtable td.fielddoc p:first-child {
- margin-top: 0px;
-}
-
-.fieldtable td.fielddoc p:last-child {
- margin-bottom: 2px;
-}
-
-.fieldtable tr:last-child td {
- border-bottom: none;
-}
-
-.fieldtable th {
- background-image: var(--memdef-title-gradient-image);
- background-repeat:repeat-x;
- background-color: var(--memdef-title-background-color);
- font-size: 90%;
- color: var(--memdef-proto-text-color);
- padding-bottom: 4px;
- padding-top: 5px;
- text-align:left;
- font-weight: 400;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- border-bottom: 1px solid var(--memdef-border-color);
-}
-
-
-.tabsearch {
- top: 0px;
- left: 10px;
- height: 36px;
- background-image: var(--nav-gradient-image);
- z-index: 101;
- overflow: hidden;
- font-size: 13px;
-}
-
-.navpath ul
-{
- font-size: 11px;
- background-image: var(--nav-gradient-image);
- background-repeat:repeat-x;
- background-position: 0 -5px;
- height:30px;
- line-height:30px;
- color:var(--nav-text-normal-color);
- border:solid 1px var(--nav-breadcrumb-border-color);
- overflow:hidden;
- margin:0px;
- padding:0px;
-}
-
-.navpath li
-{
- list-style-type:none;
- float:left;
- padding-left:10px;
- padding-right:15px;
- background-image:var(--nav-breadcrumb-image);
- background-repeat:no-repeat;
- background-position:right;
- color: var(--nav-foreground-color);
-}
-
-.navpath li.navelem a
-{
- height:32px;
- display:block;
- text-decoration: none;
- outline: none;
- color: var(--nav-text-normal-color);
- font-family: var(--font-family-nav);
- text-shadow: var(--nav-text-normal-shadow);
- text-decoration: none;
-}
-
-.navpath li.navelem a:hover
-{
- color: var(--nav-text-hover-color);
- text-shadow: var(--nav-text-hover-shadow);
-}
-
-.navpath li.footer
-{
- list-style-type:none;
- float:right;
- padding-left:10px;
- padding-right:15px;
- background-image:none;
- background-repeat:no-repeat;
- background-position:right;
- color: var(--footer-foreground-color);
- font-size: 8pt;
-}
-
-
-div.summary
-{
- float: right;
- font-size: 8pt;
- padding-right: 5px;
- width: 50%;
- text-align: right;
-}
-
-div.summary a
-{
- white-space: nowrap;
-}
-
-table.classindex
-{
- margin: 10px;
- white-space: nowrap;
- margin-left: 3%;
- margin-right: 3%;
- width: 94%;
- border: 0;
- border-spacing: 0;
- padding: 0;
-}
-
-div.ingroups
-{
- font-size: 8pt;
- width: 50%;
- text-align: left;
-}
-
-div.ingroups a
-{
- white-space: nowrap;
-}
-
-div.header
-{
- background-image: var(--header-gradient-image);
- background-repeat:repeat-x;
- background-color: var(--header-background-color);
- margin: 0px;
- border-bottom: 1px solid var(--header-separator-color);
-}
-
-div.headertitle
-{
- padding: 5px 5px 5px 10px;
-}
-
-.PageDocRTL-title div.headertitle {
- text-align: right;
- direction: rtl;
-}
-
-dl {
- padding: 0 0 0 0;
-}
-
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
-dl.section {
- margin-left: 0px;
- padding-left: 0px;
-}
-
-dl.note {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #D0C000;
-}
-
-dl.warning, dl.attention {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #FF0000;
-}
-
-dl.pre, dl.post, dl.invariant {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #00D000;
-}
-
-dl.deprecated {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #505050;
-}
-
-dl.todo {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #00C0E0;
-}
-
-dl.test {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #3030E0;
-}
-
-dl.bug {
- margin-left: -7px;
- padding-left: 3px;
- border-left: 4px solid;
- border-color: #C08050;
-}
-
-dl.section dd {
- margin-bottom: 6px;
-}
-
-
-#projectrow
-{
- height: 56px;
-}
-
-#projectlogo
-{
- text-align: center;
- vertical-align: bottom;
- border-collapse: separate;
-}
-
-#projectlogo img
-{
- border: 0px none;
-}
-
-#projectalign
-{
- vertical-align: middle;
- padding-left: 0.5em;
-}
-
-#projectname
-{
- font-size: 200%;
- font-family: var(--font-family-title);
- margin: 0px;
- padding: 2px 0px;
-}
-
-#projectbrief
-{
- font-size: 90%;
- font-family: var(--font-family-title);
- margin: 0px;
- padding: 0px;
-}
-
-#projectnumber
-{
- font-size: 50%;
- font-family: 50% var(--font-family-title);
- margin: 0px;
- padding: 0px;
-}
-
-#titlearea
-{
- padding: 0px;
- margin: 0px;
- width: 100%;
- border-bottom: 1px solid var(--title-separator-color);
- background-color: var(--title-background-color);
-}
-
-.image
-{
- text-align: center;
-}
-
-.dotgraph
-{
- text-align: center;
-}
-
-.mscgraph
-{
- text-align: center;
-}
-
-.plantumlgraph
-{
- text-align: center;
-}
-
-.diagraph
-{
- text-align: center;
-}
-
-.caption
-{
- font-weight: bold;
-}
-
-dl.citelist {
- margin-bottom:50px;
-}
-
-dl.citelist dt {
- color:var(--citation-label-color);
- float:left;
- font-weight:bold;
- margin-right:10px;
- padding:5px;
- text-align:right;
- width:52px;
-}
-
-dl.citelist dd {
- margin:2px 0 2px 72px;
- padding:5px 0;
-}
-
-div.toc {
- padding: 14px 25px;
- background-color: var(--toc-background-color);
- border: 1px solid var(--toc-border-color);
- border-radius: 7px 7px 7px 7px;
- float: right;
- height: auto;
- margin: 0 8px 10px 10px;
- width: 200px;
-}
-
-div.toc li {
- background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent;
- font: 10px/1.2 var(--font-family-toc);
- margin-top: 5px;
- padding-left: 10px;
- padding-top: 2px;
-}
-
-div.toc h3 {
- font: bold 12px/1.2 var(--font-family-toc);
- color: var(--toc-header-color);
- border-bottom: 0 none;
- margin: 0;
-}
-
-div.toc ul {
- list-style: none outside none;
- border: medium none;
- padding: 0px;
-}
-
-div.toc li.level1 {
- margin-left: 0px;
-}
-
-div.toc li.level2 {
- margin-left: 15px;
-}
-
-div.toc li.level3 {
- margin-left: 15px;
-}
-
-div.toc li.level4 {
- margin-left: 15px;
-}
-
-span.emoji {
- /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
- * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
- */
-}
-
-span.obfuscator {
- display: none;
-}
-
-.inherit_header {
- font-weight: bold;
- color: var(--inherit-header-color);
- cursor: pointer;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.inherit_header td {
- padding: 6px 0px 2px 5px;
-}
-
-.inherit {
- display: none;
-}
-
-tr.heading h2 {
- margin-top: 12px;
- margin-bottom: 4px;
-}
-
-/* tooltip related style info */
-
-.ttc {
- position: absolute;
- display: none;
-}
-
-#powerTip {
- cursor: default;
- /*white-space: nowrap;*/
- color: var(--tooltip-foreground-color);
- background-color: var(--tooltip-background-color);
- border: 1px solid var(--tooltip-border-color);
- border-radius: 4px 4px 4px 4px;
- box-shadow: var(--tooltip-shadow);
- display: none;
- font-size: smaller;
- max-width: 80%;
- opacity: 0.9;
- padding: 1ex 1em 1em;
- position: absolute;
- z-index: 2147483647;
-}
-
-#powerTip div.ttdoc {
- color: var(--tooltip-doc-color);
- font-style: italic;
-}
-
-#powerTip div.ttname a {
- font-weight: bold;
-}
-
-#powerTip a {
- color: var(--tooltip-link-color);
-}
-
-#powerTip div.ttname {
- font-weight: bold;
-}
-
-#powerTip div.ttdeci {
- color: var(--tooltip-declaration-color);
-}
-
-#powerTip div {
- margin: 0px;
- padding: 0px;
- font-size: 12px;
- font-family: var(--font-family-tooltip);
- line-height: 16px;
-}
-
-#powerTip:before, #powerTip:after {
- content: "";
- position: absolute;
- margin: 0px;
-}
-
-#powerTip.n:after, #powerTip.n:before,
-#powerTip.s:after, #powerTip.s:before,
-#powerTip.w:after, #powerTip.w:before,
-#powerTip.e:after, #powerTip.e:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.nw:after, #powerTip.nw:before,
-#powerTip.sw:after, #powerTip.sw:before {
- border: solid transparent;
- content: " ";
- height: 0;
- width: 0;
- position: absolute;
-}
-
-#powerTip.n:after, #powerTip.s:after,
-#powerTip.w:after, #powerTip.e:after,
-#powerTip.nw:after, #powerTip.ne:after,
-#powerTip.sw:after, #powerTip.se:after {
- border-color: rgba(255, 255, 255, 0);
-}
-
-#powerTip.n:before, #powerTip.s:before,
-#powerTip.w:before, #powerTip.e:before,
-#powerTip.nw:before, #powerTip.ne:before,
-#powerTip.sw:before, #powerTip.se:before {
- border-color: rgba(128, 128, 128, 0);
-}
-
-#powerTip.n:after, #powerTip.n:before,
-#powerTip.ne:after, #powerTip.ne:before,
-#powerTip.nw:after, #powerTip.nw:before {
- top: 100%;
-}
-
-#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
- border-top-color: var(--tooltip-background-color);
- border-width: 10px;
- margin: 0px -10px;
-}
-#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before {
- border-top-color: var(--tooltip-border-color);
- border-width: 11px;
- margin: 0px -11px;
-}
-#powerTip.n:after, #powerTip.n:before {
- left: 50%;
-}
-
-#powerTip.nw:after, #powerTip.nw:before {
- right: 14px;
-}
-
-#powerTip.ne:after, #powerTip.ne:before {
- left: 14px;
-}
-
-#powerTip.s:after, #powerTip.s:before,
-#powerTip.se:after, #powerTip.se:before,
-#powerTip.sw:after, #powerTip.sw:before {
- bottom: 100%;
-}
-
-#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
- border-bottom-color: var(--tooltip-background-color);
- border-width: 10px;
- margin: 0px -10px;
-}
-
-#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
- border-bottom-color: var(--tooltip-border-color);
- border-width: 11px;
- margin: 0px -11px;
-}
-
-#powerTip.s:after, #powerTip.s:before {
- left: 50%;
-}
-
-#powerTip.sw:after, #powerTip.sw:before {
- right: 14px;
-}
-
-#powerTip.se:after, #powerTip.se:before {
- left: 14px;
-}
-
-#powerTip.e:after, #powerTip.e:before {
- left: 100%;
-}
-#powerTip.e:after {
- border-left-color: var(--tooltip-border-color);
- border-width: 10px;
- top: 50%;
- margin-top: -10px;
-}
-#powerTip.e:before {
- border-left-color: var(--tooltip-border-color);
- border-width: 11px;
- top: 50%;
- margin-top: -11px;
-}
-
-#powerTip.w:after, #powerTip.w:before {
- right: 100%;
-}
-#powerTip.w:after {
- border-right-color: var(--tooltip-border-color);
- border-width: 10px;
- top: 50%;
- margin-top: -10px;
-}
-#powerTip.w:before {
- border-right-color: var(--tooltip-border-color);
- border-width: 11px;
- top: 50%;
- margin-top: -11px;
-}
-
-@media print
-{
- #top { display: none; }
- #side-nav { display: none; }
- #nav-path { display: none; }
- body { overflow:visible; }
- h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
- .summary { display: none; }
- .memitem { page-break-inside: avoid; }
- #doc-content
- {
- margin-left:0 !important;
- height:auto !important;
- width:auto !important;
- overflow:inherit;
- display:inline;
- }
-}
-
-/* @group Markdown */
-
-table.markdownTable {
- border-collapse:collapse;
- margin-top: 4px;
- margin-bottom: 4px;
-}
-
-table.markdownTable td, table.markdownTable th {
- border: 1px solid var(--table-cell-border-color);
- padding: 3px 7px 2px;
-}
-
-table.markdownTable tr {
-}
-
-th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
- background-color: var(--table-header-background-color);
- color: var(--table-header-foreground-color);
- font-size: 110%;
- padding-bottom: 4px;
- padding-top: 5px;
-}
-
-th.markdownTableHeadLeft, td.markdownTableBodyLeft {
- text-align: left
-}
-
-th.markdownTableHeadRight, td.markdownTableBodyRight {
- text-align: right
-}
-
-th.markdownTableHeadCenter, td.markdownTableBodyCenter {
- text-align: center
-}
-
-tt, code, kbd, samp
-{
- display: inline-block;
-}
-/* @end */
-
-u {
- text-decoration: underline;
-}
-
-details>summary {
- list-style-type: none;
-}
-
-details > summary::-webkit-details-marker {
- display: none;
-}
-
-details>summary::before {
- content: "\25ba";
- padding-right:4px;
- font-size: 80%;
-}
-
-details[open]>summary::before {
- content: "\25bc";
- padding-right:4px;
- font-size: 80%;
-}
-
-body {
- scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color);
-}
-
-::-webkit-scrollbar {
- background-color: var(--scrollbar-background-color);
- height: 12px;
- width: 12px;
-}
-::-webkit-scrollbar-thumb {
- border-radius: 6px;
- box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color);
- border: solid 2px transparent;
-}
-::-webkit-scrollbar-corner {
- background-color: var(--scrollbar-background-color);
-}
-
diff --git a/doxygen.svg b/doxygen.svg
deleted file mode 100644
index 79a7635..0000000
--- a/doxygen.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dynsections.js b/dynsections.js
deleted file mode 100644
index b73c828..0000000
--- a/dynsections.js
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- @licstart The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend The above is the entire license notice for the JavaScript code in this file
- */
-function toggleVisibility(linkObj)
-{
- var base = $(linkObj).attr('id');
- var summary = $('#'+base+'-summary');
- var content = $('#'+base+'-content');
- var trigger = $('#'+base+'-trigger');
- var src=$(trigger).attr('src');
- if (content.is(':visible')===true) {
- content.hide();
- summary.show();
- $(linkObj).addClass('closed').removeClass('opened');
- $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
- } else {
- content.show();
- summary.hide();
- $(linkObj).removeClass('closed').addClass('opened');
- $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
- }
- return false;
-}
-
-function updateStripes()
-{
- $('table.directory tr').
- removeClass('even').filter(':visible:even').addClass('even');
- $('table.directory tr').
- removeClass('odd').filter(':visible:odd').addClass('odd');
-}
-
-function toggleLevel(level)
-{
- $('table.directory tr').each(function() {
- var l = this.id.split('_').length-1;
- var i = $('#img'+this.id.substring(3));
- var a = $('#arr'+this.id.substring(3));
- if (l');
- // add vertical lines to other rows
- $('span[class=lineno]').not(':eq(0)').append(' ');
- // add toggle controls to lines with fold divs
- $('div[class=foldopen]').each(function() {
- // extract specific id to use
- var id = $(this).attr('id').replace('foldopen','');
- // extract start and end foldable fragment attributes
- var start = $(this).attr('data-start');
- var end = $(this).attr('data-end');
- // replace normal fold span with controls for the first line of a foldable fragment
- $(this).find('span[class=fold]:first').replaceWith(' ');
- // append div for folded (closed) representation
- $(this).after('
');
- // extract the first line from the "open" section to represent closed content
- var line = $(this).children().first().clone();
- // remove any glow that might still be active on the original line
- $(line).removeClass('glow');
- if (start) {
- // if line already ends with a start marker (e.g. trailing {), remove it
- $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),''));
- }
- // replace minus with plus symbol
- $(line).find('span[class=fold]').css('background-image',plusImg[relPath]);
- // append ellipsis
- $(line).append(' '+start+'… '+end);
- // insert constructed line into closed div
- $('#foldclosed'+id).html(line);
- });
-}
-
-/* @license-end */
diff --git a/files.html b/files.html
deleted file mode 100644
index 6765f29..0000000
--- a/files.html
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: File List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
Here is a list of all files with brief descriptions:
-
-
-
-
-
diff --git a/folderclosed.svg b/folderclosed.svg
deleted file mode 100644
index b04bed2..0000000
--- a/folderclosed.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/folderclosedd.svg b/folderclosedd.svg
deleted file mode 100644
index 52f0166..0000000
--- a/folderclosedd.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/folderopen.svg b/folderopen.svg
deleted file mode 100644
index f6896dd..0000000
--- a/folderopen.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/folderopend.svg b/folderopend.svg
deleted file mode 100644
index 2d1f06e..0000000
--- a/folderopend.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/functions.html b/functions.html
deleted file mode 100644
index 2bfd6f8..0000000
--- a/functions.html
+++ /dev/null
@@ -1,208 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all class members with links to the classes they belong to:
-
-
- a -
-
-
-
- b -
-BaseSubscript : stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-bits_stencil : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-blocking : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- c -
-c : stencil::GenericID< T >
-copy_from_buffer() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-copy_to_buffer() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-
-
-
-
- d -
-device : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-diameter : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-dimensions : stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > , stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-
-
-
-
- g -
-GenericID() : stencil::GenericID< T >
-get_buffer() : stencil::cpu::Grid< Cell >
-get_grid_height() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-get_grid_width() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-get_kernel_runtime() : stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-get_n_processed_cells() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-get_params() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-get_tile_range() : stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-get_time_dependent_value() : stencil::BaseTransitionFunction , stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument , stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState , stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState
-get_walltime() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-GlobalState() : stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >
-Grid() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-grid_range : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-GridAccessor() : stencil::cpu::Grid< Cell >::GridAccessor< access_mode > , stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-GridImpl : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-
-
-
-
- h -
-halo_radius : stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-halo_value : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- i -
-id : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-index_stencil_t : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-iteration : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-iteration_offset : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- k -
-
-
-
- l -
-
-
-
- m -
-
-
-
- n -
-n_iterations : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-n_subiterations : stencil::BaseTransitionFunction
-
-
-
-
- o -
-operator()() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > , stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >
-operator==() : stencil::GenericID< T >
-operator[]() : stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > , stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::Stencil< Cell, stencil_radius, TimeDependentValue > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-
-
-
-
- p -
-profiling : stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- r -
-
-
-
- s -
-Stencil() : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-stencil_radius : stencil::BaseTransitionFunction
-StencilID : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-StencilUID : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-StencilUpdate() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-StencilUpdateKernel() : stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > , stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >
-subiteration : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-submit_read() : stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-submit_write() : stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-
-
-
-
- t -
-TDV : stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >
-time_dependent_value : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-TimeDependentValue : stencil::BaseTransitionFunction
-transition_function : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- u -
-
-
-
- v -
-
-
-
-
-
diff --git a/functions_func.html b/functions_func.html
deleted file mode 100644
index ee8d88d..0000000
--- a/functions_func.html
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Members - Functions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all functions with links to the classes they belong to:
-
-
- a -
-
-
-
- c -
-copy_from_buffer() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-copy_to_buffer() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-
-
-
-
- g -
-GenericID() : stencil::GenericID< T >
-get_buffer() : stencil::cpu::Grid< Cell >
-get_grid_height() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-get_grid_width() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-get_kernel_runtime() : stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-get_n_processed_cells() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-get_params() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-get_tile_range() : stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-get_time_dependent_value() : stencil::BaseTransitionFunction , stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument , stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState , stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState
-get_walltime() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-GlobalState() : stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >
-Grid() : stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-GridAccessor() : stencil::cpu::Grid< Cell >::GridAccessor< access_mode > , stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-
-
-
-
- k -
-
-
-
- l -
-
-
-
- m -
-
-
-
- o -
-operator()() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > , stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >
-operator==() : stencil::GenericID< T >
-operator[]() : stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > , stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::Stencil< Cell, stencil_radius, TimeDependentValue > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-
-
-
-
- s -
-Stencil() : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-StencilUpdate() : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-StencilUpdateKernel() : stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > , stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >
-submit_read() : stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-submit_write() : stencil::monotile::Grid< Cell, word_size > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >
-
-
-
-
-
-
diff --git a/functions_type.html b/functions_type.html
deleted file mode 100644
index 7248766..0000000
--- a/functions_type.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Members - Typedefs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all typedefs with links to the classes they belong to:
-BaseSubscript : stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-GridImpl : stencil::cpu::StencilUpdate< F > , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-index_stencil_t : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-LocalState : stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument
-StencilID : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-StencilUID : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-TDV : stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations > , stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >
-TimeDependentValue : stencil::BaseTransitionFunction
-uindex_stencil_t : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-
-
-
-
-
-
diff --git a/functions_vars.html b/functions_vars.html
deleted file mode 100644
index e07196b..0000000
--- a/functions_vars.html
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Members - Variables
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all variables with links to the classes they belong to:
-
-
- b -
-bits_stencil : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-blocking : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- c -
-
-
-
- d -
-device : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-diameter : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-dimensions : stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > , stencil::cpu::Grid< Cell > , stencil::monotile::Grid< Cell, word_size > , stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > , stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >
-
-
-
-
- g -
-
-
-
- h -
-halo_radius : stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
-halo_value : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- i -
-id : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-iteration : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-iteration_offset : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- n -
-n_iterations : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-n_subiterations : stencil::BaseTransitionFunction
-
-
-
-
- p -
-profiling : stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- r -
-
-
-
- s -
-
-
-
- t -
-time_dependent_value : stencil::Stencil< Cell, stencil_radius, TimeDependentValue >
-transition_function : stencil::cpu::StencilUpdate< F >::Params , stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
- v -
-
-
-
-
-
diff --git a/globals.html b/globals.html
deleted file mode 100644
index d2d7802..0000000
--- a/globals.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: File Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all file members with links to the files they belong to:
-
-
-
-
-
diff --git a/globals_defs.html b/globals_defs.html
deleted file mode 100644
index b40e75d..0000000
--- a/globals_defs.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: File Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all macros with links to the files they belong to:
-
-
-
-
-
diff --git a/globals_vars.html b/globals_vars.html
deleted file mode 100644
index 739891d..0000000
--- a/globals_vars.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: File Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all variables with links to the files they belong to:
-
-
-
-
-
diff --git a/graph_legend.html b/graph_legend.html
deleted file mode 100644
index 7573af3..0000000
--- a/graph_legend.html
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Graph Legend
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
This page explains how to interpret the graphs that are generated by doxygen.
-
Consider the following example:
-
class Invisible { };
-
-
-
class Truncated : public Invisible { };
-
-
-
class Undocumented { };
-
-
-
class PublicBase : public Truncated { };
-
-
-
template <class T> class Templ { };
-
-
-
class ProtectedBase { };
-
-
-
class PrivateBase { };
-
-
-
class Used { };
-
-
-
class Inherited : public PublicBase,
-
protected ProtectedBase,
-
private PrivateBase,
-
public Undocumented,
-
public Templ<int>
-
{
-
private :
-
Used *m_usedClass;
-
};
-
This will result in the following graph:
-
The boxes in the above graph have the following meaning:
-
-
-A filled gray box represents the struct or class for which the graph is generated.
-
-A box with a black border denotes a documented struct or class.
-
-A box with a gray border denotes an undocumented struct or class.
-
-A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
-
-
The arrows have the following meaning:
-
-
-A blue arrow is used to visualize a public inheritance relation between two classes.
-
-A dark green arrow is used for protected inheritance.
-
-A dark red arrow is used for private inheritance.
-
-A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
-
-A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
-
-
-
-
-
-
diff --git a/graph_legend.md5 b/graph_legend.md5
deleted file mode 100644
index 1bc6c74..0000000
--- a/graph_legend.md5
+++ /dev/null
@@ -1 +0,0 @@
-de6dfe8ad97023d8b34bd1305542c349
\ No newline at end of file
diff --git a/graph_legend.png b/graph_legend.png
deleted file mode 100644
index 9fd8831..0000000
Binary files a/graph_legend.png and /dev/null differ
diff --git a/hierarchy.html b/hierarchy.html
deleted file mode 100644
index d4c44c5..0000000
--- a/hierarchy.html
+++ /dev/null
@@ -1,120 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Hierarchy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
Go to the graphical class hierarchy
-This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 1 2 ]
- C stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim > A helper class to support the double-subscript idiom for GridAccessors
- C stencil::BaseTransitionFunction Base class for transition functions that disables advanced features
- C stencil::GenericID< T > A generic, two-dimensional index
- C stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >
- C stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >
- C stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >
- C stencil::cpu::Grid< Cell > A grid class for the CPU backend
- C stencil::monotile::Grid< Cell, word_size > A grid class for the monotile architecture
- C stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius > A grid class for the tiling architecture
- C stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode > An accessor for the monotile grid
- C stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode > An accessor for the monotile grid
- ▼ C sycl::host_accessor
- C stencil::cpu::Grid< Cell >::GridAccessor< access_mode > An accessor for the grid
- C stencil::tdv::single_pass::InlineStrategy A TDV implementation strategy that inlines the TDV function into the transition function
- C stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument
- C stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument
- C stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument
- C stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState
- C stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState
- C stencil::Padded< T > A container with padding to the next power of two
- C stencil::cpu::StencilUpdate< F >::Params Parameters for the stencil updater
- C stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params Parameters for the stencil updater
- C stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params Parameters for the stencil updater
- C stencil::tdv::single_pass::PrecomputeOnDeviceStrategy A TDV implementation strategy that precomputes TDVs on the device
- C stencil::tdv::single_pass::PrecomputeOnHostStrategy A TDV implementation strategy that precomputes TDVs on the host
- C stencil::Stencil< Cell, stencil_radius, TimeDependentValue > The stencil buffer
- C stencil::cpu::StencilUpdate< F > A grid updater that applies an iterative stencil code to a grid
- C stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size > A grid updater that applies an iterative stencil code to a grid
- C stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy > A grid updater that applies an iterative stencil code to a grid
- C stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe > The execution kernel of the monotile architecture
- C stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe > A kernel that executes a stencil transition function on a tile
-
-
-
-
-
-
-
diff --git a/index.html b/index.html
deleted file mode 100644
index 1d6ebfa..0000000
--- a/index.html
+++ /dev/null
@@ -1,153 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
StencilStream is a SYCL-based simulation framework for iterative stencil codes, primarily targeting FPGAs. With StencilStream, application developers and domain scientists can merely write down their stencil code definition and obtain a fully functional and optimized, FPGA-accelerated application.
-
-Design Goals
-
There are many stencil acceleration frameworks available, even for FPGAs. However, many of them use customized toolchains to support domain-specific languages, which makes them both hard to use for real-world applications and hard to extend. Therefore, StencilStream uses the SYCL/oneAPI framework and C++ templates, so that it is:
-
-Simple: The first steps don't take much and one can build and verify a simple app very quickly.
-Versatile: Actual applications have special needs and properties, and StencilStream supports them.
-Performant: Domain Scientists usually aren't FPGA experts or performance engineers. With StencilStream, they don't have to be and still get highly performant applications.
-
-
-Examples
-
We have implemented multiple example applications. One is a simple sketch to show how to get started, one is a benchmark, and two are proper applications that use StencilStream's advanced features. They are presented in the following:
-
-Conway's Game of Life
-
Our implementation of Conway's Game of Life is found in the subfolder examples/conway . It reads in the current state of a grid from standard-in, computes a requested number of iterations, and then writes it out again.
-
-HotSpot
-
This our implementation of the HotSpot benchmark from the Rodinia Benchmark Suite , found in the subfolder examples/hotspot . It achieves an arithmetic throughput of more than 1 TFLOPS on a Bittware 520N accelerator using an Intel Stratic 10 X 2800 FPGA.
-
-FDTD
-
The FDTD application in examples/fdtd is used to simulate the behavior of electro-magnetic waves within micro-cavities. The computed experiment is highly configurable, using configuration files written in JSON. Computationally, it is interesting because it utilizes StencilStream's time-dependent value feature to precompute the source wave and the sub-iterations feature to alternate between a electric and a magnetic field update. Below, you find a rendering of the final magnetic field, computed for the "Max Grid" experiment :
-
-
-
-Magnetic field within a micro-cavity, computed by the FDTD app
-
-Convection
-
The convection app, found in examples/convection , simulates the convection within Earth's Mantle. It is a port of an example app for the ParallelStencil.jl framework and can also be configured using a JSON file. Below, you find the animated output of the default experiment .
-
-
-
-A video showing convection, computed by the Convection app
-
-Performance & Hardware Usage
-
-
-Metric HotSpot (Monotile) HotSpot (Tiling) FDTD (Monotile) FDTD (Tiling) Convection (Monotile)
-
-Replications (Total PEs) 280 (280) 224 (224) 100 (200) 95 (190) 8 (24)
-
-Grid Size (height × width) 720 × 1024 16384 × 16384 512 × 512 4608 × 4608 512 × 1536
-
-No. of Iterations 280 1120 204580 184911 100
-
-Modeled Update Rate 73.51 GCells/s 48.23 GCells/s 21.79 GCells/s 14.30 GCells/s 1.26 GCells/s
-
-Measured Update Rate 73.40 GCells/s 37.54 GCells/s 21.09 GCells/s 14.20 GCells/s 0.83 GCells/s
-
-Throughput [GFLOPS] 1085.97 563.11 421.80 284.00 54.78
-
-Clock Frequency 337.50 MHz 317.50 MHz 308.33 MHz 284.38 MHz 335.00 MHz
-
-ALMs (% of 706k) 426k (60.4%) 481k (68.1%) 304k (43.2%) 444k (62.9%) 462k (65.5%)
-
-BRAMs (% of 9094) 3415 (37.6%) 6025 (66.3%) 4073 (44.8%) 6780 (74.6%) 2848 (31.3%)
-
-DSPs (% of 4713) 2522 (53.5%) 2240 (47.5%) 1725 (36.7%) 1734 (38.8%) 1031 (22.1%)
-
-
All applications were built and benchmarked at commit 5d82883fe3302f6bbf7a1adcc353ed464dd1d35e, using Intel OneAPI 23.2.0, Boost 1.81.0, and the Bittware 520N HPC board support package 20.4.0.
-
-Licensing & Citing
-
StencilStream is published under MIT license, as found in LICENSE.md. When using StencilStream for a scientific publication, please cite the following:
-
@inproceedings{opdenhoevel2024stencilstream,
-
author = {Opdenhövel, Jan-Oliver and Alt, Christoph and Plessl, Christian and Kenter, Tobias},
-
title = {StencilStream: A SYCL-based Stencil Simulation Framework Targeting FPGAs},
-
booktitle = {Proc. Int. Conf. on Field Programmable Logic and Applications (FPL)},
-
year = {2024}
-
}
-
-
-
-
-
-
diff --git a/inherit_graph_0.map b/inherit_graph_0.map
deleted file mode 100644
index 95a618c..0000000
--- a/inherit_graph_0.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_0.md5 b/inherit_graph_0.md5
deleted file mode 100644
index 2d4dcde..0000000
--- a/inherit_graph_0.md5
+++ /dev/null
@@ -1 +0,0 @@
-1ca4a4c000ef9e0d13f3c8e3f50baa3a
\ No newline at end of file
diff --git a/inherit_graph_0.png b/inherit_graph_0.png
deleted file mode 100644
index f324bda..0000000
Binary files a/inherit_graph_0.png and /dev/null differ
diff --git a/inherit_graph_1.map b/inherit_graph_1.map
deleted file mode 100644
index b3705d8..0000000
--- a/inherit_graph_1.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5
deleted file mode 100644
index e3dbbb2..0000000
--- a/inherit_graph_1.md5
+++ /dev/null
@@ -1 +0,0 @@
-930d6987acafac79fe9b0d088b0e4655
\ No newline at end of file
diff --git a/inherit_graph_1.png b/inherit_graph_1.png
deleted file mode 100644
index c62525d..0000000
Binary files a/inherit_graph_1.png and /dev/null differ
diff --git a/inherit_graph_10.map b/inherit_graph_10.map
deleted file mode 100644
index e2729bd..0000000
--- a/inherit_graph_10.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_10.md5 b/inherit_graph_10.md5
deleted file mode 100644
index 536d4f7..0000000
--- a/inherit_graph_10.md5
+++ /dev/null
@@ -1 +0,0 @@
-a39e7073965dd65d236f5b187e2217f2
\ No newline at end of file
diff --git a/inherit_graph_10.png b/inherit_graph_10.png
deleted file mode 100644
index c2a8542..0000000
Binary files a/inherit_graph_10.png and /dev/null differ
diff --git a/inherit_graph_11.map b/inherit_graph_11.map
deleted file mode 100644
index 8210a8a..0000000
--- a/inherit_graph_11.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_11.md5 b/inherit_graph_11.md5
deleted file mode 100644
index 6ec5297..0000000
--- a/inherit_graph_11.md5
+++ /dev/null
@@ -1 +0,0 @@
-6727d04c1b7783b654088db97edd7a65
\ No newline at end of file
diff --git a/inherit_graph_11.png b/inherit_graph_11.png
deleted file mode 100644
index c1b8866..0000000
Binary files a/inherit_graph_11.png and /dev/null differ
diff --git a/inherit_graph_12.map b/inherit_graph_12.map
deleted file mode 100644
index 0b2ba75..0000000
--- a/inherit_graph_12.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_12.md5 b/inherit_graph_12.md5
deleted file mode 100644
index a631556..0000000
--- a/inherit_graph_12.md5
+++ /dev/null
@@ -1 +0,0 @@
-c2966d41619f008c32a784a831860231
\ No newline at end of file
diff --git a/inherit_graph_12.png b/inherit_graph_12.png
deleted file mode 100644
index 199e4db..0000000
Binary files a/inherit_graph_12.png and /dev/null differ
diff --git a/inherit_graph_13.map b/inherit_graph_13.map
deleted file mode 100644
index ecc7c7e..0000000
--- a/inherit_graph_13.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5
deleted file mode 100644
index 0d41502..0000000
--- a/inherit_graph_13.md5
+++ /dev/null
@@ -1 +0,0 @@
-4bbbc5221259c4ddb33dbf32192f2d3c
\ No newline at end of file
diff --git a/inherit_graph_13.png b/inherit_graph_13.png
deleted file mode 100644
index a33bf1e..0000000
Binary files a/inherit_graph_13.png and /dev/null differ
diff --git a/inherit_graph_14.map b/inherit_graph_14.map
deleted file mode 100644
index af96d49..0000000
--- a/inherit_graph_14.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_14.md5 b/inherit_graph_14.md5
deleted file mode 100644
index eb8a3b0..0000000
--- a/inherit_graph_14.md5
+++ /dev/null
@@ -1 +0,0 @@
-56d23ed5e9be834bb31e5e7ae6963dfd
\ No newline at end of file
diff --git a/inherit_graph_14.png b/inherit_graph_14.png
deleted file mode 100644
index c107641..0000000
Binary files a/inherit_graph_14.png and /dev/null differ
diff --git a/inherit_graph_15.map b/inherit_graph_15.map
deleted file mode 100644
index 282fc01..0000000
--- a/inherit_graph_15.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_15.md5 b/inherit_graph_15.md5
deleted file mode 100644
index 0c1661a..0000000
--- a/inherit_graph_15.md5
+++ /dev/null
@@ -1 +0,0 @@
-5f4e4723042d457fd83151e2faf3b47a
\ No newline at end of file
diff --git a/inherit_graph_15.png b/inherit_graph_15.png
deleted file mode 100644
index 432e07e..0000000
Binary files a/inherit_graph_15.png and /dev/null differ
diff --git a/inherit_graph_16.map b/inherit_graph_16.map
deleted file mode 100644
index d2e0e7f..0000000
--- a/inherit_graph_16.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_16.md5 b/inherit_graph_16.md5
deleted file mode 100644
index 21f5123..0000000
--- a/inherit_graph_16.md5
+++ /dev/null
@@ -1 +0,0 @@
-da925711be6966476f124b037e8a90ef
\ No newline at end of file
diff --git a/inherit_graph_16.png b/inherit_graph_16.png
deleted file mode 100644
index 2c8bd7a..0000000
Binary files a/inherit_graph_16.png and /dev/null differ
diff --git a/inherit_graph_17.map b/inherit_graph_17.map
deleted file mode 100644
index 07360ca..0000000
--- a/inherit_graph_17.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_17.md5 b/inherit_graph_17.md5
deleted file mode 100644
index 1d75da8..0000000
--- a/inherit_graph_17.md5
+++ /dev/null
@@ -1 +0,0 @@
-2a28e3ac578248365ed11c3bd644db3e
\ No newline at end of file
diff --git a/inherit_graph_17.png b/inherit_graph_17.png
deleted file mode 100644
index c5274af..0000000
Binary files a/inherit_graph_17.png and /dev/null differ
diff --git a/inherit_graph_18.map b/inherit_graph_18.map
deleted file mode 100644
index 396799f..0000000
--- a/inherit_graph_18.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_18.md5 b/inherit_graph_18.md5
deleted file mode 100644
index 457cd70..0000000
--- a/inherit_graph_18.md5
+++ /dev/null
@@ -1 +0,0 @@
-750b8c55aaeebb0e728b30896232b21d
\ No newline at end of file
diff --git a/inherit_graph_18.png b/inherit_graph_18.png
deleted file mode 100644
index 35c5a82..0000000
Binary files a/inherit_graph_18.png and /dev/null differ
diff --git a/inherit_graph_19.map b/inherit_graph_19.map
deleted file mode 100644
index 51864b4..0000000
--- a/inherit_graph_19.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_19.md5 b/inherit_graph_19.md5
deleted file mode 100644
index 946f7ea..0000000
--- a/inherit_graph_19.md5
+++ /dev/null
@@ -1 +0,0 @@
-2ac2b5f78581cc2c38423daa654bc446
\ No newline at end of file
diff --git a/inherit_graph_19.png b/inherit_graph_19.png
deleted file mode 100644
index 02395eb..0000000
Binary files a/inherit_graph_19.png and /dev/null differ
diff --git a/inherit_graph_2.map b/inherit_graph_2.map
deleted file mode 100644
index 72252ec..0000000
--- a/inherit_graph_2.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5
deleted file mode 100644
index b8cbcaa..0000000
--- a/inherit_graph_2.md5
+++ /dev/null
@@ -1 +0,0 @@
-eaf972b57973d5b87f9518e3b7dc7058
\ No newline at end of file
diff --git a/inherit_graph_2.png b/inherit_graph_2.png
deleted file mode 100644
index 236290a..0000000
Binary files a/inherit_graph_2.png and /dev/null differ
diff --git a/inherit_graph_20.map b/inherit_graph_20.map
deleted file mode 100644
index b7f9f4f..0000000
--- a/inherit_graph_20.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_20.md5 b/inherit_graph_20.md5
deleted file mode 100644
index dc242c6..0000000
--- a/inherit_graph_20.md5
+++ /dev/null
@@ -1 +0,0 @@
-e55394175538d0135087fa96b809fd41
\ No newline at end of file
diff --git a/inherit_graph_20.png b/inherit_graph_20.png
deleted file mode 100644
index 27e16a4..0000000
Binary files a/inherit_graph_20.png and /dev/null differ
diff --git a/inherit_graph_21.map b/inherit_graph_21.map
deleted file mode 100644
index 476f324..0000000
--- a/inherit_graph_21.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_21.md5 b/inherit_graph_21.md5
deleted file mode 100644
index 22bc9fa..0000000
--- a/inherit_graph_21.md5
+++ /dev/null
@@ -1 +0,0 @@
-86f1c8c1d60d85b8dd901cd7baee9f70
\ No newline at end of file
diff --git a/inherit_graph_21.png b/inherit_graph_21.png
deleted file mode 100644
index 49f838d..0000000
Binary files a/inherit_graph_21.png and /dev/null differ
diff --git a/inherit_graph_22.map b/inherit_graph_22.map
deleted file mode 100644
index 87c413e..0000000
--- a/inherit_graph_22.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_22.md5 b/inherit_graph_22.md5
deleted file mode 100644
index 90b75f7..0000000
--- a/inherit_graph_22.md5
+++ /dev/null
@@ -1 +0,0 @@
-1f5c0a0b4caa2dc1fa347a640b2620ff
\ No newline at end of file
diff --git a/inherit_graph_22.png b/inherit_graph_22.png
deleted file mode 100644
index 118b433..0000000
Binary files a/inherit_graph_22.png and /dev/null differ
diff --git a/inherit_graph_23.map b/inherit_graph_23.map
deleted file mode 100644
index ccd81bf..0000000
--- a/inherit_graph_23.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_23.md5 b/inherit_graph_23.md5
deleted file mode 100644
index 0a0f6e7..0000000
--- a/inherit_graph_23.md5
+++ /dev/null
@@ -1 +0,0 @@
-f6afb8d873adb178fd36e471f8599895
\ No newline at end of file
diff --git a/inherit_graph_23.png b/inherit_graph_23.png
deleted file mode 100644
index 880c942..0000000
Binary files a/inherit_graph_23.png and /dev/null differ
diff --git a/inherit_graph_24.map b/inherit_graph_24.map
deleted file mode 100644
index d33c42b..0000000
--- a/inherit_graph_24.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_24.md5 b/inherit_graph_24.md5
deleted file mode 100644
index 4b52bff..0000000
--- a/inherit_graph_24.md5
+++ /dev/null
@@ -1 +0,0 @@
-994b27aa8e07737b97ab996ef4783187
\ No newline at end of file
diff --git a/inherit_graph_24.png b/inherit_graph_24.png
deleted file mode 100644
index 4816ecc..0000000
Binary files a/inherit_graph_24.png and /dev/null differ
diff --git a/inherit_graph_25.map b/inherit_graph_25.map
deleted file mode 100644
index 6830857..0000000
--- a/inherit_graph_25.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_25.md5 b/inherit_graph_25.md5
deleted file mode 100644
index 61ddec7..0000000
--- a/inherit_graph_25.md5
+++ /dev/null
@@ -1 +0,0 @@
-10339f74556b6e6ef88607f09ccaec37
\ No newline at end of file
diff --git a/inherit_graph_25.png b/inherit_graph_25.png
deleted file mode 100644
index 553953c..0000000
Binary files a/inherit_graph_25.png and /dev/null differ
diff --git a/inherit_graph_26.map b/inherit_graph_26.map
deleted file mode 100644
index 9f5a908..0000000
--- a/inherit_graph_26.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_26.md5 b/inherit_graph_26.md5
deleted file mode 100644
index acda755..0000000
--- a/inherit_graph_26.md5
+++ /dev/null
@@ -1 +0,0 @@
-8de8294a44c2e103384c227780091978
\ No newline at end of file
diff --git a/inherit_graph_26.png b/inherit_graph_26.png
deleted file mode 100644
index 1dd986f..0000000
Binary files a/inherit_graph_26.png and /dev/null differ
diff --git a/inherit_graph_27.map b/inherit_graph_27.map
deleted file mode 100644
index 00aad57..0000000
--- a/inherit_graph_27.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_27.md5 b/inherit_graph_27.md5
deleted file mode 100644
index f40a85e..0000000
--- a/inherit_graph_27.md5
+++ /dev/null
@@ -1 +0,0 @@
-49dc4f6e3697ec2005ad792f290992d9
\ No newline at end of file
diff --git a/inherit_graph_27.png b/inherit_graph_27.png
deleted file mode 100644
index a53a702..0000000
Binary files a/inherit_graph_27.png and /dev/null differ
diff --git a/inherit_graph_28.map b/inherit_graph_28.map
deleted file mode 100644
index 1a4e651..0000000
--- a/inherit_graph_28.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_28.md5 b/inherit_graph_28.md5
deleted file mode 100644
index c7b9d21..0000000
--- a/inherit_graph_28.md5
+++ /dev/null
@@ -1 +0,0 @@
-0b695e8be756126e1d78dc647c266cef
\ No newline at end of file
diff --git a/inherit_graph_28.png b/inherit_graph_28.png
deleted file mode 100644
index 57fb84e..0000000
Binary files a/inherit_graph_28.png and /dev/null differ
diff --git a/inherit_graph_29.map b/inherit_graph_29.map
deleted file mode 100644
index cc15e0e..0000000
--- a/inherit_graph_29.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/inherit_graph_29.md5 b/inherit_graph_29.md5
deleted file mode 100644
index 0554b1f..0000000
--- a/inherit_graph_29.md5
+++ /dev/null
@@ -1 +0,0 @@
-b2f2442bed9220fe9c4292fdb687eeed
\ No newline at end of file
diff --git a/inherit_graph_29.png b/inherit_graph_29.png
deleted file mode 100644
index de46657..0000000
Binary files a/inherit_graph_29.png and /dev/null differ
diff --git a/inherit_graph_3.map b/inherit_graph_3.map
deleted file mode 100644
index 8c0b114..0000000
--- a/inherit_graph_3.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_3.md5 b/inherit_graph_3.md5
deleted file mode 100644
index 978182c..0000000
--- a/inherit_graph_3.md5
+++ /dev/null
@@ -1 +0,0 @@
-65ceb51932929a4d745de39449e3a4dd
\ No newline at end of file
diff --git a/inherit_graph_3.png b/inherit_graph_3.png
deleted file mode 100644
index 3e50c1b..0000000
Binary files a/inherit_graph_3.png and /dev/null differ
diff --git a/inherit_graph_4.map b/inherit_graph_4.map
deleted file mode 100644
index 19744da..0000000
--- a/inherit_graph_4.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_4.md5 b/inherit_graph_4.md5
deleted file mode 100644
index 64e3dda..0000000
--- a/inherit_graph_4.md5
+++ /dev/null
@@ -1 +0,0 @@
-b063ecdb17ababa1700feca37ded9de4
\ No newline at end of file
diff --git a/inherit_graph_4.png b/inherit_graph_4.png
deleted file mode 100644
index bd1dbeb..0000000
Binary files a/inherit_graph_4.png and /dev/null differ
diff --git a/inherit_graph_5.map b/inherit_graph_5.map
deleted file mode 100644
index 23fb9b1..0000000
--- a/inherit_graph_5.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_5.md5 b/inherit_graph_5.md5
deleted file mode 100644
index e7d4128..0000000
--- a/inherit_graph_5.md5
+++ /dev/null
@@ -1 +0,0 @@
-67f7c21bd11dd8cdb7eaf23a0832cebc
\ No newline at end of file
diff --git a/inherit_graph_5.png b/inherit_graph_5.png
deleted file mode 100644
index 8c432c6..0000000
Binary files a/inherit_graph_5.png and /dev/null differ
diff --git a/inherit_graph_6.map b/inherit_graph_6.map
deleted file mode 100644
index a6306b4..0000000
--- a/inherit_graph_6.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_6.md5 b/inherit_graph_6.md5
deleted file mode 100644
index 501cf4a..0000000
--- a/inherit_graph_6.md5
+++ /dev/null
@@ -1 +0,0 @@
-78fafd03f2f7657abf44252e5d181bae
\ No newline at end of file
diff --git a/inherit_graph_6.png b/inherit_graph_6.png
deleted file mode 100644
index 8db495f..0000000
Binary files a/inherit_graph_6.png and /dev/null differ
diff --git a/inherit_graph_7.map b/inherit_graph_7.map
deleted file mode 100644
index 5472a06..0000000
--- a/inherit_graph_7.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_7.md5 b/inherit_graph_7.md5
deleted file mode 100644
index 4c268bb..0000000
--- a/inherit_graph_7.md5
+++ /dev/null
@@ -1 +0,0 @@
-0859834b066ce094d0ced5c5bfb97a75
\ No newline at end of file
diff --git a/inherit_graph_7.png b/inherit_graph_7.png
deleted file mode 100644
index 45c96d2..0000000
Binary files a/inherit_graph_7.png and /dev/null differ
diff --git a/inherit_graph_8.map b/inherit_graph_8.map
deleted file mode 100644
index cb9d260..0000000
--- a/inherit_graph_8.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_8.md5 b/inherit_graph_8.md5
deleted file mode 100644
index dd06228..0000000
--- a/inherit_graph_8.md5
+++ /dev/null
@@ -1 +0,0 @@
-2632785e0ac85e9e0c17cbc3f67154b4
\ No newline at end of file
diff --git a/inherit_graph_8.png b/inherit_graph_8.png
deleted file mode 100644
index 69e3d70..0000000
Binary files a/inherit_graph_8.png and /dev/null differ
diff --git a/inherit_graph_9.map b/inherit_graph_9.map
deleted file mode 100644
index ec02e9a..0000000
--- a/inherit_graph_9.map
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/inherit_graph_9.md5 b/inherit_graph_9.md5
deleted file mode 100644
index 13568d8..0000000
--- a/inherit_graph_9.md5
+++ /dev/null
@@ -1 +0,0 @@
-b20185524d820bf43063d26ba06f2950
\ No newline at end of file
diff --git a/inherit_graph_9.png b/inherit_graph_9.png
deleted file mode 100644
index b84b054..0000000
Binary files a/inherit_graph_9.png and /dev/null differ
diff --git a/inherits.html b/inherits.html
deleted file mode 100644
index 4f6773d..0000000
--- a/inherits.html
+++ /dev/null
@@ -1,239 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Class Hierarchy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
diff --git a/jquery.js b/jquery.js
deleted file mode 100644
index 1dffb65..0000000
--- a/jquery.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=" ",y.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference ",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
- * http://www.smartmenus.org/
- * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$(" ").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$(' ')[0],$(' ')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$});
\ No newline at end of file
diff --git a/logo for doxygen.png b/logo for doxygen.png
deleted file mode 100755
index 959d94e..0000000
Binary files a/logo for doxygen.png and /dev/null differ
diff --git a/menu.js b/menu.js
deleted file mode 100644
index b0b2693..0000000
--- a/menu.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- @licstart The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend The above is the entire license notice for the JavaScript code in this file
- */
-function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
- function makeTree(data,relPath) {
- var result='';
- if ('children' in data) {
- result+='';
- for (var i in data.children) {
- var url;
- var link;
- link = data.children[i].url;
- if (link.substring(0,1)=='^') {
- url = link.substring(1);
- } else {
- url = relPath+link;
- }
- result+=''+
- data.children[i].text+' '+
- makeTree(data.children[i],relPath)+' ';
- }
- result+=' ';
- }
- return result;
- }
- var searchBoxHtml;
- if (searchEnabled) {
- if (serverSide) {
- searchBoxHtml=''+
- '
'+
- ''+
- '
'+
- '
'+
- '
';
- } else {
- searchBoxHtml=''+
- '
'+
- ' '+
- ' '+
- ' '+
- '
'+
- ' '+
- ''+
- '
';
- }
- }
-
- $('#main-nav').before(' '+
- ''+
- ' '+
- 'Toggle main menu visibility '+
- ' '+
- '
');
- $('#main-nav').append(makeTree(menudata,relPath));
- $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
- if (searchBoxHtml) {
- $('#main-menu').append(' ');
- }
- var $mainMenuState = $('#main-menu-state');
- var prevWidth = 0;
- if ($mainMenuState.length) {
- function initResizableIfExists() {
- if (typeof initResizable==='function') initResizable();
- }
- // animate mobile menu
- $mainMenuState.change(function(e) {
- var $menu = $('#main-menu');
- var options = { duration: 250, step: initResizableIfExists };
- if (this.checked) {
- options['complete'] = function() { $menu.css('display', 'block') };
- $menu.hide().slideDown(options);
- } else {
- options['complete'] = function() { $menu.css('display', 'none') };
- $menu.show().slideUp(options);
- }
- });
- // set default menu visibility
- function resetState() {
- var $menu = $('#main-menu');
- var $mainMenuState = $('#main-menu-state');
- var newWidth = $(window).outerWidth();
- if (newWidth!=prevWidth) {
- if ($(window).outerWidth()<768) {
- $mainMenuState.prop('checked',false); $menu.hide();
- $('#searchBoxPos1').html(searchBoxHtml);
- $('#searchBoxPos2').hide();
- } else {
- $menu.show();
- $('#searchBoxPos1').empty();
- $('#searchBoxPos2').html(searchBoxHtml);
- $('#searchBoxPos2').show();
- }
- if (typeof searchBox!=='undefined') {
- searchBox.CloseResultsWindow();
- }
- prevWidth = newWidth;
- }
- }
- $(window).ready(function() { resetState(); initResizableIfExists(); });
- $(window).resize(resetState);
- }
- $('#main-menu').smartmenus();
-}
-/* @license-end */
diff --git a/menudata.js b/menudata.js
deleted file mode 100644
index d51c01d..0000000
--- a/menudata.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- @licstart The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend The above is the entire license notice for the JavaScript code in this file
-*/
-var menudata={children:[
-{text:"Main Page",url:"index.html"},
-{text:"Namespaces",url:"namespaces.html",children:[
-{text:"Namespace List",url:"namespaces.html"},
-{text:"Namespace Members",url:"namespacemembers.html",children:[
-{text:"All",url:"namespacemembers.html"},
-{text:"Functions",url:"namespacemembers_func.html"},
-{text:"Typedefs",url:"namespacemembers_type.html"}]}]},
-{text:"Concepts",url:"concepts.html"},
-{text:"Classes",url:"annotated.html",children:[
-{text:"Class List",url:"annotated.html"},
-{text:"Class Index",url:"classes.html"},
-{text:"Class Hierarchy",url:"inherits.html"},
-{text:"Class Members",url:"functions.html",children:[
-{text:"All",url:"functions.html",children:[
-{text:"a",url:"functions.html#index_a"},
-{text:"b",url:"functions.html#index_b"},
-{text:"c",url:"functions.html#index_c"},
-{text:"d",url:"functions.html#index_d"},
-{text:"g",url:"functions.html#index_g"},
-{text:"h",url:"functions.html#index_h"},
-{text:"i",url:"functions.html#index_i"},
-{text:"k",url:"functions.html#index_k"},
-{text:"l",url:"functions.html#index_l"},
-{text:"m",url:"functions.html#index_m"},
-{text:"n",url:"functions.html#index_n"},
-{text:"o",url:"functions.html#index_o"},
-{text:"p",url:"functions.html#index_p"},
-{text:"r",url:"functions.html#index_r"},
-{text:"s",url:"functions.html#index_s"},
-{text:"t",url:"functions.html#index_t"},
-{text:"u",url:"functions.html#index_u"},
-{text:"v",url:"functions.html#index_v"}]},
-{text:"Functions",url:"functions_func.html",children:[
-{text:"a",url:"functions_func.html#index_a"},
-{text:"c",url:"functions_func.html#index_c"},
-{text:"g",url:"functions_func.html#index_g"},
-{text:"k",url:"functions_func.html#index_k"},
-{text:"l",url:"functions_func.html#index_l"},
-{text:"m",url:"functions_func.html#index_m"},
-{text:"o",url:"functions_func.html#index_o"},
-{text:"s",url:"functions_func.html#index_s"}]},
-{text:"Variables",url:"functions_vars.html",children:[
-{text:"b",url:"functions_vars.html#index_b"},
-{text:"c",url:"functions_vars.html#index_c"},
-{text:"d",url:"functions_vars.html#index_d"},
-{text:"g",url:"functions_vars.html#index_g"},
-{text:"h",url:"functions_vars.html#index_h"},
-{text:"i",url:"functions_vars.html#index_i"},
-{text:"n",url:"functions_vars.html#index_n"},
-{text:"p",url:"functions_vars.html#index_p"},
-{text:"r",url:"functions_vars.html#index_r"},
-{text:"s",url:"functions_vars.html#index_s"},
-{text:"t",url:"functions_vars.html#index_t"},
-{text:"v",url:"functions_vars.html#index_v"}]},
-{text:"Typedefs",url:"functions_type.html"}]}]},
-{text:"Files",url:"files.html",children:[
-{text:"File List",url:"files.html"},
-{text:"File Members",url:"globals.html",children:[
-{text:"All",url:"globals.html"},
-{text:"Variables",url:"globals_vars.html"},
-{text:"Macros",url:"globals_defs.html"}]}]}]}
diff --git a/minus.svg b/minus.svg
deleted file mode 100644
index f70d0c1..0000000
--- a/minus.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/minusd.svg b/minusd.svg
deleted file mode 100644
index 5f8e879..0000000
--- a/minusd.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/monotile_2Grid_8hpp.html b/monotile_2Grid_8hpp.html
deleted file mode 100644
index 7d2f5e7..0000000
--- a/monotile_2Grid_8hpp.html
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/monotile/Grid.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/monotile_2Grid_8hpp__dep__incl.map b/monotile_2Grid_8hpp__dep__incl.map
deleted file mode 100644
index c8ca6d8..0000000
--- a/monotile_2Grid_8hpp__dep__incl.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/monotile_2Grid_8hpp__dep__incl.md5 b/monotile_2Grid_8hpp__dep__incl.md5
deleted file mode 100644
index 51b6d46..0000000
--- a/monotile_2Grid_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-7b623543817503ed079ad21d6fe2dc36
\ No newline at end of file
diff --git a/monotile_2Grid_8hpp__dep__incl.png b/monotile_2Grid_8hpp__dep__incl.png
deleted file mode 100644
index 7aa7d20..0000000
Binary files a/monotile_2Grid_8hpp__dep__incl.png and /dev/null differ
diff --git a/monotile_2Grid_8hpp__incl.map b/monotile_2Grid_8hpp__incl.map
deleted file mode 100644
index e1b57cb..0000000
--- a/monotile_2Grid_8hpp__incl.map
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/monotile_2Grid_8hpp__incl.md5 b/monotile_2Grid_8hpp__incl.md5
deleted file mode 100644
index 3535a64..0000000
--- a/monotile_2Grid_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-c33b811cf55fe8f0959b58d230a608cd
\ No newline at end of file
diff --git a/monotile_2Grid_8hpp__incl.png b/monotile_2Grid_8hpp__incl.png
deleted file mode 100644
index 9967948..0000000
Binary files a/monotile_2Grid_8hpp__incl.png and /dev/null differ
diff --git a/monotile_2Grid_8hpp_source.html b/monotile_2Grid_8hpp_source.html
deleted file mode 100644
index 358e441..0000000
--- a/monotile_2Grid_8hpp_source.html
+++ /dev/null
@@ -1,327 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/monotile/Grid.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
21 #include "../AccessorSubscript.hpp"
-
22 #include "../Concepts.hpp"
-
-
-
-
-
-
-
58 template <
class Cell, uindex_t word_size = 64>
class Grid {
-
-
60 static constexpr uindex_t word_length =
-
-
62 using IOWord = std::array<Padded<Cell>, word_length>;
-
-
-
-
-
-
-
80 : tile_buffer(sycl::range<1>(
n_cells_to_n_words (grid_width * grid_height, word_length))),
-
81 grid_width(grid_width), grid_height(grid_height) {}
-
-
-
-
-
-
91 grid_width(range[0]), grid_height(range[1]) {}
-
-
-
-
101 Grid (sycl::buffer<Cell, 2> buffer)
-
102 : tile_buffer(1), grid_width(buffer.get_range()[0]), grid_height(buffer.get_range()[1]) {
-
103 tile_buffer = sycl::range<1>(
n_cells_to_n_words (grid_width * grid_height, word_length));
-
-
-
-
-
-
-
117 : tile_buffer(other_grid.tile_buffer), grid_width(other_grid.grid_width),
-
118 grid_height(other_grid.grid_height) {}
-
-
-
-
-
-
-
-
-
-
144 template <sycl::access::mode access_mode = sycl::access::mode::read_write>
class GridAccessor {
-
-
146 using accessor_t = sycl::host_accessor<IOWord, 1, access_mode>;
-
-
-
-
-
-
-
-
-
-
-
-
-
182 requires (access_mode == sycl::access::mode::read)
-
-
184 uindex_t word_i = (
id [0] * grid_height +
id [1]) / word_length;
-
185 uindex_t cell_i = (
id [0] * grid_height +
id [1]) % word_length;
-
186 return ac[word_i][cell_i].value;
-
-
-
-
-
-
196 requires (access_mode != sycl::access::mode::read)
-
-
198 uindex_t word_i = (
id [0] * grid_height +
id [1]) / word_length;
-
199 uindex_t cell_i = (
id [0] * grid_height +
id [1]) % word_length;
-
200 return ac[word_i][cell_i].value;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
222 if (input_buffer.get_range() != sycl::range<2>(width, height)) {
-
223 throw std::range_error(
"The target buffer has not the same size as the grid" );
-
-
-
226 sycl::host_accessor in_ac(input_buffer, sycl::read_only);
-
-
228 for (
uindex_t c = 0; c < width; c++) {
-
229 for (
uindex_t r = 0; r < height; r++) {
-
230 tile_ac[c][r] = in_ac[c][r];
-
-
-
-
-
-
-
-
-
-
-
248 if (output_buffer.get_range() != sycl::range<2>(width, height)) {
-
249 throw std::range_error(
"The target buffer has not the same size as the grid" );
-
-
-
-
253 sycl::host_accessor out_ac(output_buffer, sycl::write_only);
-
254 for (
uindex_t c = 0; c < width; c++) {
-
255 for (
uindex_t r = 0; r < height; r++) {
-
256 out_ac[c][r] = in_ac[c][r];
-
-
-
-
-
-
-
277 template <
typename in_pipe> sycl::event
submit_read (sycl::queue queue) {
-
278 return queue.submit([&](sycl::handler &cgh) {
-
279 sycl::accessor ac(tile_buffer, cgh, sycl::read_only);
-
280 uindex_t n_cells = grid_width * grid_height;
-
-
282 cgh.single_task([=]() {
-
-
-
-
-
287 for (
uindex_t i = 0; i < n_cells; i++) {
-
288 if (cell_i == word_length) {
-
-
-
-
-
293 in_pipe::write(cache[cell_i].
value );
-
-
-
-
-
-
-
-
-
317 template <
typename out_pipe> sycl::event
submit_write (sycl::queue queue) {
-
318 return queue.submit([&](sycl::handler &cgh) {
-
319 sycl::accessor ac(tile_buffer, cgh, sycl::write_only);
-
320 uindex_t n_cells = grid_width * grid_height;
-
-
322 cgh.single_task([=]() {
-
-
-
-
-
327 for (
uindex_t i = 0; i < n_cells; i++) {
-
328 cache[cell_i].value = out_pipe::read();
-
-
330 if (cell_i == word_length || i == n_cells - 1) {
-
-
-
-
-
-
-
-
-
-
-
-
341 sycl::buffer<IOWord, 1> tile_buffer;
-
-
-
-
-
-
-
T value
Definition Helpers.hpp:0
-
A helper class to support the double-subscript idiom for GridAccessors.
Definition AccessorSubscript.hpp:49
-
An accessor for the monotile grid.
Definition Grid.hpp:144
-
GridAccessor(Grid &grid)
Create a new accessor to the given grid.
Definition Grid.hpp:157
-
Cell const & operator[](sycl::id< 2 > id)
Access a cell of the grid.
Definition Grid.hpp:181
-
BaseSubscript operator[](uindex_t i)
Access/Dereference the first dimension.
Definition Grid.hpp:173
-
static constexpr uindex_t dimensions
The number of dimensions of the underlying grid.
Definition Grid.hpp:152
-
Cell & operator[](sycl::id< 2 > id)
Access a cell of the grid.
Definition Grid.hpp:195
-
AccessorSubscript< Cell, GridAccessor, access_mode > BaseSubscript
Shorthand for the used subscript type.
Definition Grid.hpp:164
-
A grid class for the monotile architecture.
Definition Grid.hpp:58
-
sycl::event submit_read(sycl::queue queue)
Submit a kernel that sends the contents of the grid into a pipe.
Definition Grid.hpp:277
-
static constexpr uindex_t dimensions
The number of dimensions of the grid.
Definition Grid.hpp:70
-
Grid(sycl::range< 2 > range)
Create a new, uninitialized grid with the given dimensions.
Definition Grid.hpp:89
-
void copy_from_buffer(sycl::buffer< Cell, 2 > input_buffer)
Copy the contents of the SYCL buffer into the grid.
Definition Grid.hpp:218
-
Grid make_similar() const
Create an new, uninitialized grid with the same size as the current one.
Definition Grid.hpp:123
-
Grid(sycl::buffer< Cell, 2 > buffer)
Create a new grid with the same size and contents as the given SYCL buffer.
Definition Grid.hpp:101
-
uindex_t get_grid_width() const
Return the width, or number of columns, of the grid.
Definition Grid.hpp:128
-
Grid(uindex_t grid_width, uindex_t grid_height)
Create a new, uninitialized grid with the given dimensions.
Definition Grid.hpp:79
-
uindex_t get_grid_height() const
Return the height, or number of rows, of the grid.
Definition Grid.hpp:133
-
void copy_to_buffer(sycl::buffer< Cell, 2 > output_buffer)
Copy the contents of the grid into the SYCL buffer.
Definition Grid.hpp:244
-
Grid(Grid const &other_grid)
Create a new reference to the given grid.
Definition Grid.hpp:116
-
sycl::event submit_write(sycl::queue queue)
Submit a kernel that receives cells from the pipe and writes them to the grid.
Definition Grid.hpp:317
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
constexpr uindex_t n_cells_to_n_words(uindex_t n_cells, uindex_t word_length)
Compute the number of words necessary to store a given number of cells.
Definition Helpers.hpp:34
-
A container with padding to the next power of two.
Definition Helpers.hpp:45
-
-
-
-
-
diff --git a/monotile_2StencilUpdate_8hpp.html b/monotile_2StencilUpdate_8hpp.html
deleted file mode 100644
index c9f26ec..0000000
--- a/monotile_2StencilUpdate_8hpp.html
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/monotile/StencilUpdate.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "../Concepts.hpp "
-
#include "../GenericID.hpp "
-
#include "../Helpers.hpp "
-
#include "../Index.hpp "
-
#include "../tdv/SinglePassStrategies.hpp "
-
#include "Grid.hpp "
-
#include <chrono>
-
#include <type_traits>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-class stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe >
- The execution kernel of the monotile architecture. More...
-
-class stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >
- A grid updater that applies an iterative stencil code to a grid. More...
-
-struct stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- Parameters for the stencil updater. More...
-
-
-
-
-
-
-
diff --git a/monotile_2StencilUpdate_8hpp__incl.map b/monotile_2StencilUpdate_8hpp__incl.map
deleted file mode 100644
index 026fb29..0000000
--- a/monotile_2StencilUpdate_8hpp__incl.map
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/monotile_2StencilUpdate_8hpp__incl.md5 b/monotile_2StencilUpdate_8hpp__incl.md5
deleted file mode 100644
index cbbafe3..0000000
--- a/monotile_2StencilUpdate_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-00026180ee6d66ea82a1dd02a1b48d42
\ No newline at end of file
diff --git a/monotile_2StencilUpdate_8hpp__incl.png b/monotile_2StencilUpdate_8hpp__incl.png
deleted file mode 100644
index 30bc3f9..0000000
Binary files a/monotile_2StencilUpdate_8hpp__incl.png and /dev/null differ
diff --git a/monotile_2StencilUpdate_8hpp_source.html b/monotile_2StencilUpdate_8hpp_source.html
deleted file mode 100644
index c1059fd..0000000
--- a/monotile_2StencilUpdate_8hpp_source.html
+++ /dev/null
@@ -1,534 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/monotile/StencilUpdate.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
21 #include "../Concepts.hpp"
-
22 #include "../GenericID.hpp"
-
23 #include "../Helpers.hpp"
-
24 #include "../Index.hpp"
-
25 #include "../tdv/SinglePassStrategies.hpp"
-
-
-
-
-
-
-
-
61 template <concepts::TransitionFunction TransFunc,
-
62 tdv::single_pass::KernelArgument<TransFunc> TDVKernelArgument,
-
-
64 typename in_pipe,
typename out_pipe>
-
65 requires (n_processing_elements % TransFunc::n_subiterations == 0)
-
-
-
-
68 using Cell =
typename TransFunc::Cell;
-
69 using TDV =
typename TransFunc::TimeDependentValue;
-
70 using TDVLocalState =
typename TDVKernelArgument::LocalState;
-
-
-
76 static constexpr uindex_t stencil_diameter = StencilImpl::diameter;
-
-
78 static constexpr uindex_t iters_per_pass = n_processing_elements / TransFunc::n_subiterations;
-
-
-
81 return n_processing_elements * TransFunc::stencil_radius * (grid_height + 1);
-
-
-
-
85 return grid_width * grid_height + calc_pipeline_latency(grid_height);
-
-
-
-
-
-
-
-
93 static constexpr unsigned long bits_1d =
-
94 std::bit_width(std::max(max_grid_width, max_grid_height));
-
95 using index_1d_t = ac_int<bits_1d + 1, true>;
-
96 using uindex_1d_t = ac_int<bits_1d, false>;
-
-
98 static constexpr unsigned long bits_2d = 2 * bits_1d;
-
99 using index_2d_t = ac_int<bits_2d + 1, true>;
-
100 using uindex_2d_t = ac_int<bits_2d, false>;
-
-
102 static constexpr unsigned long bits_pes =
-
103 std::max<int>(2, std::bit_width(n_processing_elements));
-
104 using index_pes_t = ac_int<bits_pes + 1, true>;
-
105 using uindex_pes_t = ac_int<bits_pes, false>;
-
-
107 static constexpr unsigned long bits_n_iterations =
-
108 std::bit_width(calc_n_iterations(max_grid_width, max_grid_height));
-
109 using index_n_iterations_t = ac_int<bits_n_iterations + 1, true>;
-
110 using uindex_n_iterations_t = ac_int<bits_n_iterations, false>;
-
-
-
-
-
-
135 TDVKernelArgument tdv_kernel_argument)
-
136 : trans_func(trans_func), i_iteration(i_iteration), target_i_iteration(target_i_iteration),
-
137 grid_width(grid_width), grid_height(grid_height), halo_value(halo_value),
-
138 tdv_kernel_argument(tdv_kernel_argument) {
-
139 assert(grid_height <= max_grid_height);
-
-
-
-
-
-
146 [[intel::fpga_register]] index_1d_t c[n_processing_elements];
-
147 [[intel::fpga_register]] index_1d_t r[n_processing_elements];
-
148 TDVLocalState tdv_local_state(tdv_kernel_argument);
-
-
-
151 index_1d_t prev_c = 0;
-
152 index_1d_t prev_r = 0;
-
-
154 for (uindex_pes_t i = 0; i < uindex_pes_t(n_processing_elements); i++) {
-
155 c[i] = prev_c - TransFunc::stencil_radius;
-
156 r[i] = prev_r - TransFunc::stencil_radius;
-
157 if (r[i] < index_pes_t(0)) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
172 [[intel::fpga_memory,
-
173 intel::numbanks(2 * std::bit_ceil(n_processing_elements))]]
Padded<Cell>
-
174 cache[2][max_grid_height][std::bit_ceil(n_processing_elements)][stencil_diameter - 1];
-
175 [[intel::fpga_register]] Cell stencil_buffer[n_processing_elements][stencil_diameter]
-
-
-
178 uindex_n_iterations_t n_iterations = calc_n_iterations(grid_width, grid_height);
-
179 for (uindex_n_iterations_t i = 0; i < n_iterations; i++) {
-
-
181 if (i < uindex_n_iterations_t(grid_width * grid_height)) {
-
182 carry = in_pipe::read();
-
-
-
-
-
-
188 for (uindex_pes_t i_processing_element = 0;
-
189 i_processing_element < uindex_pes_t(n_processing_elements);
-
190 i_processing_element++) {
-
-
192 for (uindex_stencil_t r = 0; r < uindex_stencil_t(stencil_diameter - 1); r++) {
-
-
194 for (uindex_stencil_t c = 0; c < uindex_stencil_t(stencil_diameter); c++) {
-
195 stencil_buffer[i_processing_element][c][r] =
-
196 stencil_buffer[i_processing_element][c][r + 1];
-
-
-
-
-
-
-
203 for (uindex_stencil_t cache_c = 0; cache_c < uindex_stencil_t(stencil_diameter);
-
-
-
206 if (cache_c == uindex_stencil_t(stencil_diameter - 1)) {
-
-
-
209 new_value = cache[c[i_processing_element][0]][r[i_processing_element]]
-
210 [i_processing_element][cache_c]
-
-
-
-
214 stencil_buffer[i_processing_element][cache_c][stencil_diameter - 1] = new_value;
-
-
216 cache[(~c[i_processing_element])[0]][r[i_processing_element]]
-
217 [i_processing_element][cache_c - 1]
-
-
-
-
-
-
223 (i_iteration + i_processing_element / TransFunc::n_subiterations).to_uint();
-
-
225 (i_processing_element % TransFunc::n_subiterations).to_uint();
-
-
227 if (pe_iteration < target_i_iteration) {
-
228 TDV tdv = tdv_local_state.get_time_dependent_value(
-
229 (i_processing_element / TransFunc::n_subiterations).to_uint());
-
-
231 UID (grid_width, grid_height), pe_iteration, pe_subiteration,
-
-
-
234 bool h_halo_mask[stencil_diameter];
-
235 bool v_halo_mask[stencil_diameter];
-
-
237 for (uindex_stencil_t mask_i = 0; mask_i < uindex_stencil_t(stencil_diameter);
-
-
-
-
-
242 if (mask_i < uindex_stencil_t(TransFunc::stencil_radius)) {
-
243 h_halo_mask[mask_i] = c[i_processing_element] >=
-
244 index_1d_t(TransFunc::stencil_radius - mask_i);
-
245 v_halo_mask[mask_i] = r[i_processing_element] >=
-
246 index_1d_t(TransFunc::stencil_radius - mask_i);
-
247 }
else if (mask_i == uindex_stencil_t(TransFunc::stencil_radius)) {
-
248 h_halo_mask[mask_i] =
true ;
-
249 v_halo_mask[mask_i] =
true ;
-
-
251 h_halo_mask[mask_i] =
-
252 c[i_processing_element] <
-
253 grid_width + index_1d_t(TransFunc::stencil_radius - mask_i);
-
254 v_halo_mask[mask_i] =
-
255 r[i_processing_element] <
-
256 grid_height + index_1d_t(TransFunc::stencil_radius - mask_i);
-
-
-
-
-
261 for (uindex_stencil_t cell_c = 0; cell_c < uindex_stencil_t(stencil_diameter);
-
-
-
264 for (uindex_stencil_t cell_r = 0;
-
265 cell_r < uindex_stencil_t(stencil_diameter); cell_r++) {
-
266 if (h_halo_mask[cell_c] && v_halo_mask[cell_r]) {
-
267 stencil [StencilUID(cell_c, cell_r)] =
-
268 stencil_buffer[i_processing_element][cell_c][cell_r];
-
-
270 stencil [StencilUID(cell_c, cell_r)] = halo_value;
-
-
-
-
-
-
-
277 carry = stencil_buffer[i_processing_element][TransFunc::stencil_radius]
-
278 [TransFunc::stencil_radius];
-
-
-
281 r[i_processing_element] += 1;
-
282 if (r[i_processing_element] == index_1d_t(grid_height)) {
-
283 r[i_processing_element] = 0;
-
284 c[i_processing_element] += 1;
-
-
-
-
288 if (i >= uindex_n_iterations_t(calc_pipeline_latency(grid_height))) {
-
289 out_pipe::write(carry);
-
-
-
-
-
-
-
295 TransFunc trans_func;
-
-
-
-
-
-
301 TDVKernelArgument tdv_kernel_argument;
-
-
-
-
-
-
-
-
-
-
-
-
341 using Cell = F::Cell;
-
342 using TDV =
typename F::TimeDependentValue;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
412 : params(params), n_processed_cells(0), work_events(), walltime(0.0) {}
-
-
-
-
-
-
-
-
433 throw std::range_error(
"The grid is too tall for the stencil update kernel." );
-
-
-
436 throw std::range_error(
"The grid is too wide for the stencil update kernel." );
-
-
438 using in_pipe = sycl::pipe<class monotile_in_pipe, Cell>;
-
439 using out_pipe = sycl::pipe<class monotile_out_pipe, Cell>;
-
-
441 constexpr uindex_t iters_per_pass = n_processing_elements / F::n_subiterations;
-
-
443 using TDVGlobalState = TDVStrategy::template GlobalState<F, iters_per_pass>;
-
444 using TDVKernelArgument =
typename TDVGlobalState::KernelArgument;
-
445 using ExecutionKernelImpl =
-
-
447 max_grid_height, in_pipe, out_pipe>;
-
-
449 sycl::queue input_kernel_queue =
-
450 sycl::queue(params.
device , {sycl::property::queue::in_order{}});
-
451 sycl::queue output_kernel_queue =
-
452 sycl::queue(params.device, {sycl::property::queue::in_order{}});
-
-
454 sycl::queue update_kernel_queue =
-
455 sycl::queue(params.device, {cl::sycl::property::queue::enable_profiling{},
-
456 sycl::property::queue::in_order{}});
-
-
458 GridImpl swap_grid_a = source_grid.make_similar();
-
459 GridImpl swap_grid_b = source_grid.make_similar();
-
-
461 GridImpl *pass_source = &source_grid;
-
462 GridImpl *pass_target = &swap_grid_b;
-
-
464 F trans_func = params.transition_function;
-
465 TDVGlobalState tdv_global_state(trans_func, params.iteration_offset, params.n_iterations);
-
-
467 auto walltime_start = std::chrono::high_resolution_clock::now();
-
-
469 uindex_t target_n_iterations = params.iteration_offset + params.n_iterations;
-
470 for (
uindex_t i = params.iteration_offset; i < target_n_iterations; i += iters_per_pass) {
-
471 pass_source->template submit_read<in_pipe>(input_kernel_queue);
-
472 uindex_t iters_in_this_pass = std::min(iters_per_pass, target_n_iterations - i);
-
-
474 sycl::event work_event = update_kernel_queue.submit([&](sycl::handler &cgh) {
-
475 TDVKernelArgument tdv_kernel_argument(tdv_global_state, cgh, i, iters_in_this_pass);
-
476 ExecutionKernelImpl exec_kernel(
-
477 trans_func, i, target_n_iterations, source_grid.get_grid_width(),
-
478 source_grid.get_grid_height(), params.halo_value, tdv_kernel_argument);
-
479 cgh.single_task<ExecutionKernelImpl>(exec_kernel);
-
-
481 if (params.profiling) {
-
482 work_events.push_back(work_event);
-
-
-
485 pass_target->template submit_write<out_pipe>(output_kernel_queue);
-
-
487 if (i == params.iteration_offset) {
-
488 pass_source = &swap_grid_b;
-
489 pass_target = &swap_grid_a;
-
-
491 std::swap(pass_source, pass_target);
-
-
-
-
495 if (params.blocking) {
-
496 output_kernel_queue.wait();
-
-
-
499 auto walltime_end = std::chrono::high_resolution_clock::now();
-
500 std::chrono::duration<double> walltime = walltime_end - walltime_start;
-
501 this->walltime += walltime.count();
-
-
-
504 params.n_iterations * source_grid.get_grid_width() * source_grid.get_grid_height();
-
-
-
-
-
-
-
-
-
-
525 double kernel_runtime = 0.0;
-
526 for (sycl::event work_event : work_events) {
-
527 const double timesteps_per_second = 1000000000.0;
-
-
-
530 .get_profiling_info<cl::sycl::info::event_profiling::command_start>()) /
-
531 timesteps_per_second;
-
-
-
534 work_event.get_profiling_info<cl::sycl::info::event_profiling::command_end>()) /
-
535 timesteps_per_second;
-
536 kernel_runtime += end - start;
-
-
538 return kernel_runtime;
-
-
-
-
-
-
-
-
-
-
553 std::vector<sycl::event> work_events;
-
-
-
-
-
-
T value
Definition Helpers.hpp:0
-
A generic, two-dimensional index.
Definition GenericID.hpp:32
-
The stencil buffer.
Definition Stencil.hpp:48
-
ac_int< bits_stencil, false > uindex_stencil_t
An unsigned index type for column and row indices in this stencil.
Definition Stencil.hpp:60
-
ac_int< bits_stencil, true > index_stencil_t
A signed index type for column and row indices in this stencil.
Definition Stencil.hpp:57
-
A grid class for the monotile architecture.
Definition Grid.hpp:58
-
uindex_t get_grid_width() const
Return the width, or number of columns, of the grid.
Definition Grid.hpp:128
-
uindex_t get_grid_height() const
Return the height, or number of rows, of the grid.
Definition Grid.hpp:133
-
The execution kernel of the monotile architecture.
Definition StencilUpdate.hpp:66
-
void operator()() const
Execute the kernel.
Definition StencilUpdate.hpp:145
-
StencilUpdateKernel(TransFunc trans_func, uindex_t i_iteration, uindex_t target_i_iteration, uindex_t grid_width, uindex_t grid_height, Cell halo_value, TDVKernelArgument tdv_kernel_argument)
Create and configure the execution kernel.
Definition StencilUpdate.hpp:133
-
A grid updater that applies an iterative stencil code to a grid.
Definition StencilUpdate.hpp:339
-
double get_kernel_runtime() const
Return the accumulated total runtime of the execution kernel.
Definition StencilUpdate.hpp:524
-
double get_walltime() const
Return the accumulated runtime of the updater, measured from the host side.
Definition StencilUpdate.hpp:547
-
Params & get_params()
Return a reference to the parameters.
Definition StencilUpdate.hpp:419
-
StencilUpdate(Params params)
Create a new stencil updater object.
Definition StencilUpdate.hpp:411
-
GridImpl operator()(GridImpl &source_grid)
Compute a new grid based on the source grid, using the configured transition function.
Definition StencilUpdate.hpp:431
-
uindex_t get_n_processed_cells() const
Return the accumulated total number of cells processed by this updater.
Definition StencilUpdate.hpp:516
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
Requirements for a TDV implementation strategy.
Definition SinglePassStrategies.hpp:99
-
Definition AccessorSubscript.hpp:24
-
GenericID< uindex_t > UID
An unsigned, two-dimensional index.
Definition GenericID.hpp:80
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
GenericID< index_t > ID
A signed, two-dimensional index.
Definition GenericID.hpp:75
-
A container with padding to the next power of two.
Definition Helpers.hpp:45
-
Parameters for the stencil updater.
Definition StencilUpdate.hpp:351
-
uindex_t n_iterations
The number of iterations to compute.
Definition StencilUpdate.hpp:375
-
uindex_t iteration_offset
The iteration index offset.
Definition StencilUpdate.hpp:370
-
bool profiling
Enable profiling.
Definition StencilUpdate.hpp:405
-
sycl::device device
The device to use for computations.
Definition StencilUpdate.hpp:385
-
Cell halo_value
The cell value to present for cells outside of the grid.
Definition StencilUpdate.hpp:362
-
bool blocking
Should the stencil updater block until completion, or return immediately after all kernels have been ...
Definition StencilUpdate.hpp:396
-
F transition_function
An instance of the transition function type.
Definition StencilUpdate.hpp:357
-
A TDV implementation strategy that inlines the TDV function into the transition function.
Definition SinglePassStrategies.hpp:114
-
-
-
-
-
-
diff --git a/namespacemembers.html b/namespacemembers.html
deleted file mode 100644
index ce1cf1d..0000000
--- a/namespacemembers.html
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Namespace Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all namespace members with links to the namespace documentation for each member:
-
-
-
-
-
diff --git a/namespacemembers_func.html b/namespacemembers_func.html
deleted file mode 100644
index f686d75..0000000
--- a/namespacemembers_func.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Namespace Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all namespace functions with links to the namespace documentation for each function:
-
-
-
-
-
diff --git a/namespacemembers_type.html b/namespacemembers_type.html
deleted file mode 100644
index 316962a..0000000
--- a/namespacemembers_type.html
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Namespace Members
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
Here is a list of all namespace typedefs with links to the namespace documentation for each typedef:
-
-
-
-
-
diff --git a/namespaces.html b/namespaces.html
deleted file mode 100644
index 4d90c03..0000000
--- a/namespaces.html
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Namespace List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
Here is a list of all namespaces with brief descriptions:
-
[detail level 1 2 3 4 5 6 7 ]
-
-
-
-
-
-
diff --git a/namespacestencil.html b/namespacestencil.html
deleted file mode 100644
index 830d97d..0000000
--- a/namespacestencil.html
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
◆ ID
-
-
-
-
-
A signed, two-dimensional index.
-
-
-
-
-
◆ index_t
-
-
-
-
-
A signed integer of configurable width.
-
This integer type is used in StencilStream to indicate cell positions and iterations, among others. Its width can be configured using the STENCIL_INDEX_WIDTH
macro, which defaults to 64.
-
Note that this type is likely to be replaced by std::ptrdiff_t
in a future update. Most performance-critical indices already use custom-precision integers tailored to their specific users, so the need to customize the width of the remaining indices is relatively low. In addition, using std::ptrdiff_t
as a general index type would allow better compatibility with SYCL and other libraries.
-
-
-
-
-
◆ UID
-
-
-
-
-
An unsigned, two-dimensional index.
-
-
-
-
-
◆ uindex_t
-
-
-
-
-
An unsigned integer of configurable width.
-
This integer type is used in StencilStream to indicate cell positions and iterations, among others. Its width can be configured using the STENCIL_INDEX_WIDTH
macro, which defaults to 64.
-
Note that this type is likely to be replaced by std::size_t
in a future update. Most performance-critical indices already use custom-precision integers tailored to their specific users, so the need to customize the width of the remaining indices is relatively low. In addition, using std::size_t
as a general index type would allow better compatibility with SYCL and other libraries.
-
-
-
-
-
-
◆ __attribute__()
-
-
-
-
-template<typename T >
-
-
- struct stencil::Padded stencil::__attribute__
- (
- (aligned(std::bit_ceil(sizeof(T))))
- )
-
-
-
-
-
-
-
-
-
◆ n_cells_to_n_words()
-
-
-
-
-
-
-
-
- constexpr uindex_t stencil::n_cells_to_n_words
- (
- uindex_t
- n_cells ,
-
-
-
-
- uindex_t
- word_length
-
-
-
- )
-
-
-
-
-
-inline constexpr
-
-
-
-
-
Compute the number of words necessary to store a given number of cells.
-
Some backends store cells in groups called words. Each word contains a certain number of cells, and this function computes how many words are needed to store a certain number of cells. This is the total number of cells divided by the number of cells in a word, plus one additional word if the word length doesn't divide the total number of cells.
-
-
-
-
-
-
-
-
diff --git a/namespacestencil_1_1concepts.html b/namespacestencil_1_1concepts.html
deleted file mode 100644
index 5d3c3de..0000000
--- a/namespacestencil_1_1concepts.html
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::concepts Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-concept TransitionFunction
- A technical definition of a stencil transition function.
-
-concept GridAccessor
- An accessor for a two-dimensional grid.
-
-concept Grid
- A regular grid of cells.
-
-concept StencilUpdate
- A grid updater that repeatedly applies stencil updates to each cell.
-
-
-
-
-
-
-
diff --git a/namespacestencil_1_1cpu.html b/namespacestencil_1_1cpu.html
deleted file mode 100644
index 64344ba..0000000
--- a/namespacestencil_1_1cpu.html
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::cpu Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-class Grid
- A grid class for the CPU backend. More...
-
-class StencilUpdate
- A grid updater that applies an iterative stencil code to a grid. More...
-
-
-
-
-
-
-
diff --git a/namespacestencil_1_1monotile.html b/namespacestencil_1_1monotile.html
deleted file mode 100644
index 2d40f81..0000000
--- a/namespacestencil_1_1monotile.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::monotile Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/namespacestencil_1_1tdv.html b/namespacestencil_1_1tdv.html
deleted file mode 100644
index 956c79c..0000000
--- a/namespacestencil_1_1tdv.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-namespace single_pass
- Implementations of the TDV system for single-pass backends.
-
-
-
-
-
-
-
diff --git a/namespacestencil_1_1tdv_1_1single__pass.html b/namespacestencil_1_1tdv_1_1single__pass.html
deleted file mode 100644
index 02bde5c..0000000
--- a/namespacestencil_1_1tdv_1_1single__pass.html
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
Implementations of the TDV system for single-pass backends.
-More...
-
-
-concept LocalState
- The requirements for a pass-local TDV system state.
-
-concept KernelArgument
- The requirements for a TDV kernel argument.
-
-concept GlobalState
- The requirements for a TDV system's global state.
-
-concept Strategy
- Requirements for a TDV implementation strategy.
-
-
-
-
Implementations of the TDV system for single-pass backends.
-
These include the tiling and monotile FPGA backends as well as the CPU backend.
-
-
-
-
-
diff --git a/namespacestencil_1_1tiling.html b/namespacestencil_1_1tiling.html
deleted file mode 100644
index 0b73112..0000000
--- a/namespacestencil_1_1tiling.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tiling Namespace Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/nav_f.png b/nav_f.png
deleted file mode 100644
index 72a58a5..0000000
Binary files a/nav_f.png and /dev/null differ
diff --git a/nav_fd.png b/nav_fd.png
deleted file mode 100644
index 032fbdd..0000000
Binary files a/nav_fd.png and /dev/null differ
diff --git a/nav_g.png b/nav_g.png
deleted file mode 100644
index 2093a23..0000000
Binary files a/nav_g.png and /dev/null differ
diff --git a/nav_h.png b/nav_h.png
deleted file mode 100644
index 33389b1..0000000
Binary files a/nav_h.png and /dev/null differ
diff --git a/nav_hd.png b/nav_hd.png
deleted file mode 100644
index de80f18..0000000
Binary files a/nav_hd.png and /dev/null differ
diff --git a/open.png b/open.png
deleted file mode 100644
index 30f75c7..0000000
Binary files a/open.png and /dev/null differ
diff --git a/plus.svg b/plus.svg
deleted file mode 100644
index 0752016..0000000
--- a/plus.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/plusd.svg b/plusd.svg
deleted file mode 100644
index 0c65bfe..0000000
--- a/plusd.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/search/all_0.js b/search/all_0.js
deleted file mode 100644
index ea4f340..0000000
--- a/search/all_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['_5f_5fattribute_5f_5f_0',['__attribute__',['../namespacestencil.html#adcfd9218c3f16d2a33a864335579513c',1,'stencil']]]
-];
diff --git a/search/all_1.js b/search/all_1.js
deleted file mode 100644
index 9e3c823..0000000
--- a/search/all_1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
- ['accessorsubscript_0',['accessorsubscript',['../classstencil_1_1AccessorSubscript.html',1,'stencil::AccessorSubscript< Cell, Accessor, access_mode, current_subdim >'],['../classstencil_1_1AccessorSubscript.html#a435bf8b5c0cd4800dfd5c104e547e880',1,'stencil::AccessorSubscript::AccessorSubscript(Accessor &ac, uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a64e37ae29e1dd16d257dc25a4d239457',1,'stencil::AccessorSubscript::AccessorSubscript(Accessor &ac, sycl::id< dimensions > id_prefix, uindex_t i)']]],
- ['accessorsubscript_2ehpp_1',['AccessorSubscript.hpp',['../AccessorSubscript_8hpp.html',1,'']]]
-];
diff --git a/search/all_10.js b/search/all_10.js
deleted file mode 100644
index cf92ff8..0000000
--- a/search/all_10.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
- ['r_0',['r',['../classstencil_1_1GenericID.html#aec43f7ef1ae03330b4cd5c6d09138e60',1,'stencil::GenericID']]],
- ['readme_2emd_1',['README.md',['../README_8md.html',1,'']]]
-];
diff --git a/search/all_11.js b/search/all_11.js
deleted file mode 100644
index c033ec9..0000000
--- a/search/all_11.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var searchData=
-[
- ['s_20game_20of_20life_0',['Conway's Game of Life',['../index.html#autotoc_md2',1,'']]],
- ['singlepassstrategies_2ehpp_1',['SinglePassStrategies.hpp',['../SinglePassStrategies_8hpp.html',1,'']]],
- ['stencil_2',['stencil',['../classstencil_1_1Stencil.html',1,'stencil::Stencil< Cell, stencil_radius, TimeDependentValue >'],['../classstencil_1_1Stencil.html#a2d5a7c6324ee87fccbc3bd44b6124d5b',1,'stencil::Stencil::Stencil(ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv, Cell raw[diameter][diameter])'],['../classstencil_1_1Stencil.html#aaa6a789a8e49ad82a7c276bb41203820',1,'stencil::Stencil::Stencil(ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv)'],['../namespacestencil.html',1,'stencil']]],
- ['stencil_2ehpp_3',['Stencil.hpp',['../Stencil_8hpp.html',1,'']]],
- ['stencil_3a_3aconcepts_4',['concepts',['../namespacestencil_1_1concepts.html',1,'stencil']]],
- ['stencil_3a_3aconcepts_3a_3agrid_5',['Grid',['../conceptstencil_1_1concepts_1_1Grid.html',1,'stencil::concepts']]],
- ['stencil_3a_3aconcepts_3a_3agridaccessor_6',['GridAccessor',['../conceptstencil_1_1concepts_1_1GridAccessor.html',1,'stencil::concepts']]],
- ['stencil_3a_3aconcepts_3a_3astencilupdate_7',['StencilUpdate',['../conceptstencil_1_1concepts_1_1StencilUpdate.html',1,'stencil::concepts']]],
- ['stencil_3a_3aconcepts_3a_3atransitionfunction_8',['TransitionFunction',['../conceptstencil_1_1concepts_1_1TransitionFunction.html',1,'stencil::concepts']]],
- ['stencil_3a_3acpu_9',['cpu',['../namespacestencil_1_1cpu.html',1,'stencil']]],
- ['stencil_3a_3amonotile_10',['monotile',['../namespacestencil_1_1monotile.html',1,'stencil']]],
- ['stencil_3a_3atdv_11',['tdv',['../namespacestencil_1_1tdv.html',1,'stencil']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_12',['single_pass',['../namespacestencil_1_1tdv_1_1single__pass.html',1,'stencil::tdv']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3aglobalstate_13',['GlobalState',['../conceptstencil_1_1tdv_1_1single__pass_1_1GlobalState.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3akernelargument_14',['KernelArgument',['../conceptstencil_1_1tdv_1_1single__pass_1_1KernelArgument.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3alocalstate_15',['LocalState',['../conceptstencil_1_1tdv_1_1single__pass_1_1LocalState.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3astrategy_16',['Strategy',['../conceptstencil_1_1tdv_1_1single__pass_1_1Strategy.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atiling_17',['tiling',['../namespacestencil_1_1tiling.html',1,'stencil']]],
- ['stencil_5findex_5fwidth_18',['STENCIL_INDEX_WIDTH',['../Index_8hpp.html#a906d430e27ba11fb6fb4d3fd162b798d',1,'Index.hpp']]],
- ['stencil_5fradius_19',['stencil_radius',['../classstencil_1_1BaseTransitionFunction.html#a15adf6fd45a98c7aa4e65ac8f7a7c7c7',1,'stencil::BaseTransitionFunction']]],
- ['stencilid_20',['StencilID',['../classstencil_1_1Stencil.html#a2e433eac6aa0408350f47c6a0f495072',1,'stencil::Stencil']]],
- ['stencilstream_21',['StencilStream',['../index.html',1,'']]],
- ['stenciluid_22',['StencilUID',['../classstencil_1_1Stencil.html#aa028532c869d258061354206bb627d7d',1,'stencil::Stencil']]],
- ['stencilupdate_23',['stencilupdate',['../classstencil_1_1monotile_1_1StencilUpdate.html#a7f50b050eb2122cd7e6ad65f670f49ad',1,'stencil::monotile::StencilUpdate::StencilUpdate()'],['../classstencil_1_1cpu_1_1StencilUpdate.html#a06ca27f7a1bd0292234b8ccad2d17991',1,'stencil::cpu::StencilUpdate::StencilUpdate()'],['../classstencil_1_1cpu_1_1StencilUpdate.html',1,'stencil::cpu::StencilUpdate< F >'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a2bf7e62377b5ae4efecc705fbc619b60',1,'stencil::tiling::StencilUpdate::StencilUpdate()'],['../classstencil_1_1tiling_1_1StencilUpdate.html',1,'stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >'],['../classstencil_1_1monotile_1_1StencilUpdate.html',1,'stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >']]],
- ['stencilupdate_2ehpp_24',['stencilupdate.hpp',['../tiling_2StencilUpdate_8hpp.html',1,'(Global Namespace)'],['../monotile_2StencilUpdate_8hpp.html',1,'(Global Namespace)'],['../cpu_2StencilUpdate_8hpp.html',1,'(Global Namespace)']]],
- ['stencilupdatekernel_25',['stencilupdatekernel',['../classstencil_1_1tiling_1_1StencilUpdateKernel.html',1,'stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >'],['../classstencil_1_1monotile_1_1StencilUpdateKernel.html#ad221da1d7d69a2c711d4fe8905f9526e',1,'stencil::monotile::StencilUpdateKernel::StencilUpdateKernel()'],['../classstencil_1_1tiling_1_1StencilUpdateKernel.html#a8a362a720545d40a61cfaf6ec7ef3fe5',1,'stencil::tiling::StencilUpdateKernel::StencilUpdateKernel()'],['../classstencil_1_1monotile_1_1StencilUpdateKernel.html',1,'stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe >']]],
- ['subiteration_26',['subiteration',['../classstencil_1_1Stencil.html#ab05d805879209d78be6dae83041ee9f4',1,'stencil::Stencil']]],
- ['submit_5fread_27',['submit_read',['../classstencil_1_1monotile_1_1Grid.html#a0dcd2ef236147b4155b9f1d6eefe7602',1,'stencil::monotile::Grid::submit_read()'],['../classstencil_1_1tiling_1_1Grid.html#a935d95d8285b1cc954b01c981e520c50',1,'stencil::tiling::Grid::submit_read()']]],
- ['submit_5fwrite_28',['submit_write',['../classstencil_1_1monotile_1_1Grid.html#abe22ee3313629651586cb16ea166a0c5',1,'stencil::monotile::Grid::submit_write()'],['../classstencil_1_1tiling_1_1Grid.html#a899f2d09450542d998695c873775ee55',1,'stencil::tiling::Grid::submit_write()']]]
-];
diff --git a/search/all_12.js b/search/all_12.js
deleted file mode 100644
index 60000bd..0000000
--- a/search/all_12.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
- ['tdv_0',['tdv',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html#a22b6f2da6c2fe76786c49dc34a6bbc89',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::TDV'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html#aad843a8a2808898ced35d11b86bf0455',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::TDV'],['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html#abd6424c017b5b39287c4f21006b64fdf',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::TDV']]],
- ['time_5fdependent_5fvalue_1',['time_dependent_value',['../classstencil_1_1Stencil.html#acffd264870f0737c7572e72c9b840cdf',1,'stencil::Stencil']]],
- ['timedependentvalue_2',['TimeDependentValue',['../classstencil_1_1BaseTransitionFunction.html#a60c142abdbb606f20bdfac10dc886ddc',1,'stencil::BaseTransitionFunction']]],
- ['transition_5ffunction_3',['transition_function',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html#af0068f29a608198fa8e9a0f9ee26bfd8',1,'stencil::cpu::StencilUpdate::Params::transition_function'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#acf20c3043c816e0500169f197e3f4af7',1,'stencil::monotile::StencilUpdate::Params::transition_function'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#a8f470dccab062b17d4dadfc3b1248ff0',1,'stencil::tiling::StencilUpdate::Params::transition_function']]]
-];
diff --git a/search/all_13.js b/search/all_13.js
deleted file mode 100644
index ae261ee..0000000
--- a/search/all_13.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
- ['uid_0',['UID',['../namespacestencil.html#a005093806d49ce9a41d20a4983c9e1de',1,'stencil']]],
- ['uindex_5fstencil_5ft_1',['uindex_stencil_t',['../classstencil_1_1Stencil.html#a5b63db7501b0c9fd97ebebe8a2fa8f29',1,'stencil::Stencil']]],
- ['uindex_5ft_2',['uindex_t',['../namespacestencil.html#a35bed77d09460d392f62991a2f0ccb3d',1,'stencil']]],
- ['usage_3',['Performance & Hardware Usage',['../index.html#autotoc_md6',1,'']]]
-];
diff --git a/search/all_14.js b/search/all_14.js
deleted file mode 100644
index 0458b00..0000000
--- a/search/all_14.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['value_0',['value',['../structstencil_1_1Padded.html#a3071ffa5069ea57e96129721a7a8f54c',1,'stencil::Padded::value'],['../Helpers_8hpp.html#a4fc7f59e3113e19697159919a5aad095',1,'value: Helpers.hpp']]]
-];
diff --git a/search/all_2.js b/search/all_2.js
deleted file mode 100644
index 799a664..0000000
--- a/search/all_2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
- ['basesubscript_0',['basesubscript',['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#afa208bc822fecc8161d3d1b0b309ac48',1,'stencil::monotile::Grid::GridAccessor::BaseSubscript'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#aac5c5865903a9248aca45418d523c1ea',1,'stencil::tiling::Grid::GridAccessor::BaseSubscript']]],
- ['basetransitionfunction_1',['BaseTransitionFunction',['../classstencil_1_1BaseTransitionFunction.html',1,'stencil']]],
- ['basetransitionfunction_2ehpp_2',['BaseTransitionFunction.hpp',['../BaseTransitionFunction_8hpp.html',1,'']]],
- ['bits_5fstencil_3',['bits_stencil',['../classstencil_1_1Stencil.html#ac6f7bd8e71f02bf45bf0cf184323d6f5',1,'stencil::Stencil']]],
- ['blocking_4',['blocking',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html#a94cd094f6f6da58a2cf1e7355aa7f77d',1,'stencil::cpu::StencilUpdate::Params::blocking'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#aa91a3638a9e692d96676c1eaf4690df4',1,'stencil::monotile::StencilUpdate::Params::blocking'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#a14eb85ada46533ac48157dc870c2ff32',1,'stencil::tiling::StencilUpdate::Params::blocking']]]
-];
diff --git a/search/all_3.js b/search/all_3.js
deleted file mode 100644
index 6394e2f..0000000
--- a/search/all_3.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var searchData=
-[
- ['c_0',['c',['../classstencil_1_1GenericID.html#a3bfb826d3051950dac5ae91e9871b0d2',1,'stencil::GenericID']]],
- ['citing_1',['Licensing & Citing',['../index.html#autotoc_md7',1,'']]],
- ['concepts_2ehpp_2',['Concepts.hpp',['../Concepts_8hpp.html',1,'']]],
- ['convection_3',['Convection',['../index.html#autotoc_md5',1,'']]],
- ['conway_20s_20game_20of_20life_4',['Conway's Game of Life',['../index.html#autotoc_md2',1,'']]],
- ['copy_5ffrom_5fbuffer_5',['copy_from_buffer',['../classstencil_1_1cpu_1_1Grid.html#a723ec2251b11b22c82f73259da918538',1,'stencil::cpu::Grid::copy_from_buffer()'],['../classstencil_1_1monotile_1_1Grid.html#a365e18ee4962f67420ac41e11906fa35',1,'stencil::monotile::Grid::copy_from_buffer()'],['../classstencil_1_1tiling_1_1Grid.html#a6d490c7694c5942606004f4c448a3d01',1,'stencil::tiling::Grid::copy_from_buffer()']]],
- ['copy_5fto_5fbuffer_6',['copy_to_buffer',['../classstencil_1_1cpu_1_1Grid.html#a3d34cc95e40423ad26b396337cfc1577',1,'stencil::cpu::Grid::copy_to_buffer()'],['../classstencil_1_1monotile_1_1Grid.html#a9d2909c1c76a6e8916502d0084e3dcc6',1,'stencil::monotile::Grid::copy_to_buffer()'],['../classstencil_1_1tiling_1_1Grid.html#a01f05e2c1478cfb915ab774f88e59af8',1,'stencil::tiling::Grid::copy_to_buffer()']]]
-];
diff --git a/search/all_4.js b/search/all_4.js
deleted file mode 100644
index 9be3a80..0000000
--- a/search/all_4.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
- ['design_20goals_0',['Design Goals',['../index.html#autotoc_md0',1,'']]],
- ['device_1',['device',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html#acc444e49b93f51d6dfd3d8d99a7e5286',1,'stencil::cpu::StencilUpdate::Params::device'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#a8c9d76deea44512abd4437a10dbdc568',1,'stencil::monotile::StencilUpdate::Params::device'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#af7b4d6ed81b0a8d5bd40ebb344e2337f',1,'stencil::tiling::StencilUpdate::Params::device']]],
- ['diameter_2',['diameter',['../classstencil_1_1Stencil.html#aab6159ffdf319a04a2c8c5602dcf93d9',1,'stencil::Stencil']]],
- ['dimensions_3',['dimensions',['../classstencil_1_1AccessorSubscript.html#a8846aebd91bc669a72470b4bc610efe4',1,'stencil::AccessorSubscript::dimensions'],['../classstencil_1_1cpu_1_1Grid.html#ad98fb54cdb652bc0da7ddbd31052c08c',1,'stencil::cpu::Grid::dimensions'],['../classstencil_1_1monotile_1_1Grid.html#a27ccb4d4a11043087ebbf22448a03651',1,'stencil::monotile::Grid::dimensions'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#aa6d18c348ac17b52b3d04c67f5650797',1,'stencil::monotile::Grid::GridAccessor::dimensions'],['../classstencil_1_1tiling_1_1Grid.html#a11cfc8d7b7039fa5df7e6134346a7ecb',1,'stencil::tiling::Grid::dimensions'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#ab42e41193eb39c25825a690a861b7d39',1,'stencil::tiling::Grid::GridAccessor::dimensions']]]
-];
diff --git a/search/all_5.js b/search/all_5.js
deleted file mode 100644
index 635d749..0000000
--- a/search/all_5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['examples_0',['Examples',['../index.html#autotoc_md1',1,'']]]
-];
diff --git a/search/all_6.js b/search/all_6.js
deleted file mode 100644
index 4d972d0..0000000
--- a/search/all_6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['fdtd_0',['FDTD',['../index.html#autotoc_md4',1,'']]]
-];
diff --git a/search/all_7.js b/search/all_7.js
deleted file mode 100644
index b2c715c..0000000
--- a/search/all_7.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var searchData=
-[
- ['game_20of_20life_0',['Conway's Game of Life',['../index.html#autotoc_md2',1,'']]],
- ['genericid_1',['genericid',['../classstencil_1_1GenericID.html',1,'stencil::GenericID< T >'],['../classstencil_1_1GenericID.html#a3ffc396e4c50229a9cfeb1f5f4970dda',1,'stencil::GenericID::GenericID(sycl::range< 2 > sycl_range)'],['../classstencil_1_1GenericID.html#a3e3c6ae7b47ec8782f64dc75f7b132ab',1,'stencil::GenericID::GenericID(sycl::id< 2 > sycl_id)'],['../classstencil_1_1GenericID.html#a4fd0af5f4c28c820de4b165395e9abbe',1,'stencil::GenericID::GenericID(T column, T row)'],['../classstencil_1_1GenericID.html#a0ffbe515d7927ba1f9c64a96921fa4a8',1,'stencil::GenericID::GenericID()']]],
- ['genericid_2ehpp_2',['GenericID.hpp',['../GenericID_8hpp.html',1,'']]],
- ['get_5fbuffer_3',['get_buffer',['../classstencil_1_1cpu_1_1Grid.html#a8150179644eb6c008e4d5946490dae29',1,'stencil::cpu::Grid']]],
- ['get_5fgrid_5fheight_4',['get_grid_height',['../classstencil_1_1tiling_1_1Grid.html#ac149251c540131b3f0cbcd7232d6e7d6',1,'stencil::tiling::Grid::get_grid_height()'],['../classstencil_1_1monotile_1_1Grid.html#a8b88e794b8e90f5d1ff39a3262c6f137',1,'stencil::monotile::Grid::get_grid_height()'],['../classstencil_1_1cpu_1_1Grid.html#a8e89809b848ebed2828cd4cb867cc0db',1,'stencil::cpu::Grid::get_grid_height() const']]],
- ['get_5fgrid_5fwidth_5',['get_grid_width',['../classstencil_1_1cpu_1_1Grid.html#ad899c4acd6457c7a7d1dc386ee8aad72',1,'stencil::cpu::Grid::get_grid_width()'],['../classstencil_1_1monotile_1_1Grid.html#a54f85a0f21da7e7764ab2d2c7a0996c2',1,'stencil::monotile::Grid::get_grid_width()'],['../classstencil_1_1tiling_1_1Grid.html#a4c7d5fa977b98d847e8435e1be89863c',1,'stencil::tiling::Grid::get_grid_width()']]],
- ['get_5fkernel_5fruntime_6',['get_kernel_runtime',['../classstencil_1_1monotile_1_1StencilUpdate.html#a1c61fda77df3acfa5a99fa2046239443',1,'stencil::monotile::StencilUpdate::get_kernel_runtime()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#aa894bca73378fcd199b3969877dd6ef5',1,'stencil::tiling::StencilUpdate::get_kernel_runtime()']]],
- ['get_5fn_5fprocessed_5fcells_7',['get_n_processed_cells',['../classstencil_1_1cpu_1_1StencilUpdate.html#a53c77f49cff205a4275f39ca3aac7094',1,'stencil::cpu::StencilUpdate::get_n_processed_cells()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a988c1427adcd11ec13bde75a2af45dc0',1,'stencil::monotile::StencilUpdate::get_n_processed_cells()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a60e77268e2e41e988e4e339397127674',1,'stencil::tiling::StencilUpdate::get_n_processed_cells()']]],
- ['get_5fparams_8',['get_params',['../classstencil_1_1cpu_1_1StencilUpdate.html#abb3ee2bd9c598f5e03785146e4cbc9a8',1,'stencil::cpu::StencilUpdate::get_params()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a4605aec7e9f717c91ef3eabe650b7920',1,'stencil::monotile::StencilUpdate::get_params()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a86721c1eea231862cc21904d67bb7c9b',1,'stencil::tiling::StencilUpdate::get_params()']]],
- ['get_5ftile_5frange_9',['get_tile_range',['../classstencil_1_1tiling_1_1Grid.html#a77e1023b2187fb64456a9cd8d72234bd',1,'stencil::tiling::Grid']]],
- ['get_5ftime_5fdependent_5fvalue_10',['get_time_dependent_value',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#ab95f1caaa6e9d08ab7c0b0ef5cfddbbd',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::KernelArgument::LocalState::get_time_dependent_value()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#ad7c0c36f765373cf499a9d9d46e7be96',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::KernelArgument::LocalState::get_time_dependent_value()'],['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html#a8f2a0cc513739c74ea5a0014af1a0ec3',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::KernelArgument::get_time_dependent_value()'],['../classstencil_1_1BaseTransitionFunction.html#af2e9722c5ea473890f90d03c1fc809a7',1,'stencil::BaseTransitionFunction::get_time_dependent_value()']]],
- ['get_5fwalltime_11',['get_walltime',['../classstencil_1_1tiling_1_1StencilUpdate.html#a288cbbe96655fc95ac4c3cb0c58068e3',1,'stencil::tiling::StencilUpdate::get_walltime()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a2bb50f6e658302f4500c2c4eb6f2368c',1,'stencil::monotile::StencilUpdate::get_walltime()'],['../classstencil_1_1cpu_1_1StencilUpdate.html#ae231c2dfc27b000087896b38178f95f2',1,'stencil::cpu::StencilUpdate::get_walltime()']]],
- ['globalstate_12',['globalstate',['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html#afcf7f11ba612141a6b9bbf7207e29fd8',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::GlobalState()'],['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >'],['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html#aa038a1be0acd11f726334ac24c22ae73',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::GlobalState()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html#a33bbce8aac215044fee6170ca44feb57',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::GlobalState()'],['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html#aaae9a08cd07f537555b9a5a7e37e7918',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::GlobalState()'],['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >']]],
- ['goals_13',['Design Goals',['../index.html#autotoc_md0',1,'']]],
- ['grid_14',['grid',['../classstencil_1_1monotile_1_1Grid.html#a29a98dc36d8c6b424e18ddd17b37e4a2',1,'stencil::monotile::Grid::Grid()'],['../classstencil_1_1tiling_1_1Grid.html#add1cf7427f54a121274cd27194178a5c',1,'stencil::tiling::Grid::Grid(Grid const &other_grid)'],['../classstencil_1_1tiling_1_1Grid.html#ab8a7eab2f33ad73c4c39c916e718d143',1,'stencil::tiling::Grid::Grid(sycl::buffer< Cell, 2 > input_buffer)'],['../classstencil_1_1tiling_1_1Grid.html#afe4a9b25af729051cb38e3e4632603fc',1,'stencil::tiling::Grid::Grid(sycl::range< 2 > range)'],['../classstencil_1_1tiling_1_1Grid.html#abbf5789242083e1c22d3ef823af3f9fa',1,'stencil::tiling::Grid::Grid(uindex_t grid_width, uindex_t grid_height)'],['../classstencil_1_1monotile_1_1Grid.html#aaa4a35ecd0a4a6d81141db11d2e49285',1,'stencil::monotile::Grid::Grid(Grid const &other_grid)'],['../classstencil_1_1monotile_1_1Grid.html#a4cda06f39520c35a163035943b29a907',1,'stencil::monotile::Grid::Grid(sycl::buffer< Cell, 2 > buffer)'],['../classstencil_1_1monotile_1_1Grid.html#a806aa4c920eb2796c702670cb87ff001',1,'stencil::monotile::Grid::Grid(uindex_t grid_width, uindex_t grid_height)'],['../classstencil_1_1cpu_1_1Grid.html#a74c431318f49344be87c717e08b7d623',1,'stencil::cpu::Grid::Grid(Grid const &other_grid)'],['../classstencil_1_1cpu_1_1Grid.html#a56ede0cbd0cc3b0546f6b7939c0ca93a',1,'stencil::cpu::Grid::Grid(sycl::range< 2 > range)'],['../classstencil_1_1cpu_1_1Grid.html',1,'stencil::cpu::Grid< Cell >'],['../classstencil_1_1monotile_1_1Grid.html',1,'stencil::monotile::Grid< Cell, word_size >'],['../classstencil_1_1tiling_1_1Grid.html',1,'stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >'],['../classstencil_1_1cpu_1_1Grid.html#a07cc2e2e9eb03e733699bb801b79b224',1,'stencil::cpu::Grid::Grid(uindex_t c, uindex_t r)'],['../classstencil_1_1cpu_1_1Grid.html#ae55a40831bcb53f682f13e24542c0a4e',1,'stencil::cpu::Grid::Grid(sycl::buffer< Cell, 2 > other_buffer)']]],
- ['grid_2ehpp_15',['grid.hpp',['../cpu_2Grid_8hpp.html',1,'(Global Namespace)'],['../tiling_2Grid_8hpp.html',1,'(Global Namespace)'],['../monotile_2Grid_8hpp.html',1,'(Global Namespace)']]],
- ['grid_5frange_16',['grid_range',['../classstencil_1_1Stencil.html#a264f8fd654985d5306b0a52de4e60940',1,'stencil::Stencil']]],
- ['gridaccessor_17',['gridaccessor',['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html',1,'stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html',1,'stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode >'],['../classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html',1,'stencil::cpu::Grid< Cell >::GridAccessor< access_mode >'],['../classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html#a3c554a151275d268af60b6227affee7a',1,'stencil::cpu::Grid::GridAccessor::GridAccessor()'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#a6533850fee0f2b9f49a15f5a94e2ae6f',1,'stencil::monotile::Grid::GridAccessor::GridAccessor()'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#ac6e6ce5f911c89542795bbadf4435073',1,'stencil::tiling::Grid::GridAccessor::GridAccessor()']]],
- ['gridimpl_18',['gridimpl',['../classstencil_1_1cpu_1_1StencilUpdate.html#a5651355c974d6e719b24483b1e3f1738',1,'stencil::cpu::StencilUpdate::GridImpl'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a82fd1ad97d323a6328816c4914c0c9dc',1,'stencil::monotile::StencilUpdate::GridImpl'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a050761fd3400ac0d84c290d3ed7d3c64',1,'stencil::tiling::StencilUpdate::GridImpl']]]
-];
diff --git a/search/all_8.js b/search/all_8.js
deleted file mode 100644
index 6ab6812..0000000
--- a/search/all_8.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
- ['halo_5fradius_0',['halo_radius',['../classstencil_1_1tiling_1_1StencilUpdate.html#a79b7bd2afeb6d57252a273d87cf33c70',1,'stencil::tiling::StencilUpdate']]],
- ['halo_5fvalue_1',['halo_value',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html#a520efa0ad6cba99120c347eef5090349',1,'stencil::cpu::StencilUpdate::Params::halo_value'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#aa4ec0f872d89186440975ff2b2059e4c',1,'stencil::monotile::StencilUpdate::Params::halo_value'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#a7a2dfb7037d8bb7a7e4ded0bc24f2daf',1,'stencil::tiling::StencilUpdate::Params::halo_value']]],
- ['hardware_20usage_2',['Performance & Hardware Usage',['../index.html#autotoc_md6',1,'']]],
- ['helpers_2ehpp_3',['Helpers.hpp',['../Helpers_8hpp.html',1,'']]],
- ['hotspot_4',['HotSpot',['../index.html#autotoc_md3',1,'']]]
-];
diff --git a/search/all_9.js b/search/all_9.js
deleted file mode 100644
index c94a594..0000000
--- a/search/all_9.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var searchData=
-[
- ['id_0',['id',['../classstencil_1_1Stencil.html#a6d4fec2d3646ddfb216cea75c75c18a6',1,'stencil::Stencil::id'],['../namespacestencil.html#a785fb1b1eb6ae33c0be9fa0e39fecab1',1,'stencil::ID']]],
- ['index_2ehpp_1',['Index.hpp',['../Index_8hpp.html',1,'']]],
- ['index_5fstencil_5ft_2',['index_stencil_t',['../classstencil_1_1Stencil.html#a9e514001b1ed5dd41fc74b270c855fb0',1,'stencil::Stencil']]],
- ['index_5ft_3',['index_t',['../namespacestencil.html#add6c8bd56e028e46d55b40623d1f9e8f',1,'stencil']]],
- ['inlinestrategy_4',['InlineStrategy',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy.html',1,'stencil::tdv::single_pass']]],
- ['iteration_5',['iteration',['../classstencil_1_1Stencil.html#a9ef96b8cbc11f7e8b98667455bce5b19',1,'stencil::Stencil']]],
- ['iteration_5foffset_6',['iteration_offset',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html#a3d649a1a7e0c473ef842706f0bcaae80',1,'stencil::cpu::StencilUpdate::Params::iteration_offset'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#a401f2e17a239db86931a1b6df2ddfae0',1,'stencil::monotile::StencilUpdate::Params::iteration_offset'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#a1aa849ebca98e6c676557fbcac929783',1,'stencil::tiling::StencilUpdate::Params::iteration_offset']]]
-];
diff --git a/search/all_a.js b/search/all_a.js
deleted file mode 100644
index a0b9086..0000000
--- a/search/all_a.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['kernelargument_0',['kernelargument',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument'],['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html#a7fc2237ac97279b2386dbe2438579ce0',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::KernelArgument::KernelArgument()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html#a21260e0638acea1b0a9838ad1a358fac',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::KernelArgument::KernelArgument()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html#ab412eaa8712251eb4c75b73b0f10ab03',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::KernelArgument::KernelArgument()']]]
-];
diff --git a/search/all_b.js b/search/all_b.js
deleted file mode 100644
index c651dbf..0000000
--- a/search/all_b.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
- ['licensing_20citing_0',['Licensing & Citing',['../index.html#autotoc_md7',1,'']]],
- ['life_1',['Conway's Game of Life',['../index.html#autotoc_md2',1,'']]],
- ['localstate_2',['localstate',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState'],['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html#a185e329ee33f3a58f7590473503b36ce',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::KernelArgument::LocalState'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#a3e7a86e0cd3f2e16dd03507ed71936f5',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::KernelArgument::LocalState::LocalState()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#aa06633342ca6896e098b01093b5802a3',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::KernelArgument::LocalState::LocalState()']]]
-];
diff --git a/search/all_c.js b/search/all_c.js
deleted file mode 100644
index d3908a4..0000000
--- a/search/all_c.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['make_5fsimilar_0',['make_similar',['../classstencil_1_1cpu_1_1Grid.html#a7d02f8ec80f24d38294551ce1f5d170d',1,'stencil::cpu::Grid::make_similar()'],['../classstencil_1_1monotile_1_1Grid.html#a48ebf5dd14d3db44baf1c295926d1ff1',1,'stencil::monotile::Grid::make_similar()'],['../classstencil_1_1tiling_1_1Grid.html#aaf24b2e7e2f8f7b32e13e63447010844',1,'stencil::tiling::Grid::make_similar()']]]
-];
diff --git a/search/all_d.js b/search/all_d.js
deleted file mode 100644
index a2fb0fe..0000000
--- a/search/all_d.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
- ['n_5fcells_5fto_5fn_5fwords_0',['n_cells_to_n_words',['../namespacestencil.html#ad756f3810856bc3f9d459885d77c382a',1,'stencil']]],
- ['n_5fiterations_1',['n_iterations',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html#a99abefe308e73a323e7b2342996a1a2f',1,'stencil::cpu::StencilUpdate::Params::n_iterations'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#a1b5e2644e93eeaa9cc5a72aff44df3e0',1,'stencil::monotile::StencilUpdate::Params::n_iterations'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#a4a759d54f50e8cbc956e9817ae2ba0e2',1,'stencil::tiling::StencilUpdate::Params::n_iterations']]],
- ['n_5fsubiterations_2',['n_subiterations',['../classstencil_1_1BaseTransitionFunction.html#a19c3ca98162691fcb350aed9a353b9f7',1,'stencil::BaseTransitionFunction']]]
-];
diff --git a/search/all_e.js b/search/all_e.js
deleted file mode 100644
index ca23e65..0000000
--- a/search/all_e.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
- ['of_20life_0',['Conway's Game of Life',['../index.html#autotoc_md2',1,'']]],
- ['operator_28_29_1',['operator()',['../classstencil_1_1monotile_1_1StencilUpdateKernel.html#aba71144f53197120eb6b93831ba4256b',1,'stencil::monotile::StencilUpdateKernel::operator()()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a9fa10fb8aad1236c220fcd3ab046fce4',1,'stencil::tiling::StencilUpdate::operator()()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a81f33e224480497d729b33ae958b953d',1,'stencil::monotile::StencilUpdate::operator()()'],['../classstencil_1_1cpu_1_1StencilUpdate.html#afd74e6ab64304f7d47bdcc04cc9f6032',1,'stencil::cpu::StencilUpdate::operator()()'],['../classstencil_1_1tiling_1_1StencilUpdateKernel.html#a2c5a8a4297f5fe946d8e4f6bc8f7d670',1,'stencil::tiling::StencilUpdateKernel::operator()()']]],
- ['operator_3d_3d_2',['operator==',['../classstencil_1_1GenericID.html#a56f29c35be0f87a5eb18cd55d4d35873',1,'stencil::GenericID']]],
- ['operator_5b_5d_3',['operator[]',['../classstencil_1_1Stencil.html#aae31de9264aef3ef53370dc475d2da0e',1,'stencil::Stencil::operator[]()'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#a47401fbc3e1698de06a62503d2726ea2',1,'stencil::tiling::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#a93eaba6e95056bd1614cd2c8fdd4163f',1,'stencil::tiling::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#a1dce934f2f7aa732a79dc9f12693f210',1,'stencil::tiling::Grid::GridAccessor::operator[](uindex_t i)'],['../classstencil_1_1Stencil.html#a4182a31d26db8bcfb04e1116e8bfe617',1,'stencil::Stencil::operator[](StencilUID id)'],['../classstencil_1_1Stencil.html#ad6590fab4513e5c5345e7b13e345a517',1,'stencil::Stencil::operator[](StencilUID id) const'],['../classstencil_1_1Stencil.html#a877ee999c7f57afdbb495c96fd289380',1,'stencil::Stencil::operator[](UID id)'],['../classstencil_1_1Stencil.html#aaa156ac96b7a6f53e4b9c733f397fb53',1,'stencil::Stencil::operator[](UID id) const'],['../classstencil_1_1Stencil.html#adf1304b9cd46128f2a9f5072331f1252',1,'stencil::Stencil::operator[](StencilID id)'],['../classstencil_1_1Stencil.html#a32328cf289ee4fbb76e4ffbee8f9e330',1,'stencil::Stencil::operator[](ID id)'],['../classstencil_1_1Stencil.html#a26d07c9f9886e041d94f3168931b41e6',1,'stencil::Stencil::operator[](ID id) const'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#aad9224be4740450892e1089273bd171b',1,'stencil::monotile::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#a7cf0e69fab2890786d1d93b6304f3eee',1,'stencil::monotile::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#a9c7bba9d8799e492f12fb8aa0227ff24',1,'stencil::monotile::Grid::GridAccessor::operator[](uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a28c97b392888fb6dbfde109615ae3c12',1,'stencil::AccessorSubscript::operator[](uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a510de3048dda4f10cb4b16fd96677d89',1,'stencil::AccessorSubscript::operator[](uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a2a1bcd3fc05ffdbb407f2bd90899d255',1,'stencil::AccessorSubscript::operator[](uindex_t i)']]]
-];
diff --git a/search/all_f.js b/search/all_f.js
deleted file mode 100644
index da3c991..0000000
--- a/search/all_f.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var searchData=
-[
- ['padded_0',['Padded',['../structstencil_1_1Padded.html',1,'stencil']]],
- ['params_1',['params',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html',1,'stencil::cpu::StencilUpdate< F >::Params'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html',1,'stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html',1,'stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params']]],
- ['performance_20hardware_20usage_2',['Performance & Hardware Usage',['../index.html#autotoc_md6',1,'']]],
- ['precomputeondevicestrategy_3',['PrecomputeOnDeviceStrategy',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy.html',1,'stencil::tdv::single_pass']]],
- ['precomputeonhoststrategy_4',['PrecomputeOnHostStrategy',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy.html',1,'stencil::tdv::single_pass']]],
- ['profiling_5',['profiling',['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html#a7c1d8784bd4f2fea460bddc9a5e2c32d',1,'stencil::monotile::StencilUpdate::Params::profiling'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html#ae9c5507370fbfbda30c3c038df62fcdf',1,'stencil::tiling::StencilUpdate::Params::profiling']]]
-];
diff --git a/search/classes_0.js b/search/classes_0.js
deleted file mode 100644
index 1dcabc7..0000000
--- a/search/classes_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['accessorsubscript_0',['AccessorSubscript',['../classstencil_1_1AccessorSubscript.html',1,'stencil']]]
-];
diff --git a/search/classes_1.js b/search/classes_1.js
deleted file mode 100644
index 2cd48b8..0000000
--- a/search/classes_1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['basetransitionfunction_0',['BaseTransitionFunction',['../classstencil_1_1BaseTransitionFunction.html',1,'stencil']]]
-];
diff --git a/search/classes_2.js b/search/classes_2.js
deleted file mode 100644
index bf55cdb..0000000
--- a/search/classes_2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
- ['genericid_0',['GenericID',['../classstencil_1_1GenericID.html',1,'stencil']]],
- ['globalstate_1',['globalstate',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >'],['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >']]],
- ['grid_2',['grid',['../classstencil_1_1cpu_1_1Grid.html',1,'stencil::cpu::Grid< Cell >'],['../classstencil_1_1monotile_1_1Grid.html',1,'stencil::monotile::Grid< Cell, word_size >'],['../classstencil_1_1tiling_1_1Grid.html',1,'stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >']]],
- ['gridaccessor_3',['gridaccessor',['../classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html',1,'stencil::cpu::Grid< Cell >::GridAccessor< access_mode >'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html',1,'stencil::monotile::Grid< Cell, word_size >::GridAccessor< access_mode >'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html',1,'stencil::tiling::Grid< Cell, tile_width, tile_height, halo_radius >::GridAccessor< access_mode >']]]
-];
diff --git a/search/classes_3.js b/search/classes_3.js
deleted file mode 100644
index 87aeabd..0000000
--- a/search/classes_3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['inlinestrategy_0',['InlineStrategy',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy.html',1,'stencil::tdv::single_pass']]]
-];
diff --git a/search/classes_4.js b/search/classes_4.js
deleted file mode 100644
index 8f96d3c..0000000
--- a/search/classes_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['kernelargument_0',['kernelargument',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument']]]
-];
diff --git a/search/classes_5.js b/search/classes_5.js
deleted file mode 100644
index 3587287..0000000
--- a/search/classes_5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['localstate_0',['localstate',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState']]]
-];
diff --git a/search/classes_6.js b/search/classes_6.js
deleted file mode 100644
index d5e30b3..0000000
--- a/search/classes_6.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var searchData=
-[
- ['padded_0',['Padded',['../structstencil_1_1Padded.html',1,'stencil']]],
- ['params_1',['params',['../structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html',1,'stencil::cpu::StencilUpdate< F >::Params'],['../structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html',1,'stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params'],['../structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html',1,'stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params']]],
- ['precomputeondevicestrategy_2',['PrecomputeOnDeviceStrategy',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy.html',1,'stencil::tdv::single_pass']]],
- ['precomputeonhoststrategy_3',['PrecomputeOnHostStrategy',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy.html',1,'stencil::tdv::single_pass']]]
-];
diff --git a/search/classes_7.js b/search/classes_7.js
deleted file mode 100644
index 8a12160..0000000
--- a/search/classes_7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
- ['stencil_0',['Stencil',['../classstencil_1_1Stencil.html',1,'stencil']]],
- ['stencilupdate_1',['stencilupdate',['../classstencil_1_1cpu_1_1StencilUpdate.html',1,'stencil::cpu::StencilUpdate< F >'],['../classstencil_1_1monotile_1_1StencilUpdate.html',1,'stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >'],['../classstencil_1_1tiling_1_1StencilUpdate.html',1,'stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >']]],
- ['stencilupdatekernel_2',['stencilupdatekernel',['../classstencil_1_1monotile_1_1StencilUpdateKernel.html',1,'stencil::monotile::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, max_grid_width, max_grid_height, in_pipe, out_pipe >'],['../classstencil_1_1tiling_1_1StencilUpdateKernel.html',1,'stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >']]]
-];
diff --git a/search/close.svg b/search/close.svg
deleted file mode 100644
index 337d6cc..0000000
--- a/search/close.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
diff --git a/search/concepts_0.js b/search/concepts_0.js
deleted file mode 100644
index 5eec823..0000000
--- a/search/concepts_0.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var searchData=
-[
- ['stencil_3a_3aconcepts_3a_3agrid_0',['Grid',['../conceptstencil_1_1concepts_1_1Grid.html',1,'stencil::concepts']]],
- ['stencil_3a_3aconcepts_3a_3agridaccessor_1',['GridAccessor',['../conceptstencil_1_1concepts_1_1GridAccessor.html',1,'stencil::concepts']]],
- ['stencil_3a_3aconcepts_3a_3astencilupdate_2',['StencilUpdate',['../conceptstencil_1_1concepts_1_1StencilUpdate.html',1,'stencil::concepts']]],
- ['stencil_3a_3aconcepts_3a_3atransitionfunction_3',['TransitionFunction',['../conceptstencil_1_1concepts_1_1TransitionFunction.html',1,'stencil::concepts']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3aglobalstate_4',['GlobalState',['../conceptstencil_1_1tdv_1_1single__pass_1_1GlobalState.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3akernelargument_5',['KernelArgument',['../conceptstencil_1_1tdv_1_1single__pass_1_1KernelArgument.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3alocalstate_6',['LocalState',['../conceptstencil_1_1tdv_1_1single__pass_1_1LocalState.html',1,'stencil::tdv::single_pass']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_3a_3astrategy_7',['Strategy',['../conceptstencil_1_1tdv_1_1single__pass_1_1Strategy.html',1,'stencil::tdv::single_pass']]]
-];
diff --git a/search/defines_0.js b/search/defines_0.js
deleted file mode 100644
index 90c5a00..0000000
--- a/search/defines_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['stencil_5findex_5fwidth_0',['STENCIL_INDEX_WIDTH',['../Index_8hpp.html#a906d430e27ba11fb6fb4d3fd162b798d',1,'Index.hpp']]]
-];
diff --git a/search/files_0.js b/search/files_0.js
deleted file mode 100644
index ce09ddf..0000000
--- a/search/files_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['accessorsubscript_2ehpp_0',['AccessorSubscript.hpp',['../AccessorSubscript_8hpp.html',1,'']]]
-];
diff --git a/search/files_1.js b/search/files_1.js
deleted file mode 100644
index d08dcd1..0000000
--- a/search/files_1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['basetransitionfunction_2ehpp_0',['BaseTransitionFunction.hpp',['../BaseTransitionFunction_8hpp.html',1,'']]]
-];
diff --git a/search/files_2.js b/search/files_2.js
deleted file mode 100644
index 5a7b961..0000000
--- a/search/files_2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['concepts_2ehpp_0',['Concepts.hpp',['../Concepts_8hpp.html',1,'']]]
-];
diff --git a/search/files_3.js b/search/files_3.js
deleted file mode 100644
index 0c2f5ef..0000000
--- a/search/files_3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
- ['genericid_2ehpp_0',['GenericID.hpp',['../GenericID_8hpp.html',1,'']]],
- ['grid_2ehpp_1',['grid.hpp',['../cpu_2Grid_8hpp.html',1,'(Global Namespace)'],['../monotile_2Grid_8hpp.html',1,'(Global Namespace)'],['../tiling_2Grid_8hpp.html',1,'(Global Namespace)']]]
-];
diff --git a/search/files_4.js b/search/files_4.js
deleted file mode 100644
index c788d03..0000000
--- a/search/files_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['helpers_2ehpp_0',['Helpers.hpp',['../Helpers_8hpp.html',1,'']]]
-];
diff --git a/search/files_5.js b/search/files_5.js
deleted file mode 100644
index f17af7d..0000000
--- a/search/files_5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['index_2ehpp_0',['Index.hpp',['../Index_8hpp.html',1,'']]]
-];
diff --git a/search/files_6.js b/search/files_6.js
deleted file mode 100644
index 9847676..0000000
--- a/search/files_6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['readme_2emd_0',['README.md',['../README_8md.html',1,'']]]
-];
diff --git a/search/files_7.js b/search/files_7.js
deleted file mode 100644
index 119fd6b..0000000
--- a/search/files_7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
- ['singlepassstrategies_2ehpp_0',['SinglePassStrategies.hpp',['../SinglePassStrategies_8hpp.html',1,'']]],
- ['stencil_2ehpp_1',['Stencil.hpp',['../Stencil_8hpp.html',1,'']]],
- ['stencilupdate_2ehpp_2',['stencilupdate.hpp',['../cpu_2StencilUpdate_8hpp.html',1,'(Global Namespace)'],['../monotile_2StencilUpdate_8hpp.html',1,'(Global Namespace)'],['../tiling_2StencilUpdate_8hpp.html',1,'(Global Namespace)']]]
-];
diff --git a/search/functions_0.js b/search/functions_0.js
deleted file mode 100644
index ea4f340..0000000
--- a/search/functions_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['_5f_5fattribute_5f_5f_0',['__attribute__',['../namespacestencil.html#adcfd9218c3f16d2a33a864335579513c',1,'stencil']]]
-];
diff --git a/search/functions_1.js b/search/functions_1.js
deleted file mode 100644
index 7de97c2..0000000
--- a/search/functions_1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['accessorsubscript_0',['accessorsubscript',['../classstencil_1_1AccessorSubscript.html#a435bf8b5c0cd4800dfd5c104e547e880',1,'stencil::AccessorSubscript::AccessorSubscript(Accessor &ac, uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a64e37ae29e1dd16d257dc25a4d239457',1,'stencil::AccessorSubscript::AccessorSubscript(Accessor &ac, sycl::id< dimensions > id_prefix, uindex_t i)']]]
-];
diff --git a/search/functions_2.js b/search/functions_2.js
deleted file mode 100644
index 18f57fb..0000000
--- a/search/functions_2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var searchData=
-[
- ['copy_5ffrom_5fbuffer_0',['copy_from_buffer',['../classstencil_1_1cpu_1_1Grid.html#a723ec2251b11b22c82f73259da918538',1,'stencil::cpu::Grid::copy_from_buffer()'],['../classstencil_1_1monotile_1_1Grid.html#a365e18ee4962f67420ac41e11906fa35',1,'stencil::monotile::Grid::copy_from_buffer()'],['../classstencil_1_1tiling_1_1Grid.html#a6d490c7694c5942606004f4c448a3d01',1,'stencil::tiling::Grid::copy_from_buffer()']]],
- ['copy_5fto_5fbuffer_1',['copy_to_buffer',['../classstencil_1_1cpu_1_1Grid.html#a3d34cc95e40423ad26b396337cfc1577',1,'stencil::cpu::Grid::copy_to_buffer()'],['../classstencil_1_1monotile_1_1Grid.html#a9d2909c1c76a6e8916502d0084e3dcc6',1,'stencil::monotile::Grid::copy_to_buffer()'],['../classstencil_1_1tiling_1_1Grid.html#a01f05e2c1478cfb915ab774f88e59af8',1,'stencil::tiling::Grid::copy_to_buffer()']]]
-];
diff --git a/search/functions_3.js b/search/functions_3.js
deleted file mode 100644
index 5f2a70a..0000000
--- a/search/functions_3.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var searchData=
-[
- ['genericid_0',['genericid',['../classstencil_1_1GenericID.html#a4fd0af5f4c28c820de4b165395e9abbe',1,'stencil::GenericID::GenericID(T column, T row)'],['../classstencil_1_1GenericID.html#a3e3c6ae7b47ec8782f64dc75f7b132ab',1,'stencil::GenericID::GenericID(sycl::id< 2 > sycl_id)'],['../classstencil_1_1GenericID.html#a3ffc396e4c50229a9cfeb1f5f4970dda',1,'stencil::GenericID::GenericID(sycl::range< 2 > sycl_range)'],['../classstencil_1_1GenericID.html#a0ffbe515d7927ba1f9c64a96921fa4a8',1,'stencil::GenericID::GenericID()']]],
- ['get_5fbuffer_1',['get_buffer',['../classstencil_1_1cpu_1_1Grid.html#a8150179644eb6c008e4d5946490dae29',1,'stencil::cpu::Grid']]],
- ['get_5fgrid_5fheight_2',['get_grid_height',['../classstencil_1_1cpu_1_1Grid.html#a8e89809b848ebed2828cd4cb867cc0db',1,'stencil::cpu::Grid::get_grid_height()'],['../classstencil_1_1monotile_1_1Grid.html#a8b88e794b8e90f5d1ff39a3262c6f137',1,'stencil::monotile::Grid::get_grid_height()'],['../classstencil_1_1tiling_1_1Grid.html#ac149251c540131b3f0cbcd7232d6e7d6',1,'stencil::tiling::Grid::get_grid_height()']]],
- ['get_5fgrid_5fwidth_3',['get_grid_width',['../classstencil_1_1cpu_1_1Grid.html#ad899c4acd6457c7a7d1dc386ee8aad72',1,'stencil::cpu::Grid::get_grid_width()'],['../classstencil_1_1monotile_1_1Grid.html#a54f85a0f21da7e7764ab2d2c7a0996c2',1,'stencil::monotile::Grid::get_grid_width()'],['../classstencil_1_1tiling_1_1Grid.html#a4c7d5fa977b98d847e8435e1be89863c',1,'stencil::tiling::Grid::get_grid_width()']]],
- ['get_5fkernel_5fruntime_4',['get_kernel_runtime',['../classstencil_1_1monotile_1_1StencilUpdate.html#a1c61fda77df3acfa5a99fa2046239443',1,'stencil::monotile::StencilUpdate::get_kernel_runtime()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#aa894bca73378fcd199b3969877dd6ef5',1,'stencil::tiling::StencilUpdate::get_kernel_runtime()']]],
- ['get_5fn_5fprocessed_5fcells_5',['get_n_processed_cells',['../classstencil_1_1cpu_1_1StencilUpdate.html#a53c77f49cff205a4275f39ca3aac7094',1,'stencil::cpu::StencilUpdate::get_n_processed_cells()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a988c1427adcd11ec13bde75a2af45dc0',1,'stencil::monotile::StencilUpdate::get_n_processed_cells()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a60e77268e2e41e988e4e339397127674',1,'stencil::tiling::StencilUpdate::get_n_processed_cells()']]],
- ['get_5fparams_6',['get_params',['../classstencil_1_1cpu_1_1StencilUpdate.html#abb3ee2bd9c598f5e03785146e4cbc9a8',1,'stencil::cpu::StencilUpdate::get_params()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a4605aec7e9f717c91ef3eabe650b7920',1,'stencil::monotile::StencilUpdate::get_params()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a86721c1eea231862cc21904d67bb7c9b',1,'stencil::tiling::StencilUpdate::get_params()']]],
- ['get_5ftile_5frange_7',['get_tile_range',['../classstencil_1_1tiling_1_1Grid.html#a77e1023b2187fb64456a9cd8d72234bd',1,'stencil::tiling::Grid']]],
- ['get_5ftime_5fdependent_5fvalue_8',['get_time_dependent_value',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#ab95f1caaa6e9d08ab7c0b0ef5cfddbbd',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::KernelArgument::LocalState::get_time_dependent_value()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#ad7c0c36f765373cf499a9d9d46e7be96',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::KernelArgument::LocalState::get_time_dependent_value()'],['../classstencil_1_1BaseTransitionFunction.html#af2e9722c5ea473890f90d03c1fc809a7',1,'stencil::BaseTransitionFunction::get_time_dependent_value()'],['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html#a8f2a0cc513739c74ea5a0014af1a0ec3',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::KernelArgument::get_time_dependent_value()']]],
- ['get_5fwalltime_9',['get_walltime',['../classstencil_1_1cpu_1_1StencilUpdate.html#ae231c2dfc27b000087896b38178f95f2',1,'stencil::cpu::StencilUpdate::get_walltime()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a2bb50f6e658302f4500c2c4eb6f2368c',1,'stencil::monotile::StencilUpdate::get_walltime()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a288cbbe96655fc95ac4c3cb0c58068e3',1,'stencil::tiling::StencilUpdate::get_walltime()']]],
- ['globalstate_10',['globalstate',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html#aaae9a08cd07f537555b9a5a7e37e7918',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::GlobalState()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html#a33bbce8aac215044fee6170ca44feb57',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::GlobalState()'],['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html#aa038a1be0acd11f726334ac24c22ae73',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::GlobalState(TransFunc function, uindex_t iteration_offset, uindex_t n_iterations)'],['../classstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState.html#afcf7f11ba612141a6b9bbf7207e29fd8',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::GlobalState(GlobalState const &other)']]],
- ['grid_11',['grid',['../classstencil_1_1cpu_1_1Grid.html#a74c431318f49344be87c717e08b7d623',1,'stencil::cpu::Grid::Grid()'],['../classstencil_1_1tiling_1_1Grid.html#add1cf7427f54a121274cd27194178a5c',1,'stencil::tiling::Grid::Grid(Grid const &other_grid)'],['../classstencil_1_1tiling_1_1Grid.html#ab8a7eab2f33ad73c4c39c916e718d143',1,'stencil::tiling::Grid::Grid(sycl::buffer< Cell, 2 > input_buffer)'],['../classstencil_1_1tiling_1_1Grid.html#afe4a9b25af729051cb38e3e4632603fc',1,'stencil::tiling::Grid::Grid(sycl::range< 2 > range)'],['../classstencil_1_1tiling_1_1Grid.html#abbf5789242083e1c22d3ef823af3f9fa',1,'stencil::tiling::Grid::Grid(uindex_t grid_width, uindex_t grid_height)'],['../classstencil_1_1monotile_1_1Grid.html#aaa4a35ecd0a4a6d81141db11d2e49285',1,'stencil::monotile::Grid::Grid(Grid const &other_grid)'],['../classstencil_1_1monotile_1_1Grid.html#a4cda06f39520c35a163035943b29a907',1,'stencil::monotile::Grid::Grid(sycl::buffer< Cell, 2 > buffer)'],['../classstencil_1_1monotile_1_1Grid.html#a29a98dc36d8c6b424e18ddd17b37e4a2',1,'stencil::monotile::Grid::Grid(sycl::range< 2 > range)'],['../classstencil_1_1monotile_1_1Grid.html#a806aa4c920eb2796c702670cb87ff001',1,'stencil::monotile::Grid::Grid(uindex_t grid_width, uindex_t grid_height)'],['../classstencil_1_1cpu_1_1Grid.html#ae55a40831bcb53f682f13e24542c0a4e',1,'stencil::cpu::Grid::Grid(sycl::buffer< Cell, 2 > other_buffer)'],['../classstencil_1_1cpu_1_1Grid.html#a56ede0cbd0cc3b0546f6b7939c0ca93a',1,'stencil::cpu::Grid::Grid(sycl::range< 2 > range)'],['../classstencil_1_1cpu_1_1Grid.html#a07cc2e2e9eb03e733699bb801b79b224',1,'stencil::cpu::Grid::Grid(uindex_t c, uindex_t r)']]],
- ['gridaccessor_12',['gridaccessor',['../classstencil_1_1cpu_1_1Grid_1_1GridAccessor.html#a3c554a151275d268af60b6227affee7a',1,'stencil::cpu::Grid::GridAccessor::GridAccessor()'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#a6533850fee0f2b9f49a15f5a94e2ae6f',1,'stencil::monotile::Grid::GridAccessor::GridAccessor()'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#ac6e6ce5f911c89542795bbadf4435073',1,'stencil::tiling::Grid::GridAccessor::GridAccessor()']]]
-];
diff --git a/search/functions_4.js b/search/functions_4.js
deleted file mode 100644
index 36acd74..0000000
--- a/search/functions_4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['kernelargument_0',['kernelargument',['../structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html#a7fc2237ac97279b2386dbe2438579ce0',1,'stencil::tdv::single_pass::InlineStrategy::GlobalState::KernelArgument::KernelArgument()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html#a21260e0638acea1b0a9838ad1a358fac',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::KernelArgument::KernelArgument()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html#ab412eaa8712251eb4c75b73b0f10ab03',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::KernelArgument::KernelArgument()']]]
-];
diff --git a/search/functions_5.js b/search/functions_5.js
deleted file mode 100644
index e00c4e4..0000000
--- a/search/functions_5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['localstate_0',['localstate',['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#a3e7a86e0cd3f2e16dd03507ed71936f5',1,'stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState::KernelArgument::LocalState::LocalState()'],['../structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html#aa06633342ca6896e098b01093b5802a3',1,'stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState::KernelArgument::LocalState::LocalState()']]]
-];
diff --git a/search/functions_6.js b/search/functions_6.js
deleted file mode 100644
index d3908a4..0000000
--- a/search/functions_6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['make_5fsimilar_0',['make_similar',['../classstencil_1_1cpu_1_1Grid.html#a7d02f8ec80f24d38294551ce1f5d170d',1,'stencil::cpu::Grid::make_similar()'],['../classstencil_1_1monotile_1_1Grid.html#a48ebf5dd14d3db44baf1c295926d1ff1',1,'stencil::monotile::Grid::make_similar()'],['../classstencil_1_1tiling_1_1Grid.html#aaf24b2e7e2f8f7b32e13e63447010844',1,'stencil::tiling::Grid::make_similar()']]]
-];
diff --git a/search/functions_7.js b/search/functions_7.js
deleted file mode 100644
index 73447fb..0000000
--- a/search/functions_7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['n_5fcells_5fto_5fn_5fwords_0',['n_cells_to_n_words',['../namespacestencil.html#ad756f3810856bc3f9d459885d77c382a',1,'stencil']]]
-];
diff --git a/search/functions_8.js b/search/functions_8.js
deleted file mode 100644
index 6ac5421..0000000
--- a/search/functions_8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var searchData=
-[
- ['operator_28_29_0',['operator()',['../classstencil_1_1monotile_1_1StencilUpdateKernel.html#aba71144f53197120eb6b93831ba4256b',1,'stencil::monotile::StencilUpdateKernel::operator()()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a81f33e224480497d729b33ae958b953d',1,'stencil::monotile::StencilUpdate::operator()()'],['../classstencil_1_1tiling_1_1StencilUpdateKernel.html#a2c5a8a4297f5fe946d8e4f6bc8f7d670',1,'stencil::tiling::StencilUpdateKernel::operator()()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a9fa10fb8aad1236c220fcd3ab046fce4',1,'stencil::tiling::StencilUpdate::operator()()'],['../classstencil_1_1cpu_1_1StencilUpdate.html#afd74e6ab64304f7d47bdcc04cc9f6032',1,'stencil::cpu::StencilUpdate::operator()()']]],
- ['operator_3d_3d_1',['operator==',['../classstencil_1_1GenericID.html#a56f29c35be0f87a5eb18cd55d4d35873',1,'stencil::GenericID']]],
- ['operator_5b_5d_2',['operator[]',['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#a47401fbc3e1698de06a62503d2726ea2',1,'stencil::tiling::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#a93eaba6e95056bd1614cd2c8fdd4163f',1,'stencil::tiling::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1tiling_1_1Grid_1_1GridAccessor.html#a1dce934f2f7aa732a79dc9f12693f210',1,'stencil::tiling::Grid::GridAccessor::operator[](uindex_t i)'],['../classstencil_1_1Stencil.html#a4182a31d26db8bcfb04e1116e8bfe617',1,'stencil::Stencil::operator[](StencilUID id)'],['../classstencil_1_1Stencil.html#ad6590fab4513e5c5345e7b13e345a517',1,'stencil::Stencil::operator[](StencilUID id) const'],['../classstencil_1_1Stencil.html#a877ee999c7f57afdbb495c96fd289380',1,'stencil::Stencil::operator[](UID id)'],['../classstencil_1_1Stencil.html#aaa156ac96b7a6f53e4b9c733f397fb53',1,'stencil::Stencil::operator[](UID id) const'],['../classstencil_1_1Stencil.html#adf1304b9cd46128f2a9f5072331f1252',1,'stencil::Stencil::operator[](StencilID id)'],['../classstencil_1_1Stencil.html#aae31de9264aef3ef53370dc475d2da0e',1,'stencil::Stencil::operator[](StencilID id) const'],['../classstencil_1_1Stencil.html#a32328cf289ee4fbb76e4ffbee8f9e330',1,'stencil::Stencil::operator[](ID id)'],['../classstencil_1_1Stencil.html#a26d07c9f9886e041d94f3168931b41e6',1,'stencil::Stencil::operator[](ID id) const'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#aad9224be4740450892e1089273bd171b',1,'stencil::monotile::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#a7cf0e69fab2890786d1d93b6304f3eee',1,'stencil::monotile::Grid::GridAccessor::operator[](sycl::id< 2 > id)'],['../classstencil_1_1monotile_1_1Grid_1_1GridAccessor.html#a9c7bba9d8799e492f12fb8aa0227ff24',1,'stencil::monotile::Grid::GridAccessor::operator[](uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a28c97b392888fb6dbfde109615ae3c12',1,'stencil::AccessorSubscript::operator[](uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a510de3048dda4f10cb4b16fd96677d89',1,'stencil::AccessorSubscript::operator[](uindex_t i)'],['../classstencil_1_1AccessorSubscript.html#a2a1bcd3fc05ffdbb407f2bd90899d255',1,'stencil::AccessorSubscript::operator[](uindex_t i)']]]
-];
diff --git a/search/functions_9.js b/search/functions_9.js
deleted file mode 100644
index 065be35..0000000
--- a/search/functions_9.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var searchData=
-[
- ['stencil_0',['stencil',['../classstencil_1_1Stencil.html#aaa6a789a8e49ad82a7c276bb41203820',1,'stencil::Stencil::Stencil(ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv)'],['../classstencil_1_1Stencil.html#a2d5a7c6324ee87fccbc3bd44b6124d5b',1,'stencil::Stencil::Stencil(ID id, UID grid_range, uindex_t iteration, uindex_t subiteration, TimeDependentValue tdv, Cell raw[diameter][diameter])']]],
- ['stencilupdate_1',['stencilupdate',['../classstencil_1_1cpu_1_1StencilUpdate.html#a06ca27f7a1bd0292234b8ccad2d17991',1,'stencil::cpu::StencilUpdate::StencilUpdate()'],['../classstencil_1_1monotile_1_1StencilUpdate.html#a7f50b050eb2122cd7e6ad65f670f49ad',1,'stencil::monotile::StencilUpdate::StencilUpdate()'],['../classstencil_1_1tiling_1_1StencilUpdate.html#a2bf7e62377b5ae4efecc705fbc619b60',1,'stencil::tiling::StencilUpdate::StencilUpdate()']]],
- ['stencilupdatekernel_2',['stencilupdatekernel',['../classstencil_1_1monotile_1_1StencilUpdateKernel.html#ad221da1d7d69a2c711d4fe8905f9526e',1,'stencil::monotile::StencilUpdateKernel::StencilUpdateKernel()'],['../classstencil_1_1tiling_1_1StencilUpdateKernel.html#a8a362a720545d40a61cfaf6ec7ef3fe5',1,'stencil::tiling::StencilUpdateKernel::StencilUpdateKernel()']]],
- ['submit_5fread_3',['submit_read',['../classstencil_1_1monotile_1_1Grid.html#a0dcd2ef236147b4155b9f1d6eefe7602',1,'stencil::monotile::Grid::submit_read()'],['../classstencil_1_1tiling_1_1Grid.html#a935d95d8285b1cc954b01c981e520c50',1,'stencil::tiling::Grid::submit_read()']]],
- ['submit_5fwrite_4',['submit_write',['../classstencil_1_1monotile_1_1Grid.html#abe22ee3313629651586cb16ea166a0c5',1,'stencil::monotile::Grid::submit_write()'],['../classstencil_1_1tiling_1_1Grid.html#a899f2d09450542d998695c873775ee55',1,'stencil::tiling::Grid::submit_write()']]]
-];
diff --git a/search/mag.svg b/search/mag.svg
deleted file mode 100644
index ffb6cf0..0000000
--- a/search/mag.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
diff --git a/search/mag_d.svg b/search/mag_d.svg
deleted file mode 100644
index 4122773..0000000
--- a/search/mag_d.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
diff --git a/search/mag_sel.svg b/search/mag_sel.svg
deleted file mode 100644
index 553dba8..0000000
--- a/search/mag_sel.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/search/mag_seld.svg b/search/mag_seld.svg
deleted file mode 100644
index c906f84..0000000
--- a/search/mag_seld.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/search/namespaces_0.js b/search/namespaces_0.js
deleted file mode 100644
index d174fb6..0000000
--- a/search/namespaces_0.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var searchData=
-[
- ['stencil_0',['stencil',['../namespacestencil.html',1,'']]],
- ['stencil_3a_3aconcepts_1',['concepts',['../namespacestencil_1_1concepts.html',1,'stencil']]],
- ['stencil_3a_3acpu_2',['cpu',['../namespacestencil_1_1cpu.html',1,'stencil']]],
- ['stencil_3a_3amonotile_3',['monotile',['../namespacestencil_1_1monotile.html',1,'stencil']]],
- ['stencil_3a_3atdv_4',['tdv',['../namespacestencil_1_1tdv.html',1,'stencil']]],
- ['stencil_3a_3atdv_3a_3asingle_5fpass_5',['single_pass',['../namespacestencil_1_1tdv_1_1single__pass.html',1,'stencil::tdv']]],
- ['stencil_3a_3atiling_6',['tiling',['../namespacestencil_1_1tiling.html',1,'stencil']]]
-];
diff --git a/search/pages_0.js b/search/pages_0.js
deleted file mode 100644
index 0de9681..0000000
--- a/search/pages_0.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var searchData=
-[
- ['stencilstream_0',['StencilStream',['../index.html',1,'']]]
-];
diff --git a/search/search.css b/search/search.css
deleted file mode 100644
index 19f76f9..0000000
--- a/search/search.css
+++ /dev/null
@@ -1,291 +0,0 @@
-/*---------------- Search Box positioning */
-
-#main-menu > li:last-child {
- /* This object is the parent of the search bar */
- display: flex;
- justify-content: center;
- align-items: center;
- height: 36px;
- margin-right: 1em;
-}
-
-/*---------------- Search box styling */
-
-.SRPage * {
- font-weight: normal;
- line-height: normal;
-}
-
-dark-mode-toggle {
- margin-left: 5px;
- display: flex;
- float: right;
-}
-
-#MSearchBox {
- display: inline-block;
- white-space : nowrap;
- background: var(--search-background-color);
- border-radius: 0.65em;
- box-shadow: var(--search-box-shadow);
- z-index: 102;
-}
-
-#MSearchBox .left {
- display: inline-block;
- vertical-align: middle;
- height: 1.4em;
-}
-
-#MSearchSelect {
- display: inline-block;
- vertical-align: middle;
- width: 20px;
- height: 19px;
- background-image: var(--search-magnification-select-image);
- margin: 0 0 0 0.3em;
- padding: 0;
-}
-
-#MSearchSelectExt {
- display: inline-block;
- vertical-align: middle;
- width: 10px;
- height: 19px;
- background-image: var(--search-magnification-image);
- margin: 0 0 0 0.5em;
- padding: 0;
-}
-
-
-#MSearchField {
- display: inline-block;
- vertical-align: middle;
- width: 7.5em;
- height: 19px;
- margin: 0 0.15em;
- padding: 0;
- line-height: 1em;
- border:none;
- color: var(--search-foreground-color);
- outline: none;
- font-family: var(--font-family-search);
- -webkit-border-radius: 0px;
- border-radius: 0px;
- background: none;
-}
-
-@media(hover: none) {
- /* to avoid zooming on iOS */
- #MSearchField {
- font-size: 16px;
- }
-}
-
-#MSearchBox .right {
- display: inline-block;
- vertical-align: middle;
- width: 1.4em;
- height: 1.4em;
-}
-
-#MSearchClose {
- display: none;
- font-size: inherit;
- background : none;
- border: none;
- margin: 0;
- padding: 0;
- outline: none;
-
-}
-
-#MSearchCloseImg {
- padding: 0.3em;
- margin: 0;
-}
-
-.MSearchBoxActive #MSearchField {
- color: var(--search-active-color);
-}
-
-
-
-/*---------------- Search filter selection */
-
-#MSearchSelectWindow {
- display: none;
- position: absolute;
- left: 0; top: 0;
- border: 1px solid var(--search-filter-border-color);
- background-color: var(--search-filter-background-color);
- z-index: 10001;
- padding-top: 4px;
- padding-bottom: 4px;
- -moz-border-radius: 4px;
- -webkit-border-top-left-radius: 4px;
- -webkit-border-top-right-radius: 4px;
- -webkit-border-bottom-left-radius: 4px;
- -webkit-border-bottom-right-radius: 4px;
- -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-}
-
-.SelectItem {
- font: 8pt var(--font-family-search);
- padding-left: 2px;
- padding-right: 12px;
- border: 0px;
-}
-
-span.SelectionMark {
- margin-right: 4px;
- font-family: var(--font-family-monospace);
- outline-style: none;
- text-decoration: none;
-}
-
-a.SelectItem {
- display: block;
- outline-style: none;
- color: var(--search-filter-foreground-color);
- text-decoration: none;
- padding-left: 6px;
- padding-right: 12px;
-}
-
-a.SelectItem:focus,
-a.SelectItem:active {
- color: var(--search-filter-foreground-color);
- outline-style: none;
- text-decoration: none;
-}
-
-a.SelectItem:hover {
- color: var(--search-filter-highlight-text-color);
- background-color: var(--search-filter-highlight-bg-color);
- outline-style: none;
- text-decoration: none;
- cursor: pointer;
- display: block;
-}
-
-/*---------------- Search results window */
-
-iframe#MSearchResults {
- /*width: 60ex;*/
- height: 15em;
-}
-
-#MSearchResultsWindow {
- display: none;
- position: absolute;
- left: 0; top: 0;
- border: 1px solid var(--search-results-border-color);
- background-color: var(--search-results-background-color);
- z-index:10000;
- width: 300px;
- height: 400px;
- overflow: auto;
-}
-
-/* ----------------------------------- */
-
-
-#SRIndex {
- clear:both;
-}
-
-.SREntry {
- font-size: 10pt;
- padding-left: 1ex;
-}
-
-.SRPage .SREntry {
- font-size: 8pt;
- padding: 1px 5px;
-}
-
-div.SRPage {
- margin: 5px 2px;
- background-color: var(--search-results-background-color);
-}
-
-.SRChildren {
- padding-left: 3ex; padding-bottom: .5em
-}
-
-.SRPage .SRChildren {
- display: none;
-}
-
-.SRSymbol {
- font-weight: bold;
- color: var(--search-results-foreground-color);
- font-family: var(--font-family-search);
- text-decoration: none;
- outline: none;
-}
-
-a.SRScope {
- display: block;
- color: var(--search-results-foreground-color);
- font-family: var(--font-family-search);
- font-size: 8pt;
- text-decoration: none;
- outline: none;
-}
-
-a.SRSymbol:focus, a.SRSymbol:active,
-a.SRScope:focus, a.SRScope:active {
- text-decoration: underline;
-}
-
-span.SRScope {
- padding-left: 4px;
- font-family: var(--font-family-search);
-}
-
-.SRPage .SRStatus {
- padding: 2px 5px;
- font-size: 8pt;
- font-style: italic;
- font-family: var(--font-family-search);
-}
-
-.SRResult {
- display: none;
-}
-
-div.searchresults {
- margin-left: 10px;
- margin-right: 10px;
-}
-
-/*---------------- External search page results */
-
-.pages b {
- color: white;
- padding: 5px 5px 3px 5px;
- background-image: var(--nav-gradient-active-image-parent);
- background-repeat: repeat-x;
- text-shadow: 0 1px 1px #000000;
-}
-
-.pages {
- line-height: 17px;
- margin-left: 4px;
- text-decoration: none;
-}
-
-.hl {
- font-weight: bold;
-}
-
-#searchresults {
- margin-bottom: 20px;
-}
-
-.searchpages {
- margin-top: 10px;
-}
-
diff --git a/search/search.js b/search/search.js
deleted file mode 100644
index 6fd40c6..0000000
--- a/search/search.js
+++ /dev/null
@@ -1,840 +0,0 @@
-/*
- @licstart The following is the entire license notice for the JavaScript code in this file.
-
- The MIT License (MIT)
-
- Copyright (C) 1997-2020 by Dimitri van Heesch
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- and associated documentation files (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge, publish, distribute,
- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all copies or
- substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- @licend The above is the entire license notice for the JavaScript code in this file
- */
-function convertToId(search)
-{
- var result = '';
- for (i=0;i do a search
- {
- this.Search();
- }
- }
-
- this.OnSearchSelectKey = function(evt)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==40 && this.searchIndex0) // Up
- {
- this.searchIndex--;
- this.OnSelectItem(this.searchIndex);
- }
- else if (e.keyCode==13 || e.keyCode==27)
- {
- e.stopPropagation();
- this.OnSelectItem(this.searchIndex);
- this.CloseSelectionWindow();
- this.DOMSearchField().focus();
- }
- return false;
- }
-
- // --------- Actions
-
- // Closes the results window.
- this.CloseResultsWindow = function()
- {
- this.DOMPopupSearchResultsWindow().style.display = 'none';
- this.DOMSearchClose().style.display = 'none';
- this.Activate(false);
- }
-
- this.CloseSelectionWindow = function()
- {
- this.DOMSearchSelectWindow().style.display = 'none';
- }
-
- // Performs a search.
- this.Search = function()
- {
- this.keyTimeout = 0;
-
- // strip leading whitespace
- var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
-
- var code = searchValue.toLowerCase().charCodeAt(0);
- var idxChar = searchValue.substr(0, 1).toLowerCase();
- if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
- {
- idxChar = searchValue.substr(0, 2);
- }
-
- var jsFile;
-
- var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
- if (idx!=-1)
- {
- var hexCode=idx.toString(16);
- jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js';
- }
-
- var loadJS = function(url, impl, loc){
- var scriptTag = document.createElement('script');
- scriptTag.src = url;
- scriptTag.onload = impl;
- scriptTag.onreadystatechange = impl;
- loc.appendChild(scriptTag);
- }
-
- var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
- var domSearchBox = this.DOMSearchBox();
- var domPopupSearchResults = this.DOMPopupSearchResults();
- var domSearchClose = this.DOMSearchClose();
- var resultsPath = this.resultsPath;
-
- var handleResults = function() {
- document.getElementById("Loading").style.display="none";
- if (typeof searchData !== 'undefined') {
- createResults(resultsPath);
- document.getElementById("NoMatches").style.display="none";
- }
-
- if (idx!=-1) {
- searchResults.Search(searchValue);
- } else { // no file with search results => force empty search results
- searchResults.Search('====');
- }
-
- if (domPopupSearchResultsWindow.style.display!='block')
- {
- domSearchClose.style.display = 'inline-block';
- var left = getXPos(domSearchBox) + 150;
- var top = getYPos(domSearchBox) + 20;
- domPopupSearchResultsWindow.style.display = 'block';
- left -= domPopupSearchResults.offsetWidth;
- var maxWidth = document.body.clientWidth;
- var maxHeight = document.body.clientHeight;
- var width = 300;
- if (left<10) left=10;
- if (width+left+8>maxWidth) width=maxWidth-left-8;
- var height = 400;
- if (height+top+8>maxHeight) height=maxHeight-top-8;
- domPopupSearchResultsWindow.style.top = top + 'px';
- domPopupSearchResultsWindow.style.left = left + 'px';
- domPopupSearchResultsWindow.style.width = width + 'px';
- domPopupSearchResultsWindow.style.height = height + 'px';
- }
- }
-
- if (jsFile) {
- loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow());
- } else {
- handleResults();
- }
-
- this.lastSearchValue = searchValue;
- }
-
- // -------- Activation Functions
-
- // Activates or deactivates the search panel, resetting things to
- // their default values if necessary.
- this.Activate = function(isActive)
- {
- if (isActive || // open it
- this.DOMPopupSearchResultsWindow().style.display == 'block'
- )
- {
- this.DOMSearchBox().className = 'MSearchBoxActive';
- this.searchActive = true;
- }
- else if (!isActive) // directly remove the panel
- {
- this.DOMSearchBox().className = 'MSearchBoxInactive';
- this.searchActive = false;
- this.lastSearchValue = ''
- this.lastResultsPage = '';
- this.DOMSearchField().value = '';
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-// The class that handles everything on the search results page.
-function SearchResults(name)
-{
- // The number of matches from the last run of .
- this.lastMatchCount = 0;
- this.lastKey = 0;
- this.repeatOn = false;
-
- // Toggles the visibility of the passed element ID.
- this.FindChildElement = function(id)
- {
- var parentElement = document.getElementById(id);
- var element = parentElement.firstChild;
-
- while (element && element!=parentElement)
- {
- if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
- {
- return element;
- }
-
- if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
- {
- element = element.firstChild;
- }
- else if (element.nextSibling)
- {
- element = element.nextSibling;
- }
- else
- {
- do
- {
- element = element.parentNode;
- }
- while (element && element!=parentElement && !element.nextSibling);
-
- if (element && element!=parentElement)
- {
- element = element.nextSibling;
- }
- }
- }
- }
-
- this.Toggle = function(id)
- {
- var element = this.FindChildElement(id);
- if (element)
- {
- if (element.style.display == 'block')
- {
- element.style.display = 'none';
- }
- else
- {
- element.style.display = 'block';
- }
- }
- }
-
- // Searches for the passed string. If there is no parameter,
- // it takes it from the URL query.
- //
- // Always returns true, since other documents may try to call it
- // and that may or may not be possible.
- this.Search = function(search)
- {
- if (!search) // get search word from URL
- {
- search = window.location.search;
- search = search.substring(1); // Remove the leading '?'
- search = unescape(search);
- }
-
- search = search.replace(/^ +/, ""); // strip leading spaces
- search = search.replace(/ +$/, ""); // strip trailing spaces
- search = search.toLowerCase();
- search = convertToId(search);
-
- var resultRows = document.getElementsByTagName("div");
- var matches = 0;
-
- var i = 0;
- while (i < resultRows.length)
- {
- var row = resultRows.item(i);
- if (row.className == "SRResult")
- {
- var rowMatchName = row.id.toLowerCase();
- rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
-
- if (search.length<=rowMatchName.length &&
- rowMatchName.substr(0, search.length)==search)
- {
- row.style.display = 'block';
- matches++;
- }
- else
- {
- row.style.display = 'none';
- }
- }
- i++;
- }
- document.getElementById("Searching").style.display='none';
- if (matches == 0) // no results
- {
- document.getElementById("NoMatches").style.display='block';
- }
- else // at least one result
- {
- document.getElementById("NoMatches").style.display='none';
- }
- this.lastMatchCount = matches;
- return true;
- }
-
- // return the first item with index index or higher that is visible
- this.NavNext = function(index)
- {
- var focusItem;
- while (1)
- {
- var focusName = 'Item'+index;
- focusItem = document.getElementById(focusName);
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
- {
- break;
- }
- else if (!focusItem) // last element
- {
- break;
- }
- focusItem=null;
- index++;
- }
- return focusItem;
- }
-
- this.NavPrev = function(index)
- {
- var focusItem;
- while (1)
- {
- var focusName = 'Item'+index;
- focusItem = document.getElementById(focusName);
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
- {
- break;
- }
- else if (!focusItem) // last element
- {
- break;
- }
- focusItem=null;
- index--;
- }
- return focusItem;
- }
-
- this.ProcessKeys = function(e)
- {
- if (e.type == "keydown")
- {
- this.repeatOn = false;
- this.lastKey = e.keyCode;
- }
- else if (e.type == "keypress")
- {
- if (!this.repeatOn)
- {
- if (this.lastKey) this.repeatOn = true;
- return false; // ignore first keypress after keydown
- }
- }
- else if (e.type == "keyup")
- {
- this.lastKey = 0;
- this.repeatOn = false;
- }
- return this.lastKey!=0;
- }
-
- this.Nav = function(evt,itemIndex)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==13) return true;
- if (!this.ProcessKeys(e)) return false;
-
- if (this.lastKey==38) // Up
- {
- var newIndex = itemIndex-1;
- var focusItem = this.NavPrev(newIndex);
- if (focusItem)
- {
- var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
- if (child && child.style.display == 'block') // children visible
- {
- var n=0;
- var tmpElem;
- while (1) // search for last child
- {
- tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
- if (tmpElem)
- {
- focusItem = tmpElem;
- }
- else // found it!
- {
- break;
- }
- n++;
- }
- }
- }
- if (focusItem)
- {
- focusItem.focus();
- }
- else // return focus to search field
- {
- document.getElementById("MSearchField").focus();
- }
- }
- else if (this.lastKey==40) // Down
- {
- var newIndex = itemIndex+1;
- var focusItem;
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem && elem.style.display == 'block') // children visible
- {
- focusItem = document.getElementById('Item'+itemIndex+'_c0');
- }
- if (!focusItem) focusItem = this.NavNext(newIndex);
- if (focusItem) focusItem.focus();
- }
- else if (this.lastKey==39) // Right
- {
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem) elem.style.display = 'block';
- }
- else if (this.lastKey==37) // Left
- {
- var item = document.getElementById('Item'+itemIndex);
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
- if (elem) elem.style.display = 'none';
- }
- else if (this.lastKey==27) // Escape
- {
- e.stopPropagation();
- searchBox.CloseResultsWindow();
- document.getElementById("MSearchField").focus();
- }
- else if (this.lastKey==13) // Enter
- {
- return true;
- }
- return false;
- }
-
- this.NavChild = function(evt,itemIndex,childIndex)
- {
- var e = (evt) ? evt : window.event; // for IE
- if (e.keyCode==13) return true;
- if (!this.ProcessKeys(e)) return false;
-
- if (this.lastKey==38) // Up
- {
- if (childIndex>0)
- {
- var newIndex = childIndex-1;
- document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
- }
- else // already at first child, jump to parent
- {
- document.getElementById('Item'+itemIndex).focus();
- }
- }
- else if (this.lastKey==40) // Down
- {
- var newIndex = childIndex+1;
- var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
- if (!elem) // last child, jump to parent next parent
- {
- elem = this.NavNext(itemIndex+1);
- }
- if (elem)
- {
- elem.focus();
- }
- }
- else if (this.lastKey==27) // Escape
- {
- e.stopPropagation();
- searchBox.CloseResultsWindow();
- document.getElementById("MSearchField").focus();
- }
- else if (this.lastKey==13) // Enter
- {
- return true;
- }
- return false;
- }
-}
-
-function setKeyActions(elem,action)
-{
- elem.setAttribute('onkeydown',action);
- elem.setAttribute('onkeypress',action);
- elem.setAttribute('onkeyup',action);
-}
-
-function setClassAttr(elem,attr)
-{
- elem.setAttribute('class',attr);
- elem.setAttribute('className',attr);
-}
-
-function createResults(resultsPath)
-{
- var results = document.getElementById("SRResults");
- results.innerHTML = '';
- for (var e=0; e
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::Padded< T > , including all inherited members.
-
-
-
-
-
diff --git a/structstencil_1_1Padded.html b/structstencil_1_1Padded.html
deleted file mode 100644
index 28e0cf8..0000000
--- a/structstencil_1_1Padded.html
+++ /dev/null
@@ -1,131 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::Padded< T > Struct Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A container with padding to the next power of two.
- More...
-
-
#include <Helpers.hpp >
-
-
-
template<typename T>
-struct stencil::Padded< T >
A container with padding to the next power of two.
-
Wrapping a type in this template ensures that the resulting size is a power of two.
-
Template Parameters
-
-
-
-
-
-
◆ value
-
-
-
-
-template<typename T >
-
-
-
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1cpu_1_1StencilUpdate_1_1Params-members.html b/structstencil_1_1cpu_1_1StencilUpdate_1_1Params-members.html
deleted file mode 100644
index 0d40809..0000000
--- a/structstencil_1_1cpu_1_1StencilUpdate_1_1Params-members.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::cpu::StencilUpdate< F >::Params , including all inherited members.
-
-
-
-
-
diff --git a/structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html b/structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html
deleted file mode 100644
index ebc2633..0000000
--- a/structstencil_1_1cpu_1_1StencilUpdate_1_1Params.html
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::cpu::StencilUpdate< F >::Params Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
Parameters for the stencil updater.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-F transition_function
- An instance of the transition function type.
-
-Cell halo_value = Cell()
- The cell value to present for cells outside of the grid.
-
-uindex_t iteration_offset = 0
- The iteration index offset.
-
-uindex_t n_iterations = 1
- The number of iterations to compute.
-
-sycl::device device = sycl::device()
- The device to use for computations.
-
-bool blocking = false
- Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
-
-
-
-
template<concepts::TransitionFunction F>
-struct stencil::cpu::StencilUpdate< F >::Params
Parameters for the stencil updater.
-
-
-
◆ blocking
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
-
Choosing one option or the other won't effect the correctness: For example, if you choose a non-blocking stencil updater and immediately try to access the grid after the updater has returned, SYCL/OneAPI will block your thread until the computations are complete and it can actually provide you access to the data.
-
-
-
-
-
◆ device
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
The device to use for computations.
-
-
-
-
-
◆ halo_value
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
The cell value to present for cells outside of the grid.
-
-
-
-
-
◆ iteration_offset
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
The iteration index offset.
-
This offset will be added to the "actual" iteration index. This way, simulations can "resume" with the next timestep if the intermediate grid has been evaluated by the host.
-
-
-
-
-
◆ n_iterations
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
The number of iterations to compute.
-
-
-
-
-
◆ transition_function
-
-
-
-
-template<concepts::TransitionFunction F>
-
-
-
-
An instance of the transition function type.
-
User applications may store runtime parameters here.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1monotile_1_1StencilUpdate_1_1Params-members.html b/structstencil_1_1monotile_1_1StencilUpdate_1_1Params-members.html
deleted file mode 100644
index 0edff9e..0000000
--- a/structstencil_1_1monotile_1_1StencilUpdate_1_1Params-members.html
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params , including all inherited members.
-
- blocking stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- device stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- halo_value stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- iteration_offset stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- n_iterations stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- profiling stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
- transition_function stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
-
-
-
-
-
diff --git a/structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html b/structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html
deleted file mode 100644
index cdd41ca..0000000
--- a/structstencil_1_1monotile_1_1StencilUpdate_1_1Params.html
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
Parameters for the stencil updater.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-F transition_function
- An instance of the transition function type.
-
-Cell halo_value = Cell()
- The cell value to present for cells outside of the grid.
-
-uindex_t iteration_offset = 0
- The iteration index offset.
-
-uindex_t n_iterations = 1
- The number of iterations to compute.
-
-sycl::device device = sycl::device()
- The device to use for computations.
-
-bool blocking = false
- Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
-
-bool profiling = false
- Enable profiling.
-
-
-
-
template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-struct stencil::monotile::StencilUpdate< F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params
Parameters for the stencil updater.
-
-
-
◆ blocking
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
-
Choosing one option or the other won't effect the correctness: For example, if you choose a non-blocking stencil updater and immediately try to access the grid after the updater has returned, SYCL/OneAPI will block your thread until the computations are complete and it can actually provide you access to the data.
-
-
-
-
-
◆ device
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
- sycl::device stencil::monotile::StencilUpdate < F, n_processing_elements, max_grid_width, max_grid_height, TDVStrategy, word_size >::Params::device = sycl::device()
-
-
-
-
-
The device to use for computations.
-
For some setups, it might be necessary to explicitly select the device to use for computation. This can be done for example with the sycl::ext::intel::fpga_selector_v
class in the sycl/ext/intel/fpga_extensions.hpp
header. This selector will select the first FPGA it sees.
-
-
-
-
-
◆ halo_value
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
The cell value to present for cells outside of the grid.
-
-
-
-
-
◆ iteration_offset
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
The iteration index offset.
-
This offset will be added to the "actual" iteration index. This way, simulations can "resume" with the next timestep if the intermediate grid has been evaluated by the host.
-
-
-
-
-
◆ n_iterations
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
The number of iterations to compute.
-
-
-
-
-
◆ profiling
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
Enable profiling.
-
Setting this option to true will enable the recording of computation start and end timestamps. The recorded kernel runtime can be fetched using the StencilUpdate::get_kernel_runtime method.
-
-
-
-
-
◆ transition_function
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t max_grid_width = 1024,
uindex_t max_grid_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy,
uindex_t word_size = 64>
-
-
-
-
An instance of the transition function type.
-
User applications may store runtime parameters here.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy.html b/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy.html
deleted file mode 100644
index c8c11e7..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::InlineStrategy Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A TDV implementation strategy that inlines the TDV function into the transition function.
- More...
-
-
#include <SinglePassStrategies.hpp >
-
-
-
A TDV implementation strategy that inlines the TDV function into the transition function.
-
This is the simplest implementation of the TDV system: The TDV construction function is called every time the transition function is called; There is no precomputation done..
-
For FPGA-based backends, this means that the construction function is implemented within every processing element. This might be advantageous if the time-dependent value is very large and it's construction is very simple. However, one could then manually merge them into the transition function.
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState-members.html b/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState-members.html
deleted file mode 100644
index 4c89ed6..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html b/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html
deleted file mode 100644
index b757196..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState.html
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations > Struct Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-using TDV = typename TransFunc::TimeDependentValue
-
-
-
-
-
◆ TDV
-
-
-
-
-
◆ GlobalState()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument-members.html b/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument-members.html
deleted file mode 100644
index f146691..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument-members.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html b/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html
deleted file mode 100644
index 65c3abb..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1InlineStrategy_1_1GlobalState_1_1KernelArgument.html
+++ /dev/null
@@ -1,206 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::InlineStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-
-
◆ LocalState
-
-
-
-
-
◆ KernelArgument()
-
-
-
-
-
◆ get_time_dependent_value()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy.html
deleted file mode 100644
index 72d7d0f..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnDeviceStrategy Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A TDV implementation strategy that precomputes TDVs on the device.
- More...
-
-
#include <SinglePassStrategies.hpp >
-
-
-
A TDV implementation strategy that precomputes TDVs on the device.
-
This precomputation is done for each pass and covers the iterations done in this pass only.
-
For FPGA-based backends, this will lead to an additional for-loop prior to the main loop of the execution kernel. Depending on how big the TDV is and in which way it is used by the transition function, the local state may be implemented in registers or with on-chip memory.
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState-members.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState-members.html
deleted file mode 100644
index c1fd806..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html
deleted file mode 100644
index 81734f2..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState.html
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations > Struct Template Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-using TDV = typename TransFunc::TimeDependentValue
-
-
-
-
-
◆ TDV
-
-
-
-
-
◆ GlobalState()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument-members.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument-members.html
deleted file mode 100644
index 5f258ae..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument-members.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html
deleted file mode 100644
index f841d9b..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument.html
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-
-
◆ KernelArgument()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState-members.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState-members.html
deleted file mode 100644
index 4ca1ad9..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html
deleted file mode 100644
index 36aa9a2..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnDeviceStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnDeviceStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-
-
◆ LocalState()
-
-
-
-
-
◆ get_time_dependent_value()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy.html
deleted file mode 100644
index 8e67163..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy.html
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnHostStrategy Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
A TDV implementation strategy that precomputes TDVs on the host.
- More...
-
-
#include <SinglePassStrategies.hpp >
-
-
-
A TDV implementation strategy that precomputes TDVs on the host.
-
This strategy will compute all time-dependent values on the host and store them in a global memory buffer. Prior to execution, the execution kernel will then load the required values into a local array using a dedicated for-loop. Depending on how big the TDV is and in which way it is used by the transition function, the local state may be implemented in registers or with on-chip memory.
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument-members.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument-members.html
deleted file mode 100644
index 369e3ed..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument-members.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html
deleted file mode 100644
index 84e4af1..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument.html
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-
-
◆ KernelArgument()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState-members.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState-members.html
deleted file mode 100644
index a4ae42c..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState-members.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html b/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html
deleted file mode 100644
index 062571b..0000000
--- a/structstencil_1_1tdv_1_1single__pass_1_1PrecomputeOnHostStrategy_1_1GlobalState_1_1KernelArgument_1_1LocalState.html
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tdv::single_pass::PrecomputeOnHostStrategy::GlobalState< TransFunc, max_n_iterations >::KernelArgument::LocalState Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
#include <SinglePassStrategies.hpp >
-
-
-
-
◆ LocalState()
-
-
-
-
-
◆ get_time_dependent_value()
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/structstencil_1_1tiling_1_1StencilUpdate_1_1Params-members.html b/structstencil_1_1tiling_1_1StencilUpdate_1_1Params-members.html
deleted file mode 100644
index 664c06b..0000000
--- a/structstencil_1_1tiling_1_1StencilUpdate_1_1Params-members.html
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: Member List
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
This is the complete list of members for stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params , including all inherited members.
-
- blocking stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- device stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- halo_value stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- iteration_offset stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- n_iterations stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- profiling stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- transition_function stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
-
-
-
-
-
diff --git a/structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html b/structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html
deleted file mode 100644
index 4181619..0000000
--- a/structstencil_1_1tiling_1_1StencilUpdate_1_1Params.html
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params Struct Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
-
Parameters for the stencil updater.
- More...
-
-
#include <StencilUpdate.hpp >
-
-
-F transition_function
- An instance of the transition function type.
-
-Cell halo_value = Cell()
- The cell value to present for cells outside of the grid.
-
-uindex_t iteration_offset = 0
- The iteration index offset.
-
-uindex_t n_iterations = 1
- The number of iterations to compute.
-
-sycl::device device = sycl::device()
- The device to use for computations.
-
-bool blocking = false
- Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
-
-bool profiling = false
- Enable profiling.
-
-
-
-
template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-struct stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
Parameters for the stencil updater.
-
-
-
◆ blocking
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Should the stencil updater block until completion, or return immediately after all kernels have been submitted.
-
Choosing one option or the other won't effect the correctness: For example, if you choose a non-blocking stencil updater and immediately try to access the grid after the updater has returned, SYCL/OneAPI will block your thread until the computations are complete and it can actually provide you access to the data.
-
-
-
-
-
◆ device
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
- sycl::device stencil::tiling::StencilUpdate < F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params::device = sycl::device()
-
-
-
-
-
The device to use for computations.
-
For some setups, it might be necessary to explicitly select the device to use for computation. This can be done for example with the sycl::ext::intel::fpga_selector_v
class in the sycl/ext/intel/fpga_extensions.hpp
header. This selector will select the first FPGA it sees.
-
-
-
-
-
◆ halo_value
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
The cell value to present for cells outside of the grid.
-
-
-
-
-
◆ iteration_offset
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
The iteration index offset.
-
This offset will be added to the "actual" iteration index. This way, simulations can "resume" with the next timestep if the intermediate grid has been evaluated by the host.
-
-
-
-
-
◆ n_iterations
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
The number of iterations to compute.
-
-
-
-
-
◆ profiling
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
Enable profiling.
-
Setting this option to true will enable the recording of computation start and end timestamps. The recorded kernel runtime can be fetched using the StencilUpdate::get_kernel_runtime method.
-
-
-
-
-
◆ transition_function
-
-
-
-
-template<concepts::TransitionFunction F,
uindex_t n_processing_elements = 1,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024, tdv::single_pass::Strategy< F, n_processing_elements > TDVStrategy = tdv::single_pass::InlineStrategy>
-
-
-
-
An instance of the transition function type.
-
User applications may store runtime parameters here.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-
-
-
-
diff --git a/sync_off.png b/sync_off.png
deleted file mode 100644
index 3b443fc..0000000
Binary files a/sync_off.png and /dev/null differ
diff --git a/sync_on.png b/sync_on.png
deleted file mode 100644
index e08320f..0000000
Binary files a/sync_on.png and /dev/null differ
diff --git a/tab_a.png b/tab_a.png
deleted file mode 100644
index 3b725c4..0000000
Binary files a/tab_a.png and /dev/null differ
diff --git a/tab_ad.png b/tab_ad.png
deleted file mode 100644
index e34850a..0000000
Binary files a/tab_ad.png and /dev/null differ
diff --git a/tab_b.png b/tab_b.png
deleted file mode 100644
index e2b4a86..0000000
Binary files a/tab_b.png and /dev/null differ
diff --git a/tab_bd.png b/tab_bd.png
deleted file mode 100644
index 91c2524..0000000
Binary files a/tab_bd.png and /dev/null differ
diff --git a/tab_h.png b/tab_h.png
deleted file mode 100644
index fd5cb70..0000000
Binary files a/tab_h.png and /dev/null differ
diff --git a/tab_hd.png b/tab_hd.png
deleted file mode 100644
index 2489273..0000000
Binary files a/tab_hd.png and /dev/null differ
diff --git a/tab_s.png b/tab_s.png
deleted file mode 100644
index ab478c9..0000000
Binary files a/tab_s.png and /dev/null differ
diff --git a/tab_sd.png b/tab_sd.png
deleted file mode 100644
index 757a565..0000000
Binary files a/tab_sd.png and /dev/null differ
diff --git a/tabs.css b/tabs.css
deleted file mode 100644
index 71c8a47..0000000
--- a/tabs.css
+++ /dev/null
@@ -1 +0,0 @@
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}
\ No newline at end of file
diff --git a/tiling_2Grid_8hpp.html b/tiling_2Grid_8hpp.html
deleted file mode 100644
index 89aa157..0000000
--- a/tiling_2Grid_8hpp.html
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tiling/Grid.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "../AccessorSubscript.hpp "
-
#include "../Concepts.hpp "
-
#include "../GenericID.hpp "
-
#include <memory>
-
#include <numeric>
-
#include <vector>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-
-
-
-
diff --git a/tiling_2Grid_8hpp__dep__incl.map b/tiling_2Grid_8hpp__dep__incl.map
deleted file mode 100644
index 2d9598e..0000000
--- a/tiling_2Grid_8hpp__dep__incl.map
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/tiling_2Grid_8hpp__dep__incl.md5 b/tiling_2Grid_8hpp__dep__incl.md5
deleted file mode 100644
index 477abe7..0000000
--- a/tiling_2Grid_8hpp__dep__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-bcba223a0a513fa3b348b9f6ead48584
\ No newline at end of file
diff --git a/tiling_2Grid_8hpp__dep__incl.png b/tiling_2Grid_8hpp__dep__incl.png
deleted file mode 100644
index 00ddab7..0000000
Binary files a/tiling_2Grid_8hpp__dep__incl.png and /dev/null differ
diff --git a/tiling_2Grid_8hpp__incl.map b/tiling_2Grid_8hpp__incl.map
deleted file mode 100644
index 4923a71..0000000
--- a/tiling_2Grid_8hpp__incl.map
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tiling_2Grid_8hpp__incl.md5 b/tiling_2Grid_8hpp__incl.md5
deleted file mode 100644
index 810260b..0000000
--- a/tiling_2Grid_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-bd67e52a04b8b0518d022805fec3bea9
\ No newline at end of file
diff --git a/tiling_2Grid_8hpp__incl.png b/tiling_2Grid_8hpp__incl.png
deleted file mode 100644
index 30603e2..0000000
Binary files a/tiling_2Grid_8hpp__incl.png and /dev/null differ
diff --git a/tiling_2Grid_8hpp_source.html b/tiling_2Grid_8hpp_source.html
deleted file mode 100644
index 9aa1ea2..0000000
--- a/tiling_2Grid_8hpp_source.html
+++ /dev/null
@@ -1,346 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tiling/Grid.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
21 #include "../AccessorSubscript.hpp"
-
22 #include "../Concepts.hpp"
-
23 #include "../GenericID.hpp"
-
-
-
-
-
-
-
-
-
72 template <
typename Cell,
uindex_t tile_width = 1024,
uindex_t tile_height = 1024,
-
-
-
-
75 static_assert (2 * halo_radius < tile_height && 2 * halo_radius < tile_width);
-
-
-
-
-
-
-
93 : grid_buffer(sycl::range<2>(grid_width, grid_height)) {}
-
-
-
101 Grid (sycl::range<2> range) : grid_buffer(range) {}
-
-
-
111 Grid (sycl::buffer<Cell, 2> input_buffer) : grid_buffer(input_buffer.get_range()) {
-
-
-
-
-
124 Grid (
Grid const &other_grid) : grid_buffer(other_grid.grid_buffer) {}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
168 requires (access_mode == sycl::access::mode::read)
-
-
-
-
-
-
-
-
180 requires (access_mode != sycl::access::mode::read)
-
-
-
-
-
-
-
186 sycl::host_accessor<Cell, 2, access_mode> accessor;
-
-
-
-
-
-
200 if (input_buffer.get_range() != grid_buffer.get_range()) {
-
201 throw std::out_of_range(
"The target buffer has not the same size as the grid" );
-
-
-
204 sycl::host_accessor grid_ac{grid_buffer, sycl::write_only};
-
205 sycl::host_accessor input_ac{input_buffer, sycl::read_only};
-
-
-
208 grid_ac[c][r] = input_ac[c][r];
-
-
-
-
-
-
-
-
223 if (output_buffer.get_range() != grid_buffer.get_range()) {
-
224 throw std::out_of_range(
"The target buffer has not the same size as the grid" );
-
-
-
227 sycl::host_accessor grid_ac{grid_buffer, sycl::read_only};
-
228 sycl::host_accessor output_ac{output_buffer, sycl::write_only};
-
-
-
231 output_ac[c][r] = grid_ac[c][r];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
294 template <
typename in_pipe>
-
-
-
-
297 throw std::out_of_range(
"Tile index out of range!" );
-
-
-
300 constexpr uindex_t column_bits = 1 + std::bit_width(tile_width + halo_radius);
-
301 constexpr uindex_t row_bits = 1 + std::bit_width(tile_height + halo_radius);
-
302 using index_c_t = ac_int<column_bits, true>;
-
303 using index_r_t = ac_int<row_bits, true>;
-
-
305 return queue.submit([&](sycl::handler &cgh) {
-
306 sycl::accessor grid_ac{grid_buffer, cgh, sycl::read_only};
-
-
-
-
310 cgh.single_task([=]() {
-
311 index_t c_offset = tile_c * tile_width;
-
312 index_c_t start_tile_c = -halo_radius;
-
313 index_c_t end_tile_c =
-
314 index_c_t(std::min(grid_width - tile_c * tile_width, tile_width)) + halo_radius;
-
-
316 index_t r_offset = tile_r * tile_height;
-
317 index_r_t start_tile_r = -halo_radius;
-
318 index_r_t end_tile_r =
-
319 index_r_t(std::min(grid_height - tile_r * tile_height, tile_height)) +
-
-
-
322 [[intel::loop_coalesce(2)]]
for (index_c_t tile_c = start_tile_c;
-
323 tile_c < end_tile_c; tile_c++) {
-
324 for (index_r_t tile_r = start_tile_r; tile_r < end_tile_r; tile_r++) {
-
325 index_t c = c_offset + tile_c.to_long();
-
326 index_t r = r_offset + tile_r.to_long();
-
-
-
329 if (c >= 0 && r >= 0 && c < grid_width && r < grid_height) {
-
330 value = grid_ac[c][r];
-
-
-
-
334 in_pipe::write(
value );
-
-
-
-
-
-
-
-
369 template <
typename out_pipe>
-
-
-
-
372 throw std::out_of_range(
"Tile index out of range!" );
-
-
-
375 constexpr uindex_t column_bits = std::bit_width(tile_width);
-
376 constexpr uindex_t row_bits = std::bit_width(tile_height);
-
377 using uindex_c_t = ac_int<column_bits, false>;
-
378 using uindex_r_t = ac_int<row_bits, false>;
-
-
380 return queue.submit([&](sycl::handler &cgh) {
-
381 sycl::accessor grid_ac{grid_buffer, cgh, sycl::read_write};
-
-
-
-
385 cgh.single_task([=]() {
-
386 uindex_t c_offset = tile_c * tile_width;
-
387 uindex_c_t end_tile_c =
-
388 uindex_c_t(std::min(grid_width - tile_c * tile_width, tile_width));
-
-
390 uindex_t r_offset = tile_r * tile_height;
-
391 uindex_r_t end_tile_r =
-
392 uindex_r_t(std::min(grid_height - tile_r * tile_height, tile_height));
-
-
394 [[intel::loop_coalesce(2)]]
for (uindex_c_t tile_c = 0; tile_c < end_tile_c;
-
-
396 for (uindex_r_t tile_r = 0; tile_r < end_tile_r; tile_r++) {
-
397 grid_ac[c_offset + tile_c.to_long()][r_offset + tile_r.to_long()] =
-
-
-
-
-
-
-
-
-
-
406 sycl::buffer<Cell, 2> grid_buffer;
-
-
-
-
-
-
-
T value
Definition Helpers.hpp:0
-
A helper class to support the double-subscript idiom for GridAccessors.
Definition AccessorSubscript.hpp:49
-
A generic, two-dimensional index.
Definition GenericID.hpp:32
-
An accessor for the monotile grid.
Definition Grid.hpp:135
-
BaseSubscript operator[](uindex_t i)
Access/Dereference the first dimension.
Definition Grid.hpp:159
-
Cell & operator[](sycl::id< 2 > id)
Access a cell of the grid.
Definition Grid.hpp:179
-
Cell const & operator[](sycl::id< 2 > id)
Access a cell of the grid.
Definition Grid.hpp:167
-
AccessorSubscript< Cell, GridAccessor, access_mode > BaseSubscript
Shorthand for the used subscript type.
Definition Grid.hpp:150
-
static constexpr uindex_t dimensions
The number of dimensions of the underlying grid.
Definition Grid.hpp:140
-
GridAccessor(Grid &grid)
Create a new accessor to the given grid.
Definition Grid.hpp:145
-
A grid class for the tiling architecture.
Definition Grid.hpp:74
-
void copy_to_buffer(sycl::buffer< Cell, 2 > output_buffer)
Copy the contents of the grid into the SYCL buffer.
Definition Grid.hpp:222
-
static constexpr uindex_t dimensions
The number of dimensions of the grid.
Definition Grid.hpp:83
-
uindex_t get_grid_width() const
Return the width, or number of columns, of the grid.
Definition Grid.hpp:244
-
void copy_from_buffer(sycl::buffer< Cell, 2 > input_buffer)
Copy the contents of the SYCL buffer into the grid.
Definition Grid.hpp:199
-
GenericID< uindex_t > get_tile_range() const
Return the range of (central) tiles of the grid.
Definition Grid.hpp:260
-
sycl::event submit_write(sycl::queue queue, uindex_t tile_c, uindex_t tile_r)
Submit a kernel that receives cells from the pipe and writes them to the grid.
Definition Grid.hpp:370
-
sycl::event submit_read(sycl::queue &queue, uindex_t tile_c, uindex_t tile_r, Cell halo_value)
Submit a kernel that sends a tile of the grid into a pipe.
Definition Grid.hpp:295
-
Grid make_similar() const
Create an new, uninitialized grid with the same size as the current one.
Definition Grid.hpp:239
-
Grid(sycl::buffer< Cell, 2 > input_buffer)
Create a new grid with the same size and contents as the given SYCL buffer.
Definition Grid.hpp:111
-
Grid(uindex_t grid_width, uindex_t grid_height)
Create a new, uninitialized grid with the given dimensions.
Definition Grid.hpp:92
-
uindex_t get_grid_height() const
Return the height, or number of rows, of the grid.
Definition Grid.hpp:249
-
Grid(Grid const &other_grid)
Create a new reference to the given grid.
Definition Grid.hpp:124
-
Grid(sycl::range< 2 > range)
Create a new, uninitialized grid with the given dimensions.
Definition Grid.hpp:101
-
Definition AccessorSubscript.hpp:24
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
BOOST_PP_CAT(BOOST_PP_CAT(int, STENCIL_INDEX_WIDTH), _t) index_t
A signed integer of configurable width.
Definition Index.hpp:56
-
-
-
-
-
diff --git a/tiling_2StencilUpdate_8hpp.html b/tiling_2StencilUpdate_8hpp.html
deleted file mode 100644
index e578f82..0000000
--- a/tiling_2StencilUpdate_8hpp.html
+++ /dev/null
@@ -1,183 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tiling/StencilUpdate.hpp File Reference
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
#include "../Concepts.hpp "
-
#include "../GenericID.hpp "
-
#include "../Helpers.hpp "
-
#include "../Index.hpp "
-
#include "../tdv/SinglePassStrategies.hpp "
-
#include "Grid.hpp "
-
#include <chrono>
-
#include <optional>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Go to the source code of this file.
-
-
-class stencil::tiling::StencilUpdateKernel< TransFunc, TDVKernelArgument, n_processing_elements, output_tile_width, output_tile_height, in_pipe, out_pipe >
- A kernel that executes a stencil transition function on a tile. More...
-
-class stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >
- A grid updater that applies an iterative stencil code to a grid. More...
-
-struct stencil::tiling::StencilUpdate< F, n_processing_elements, tile_width, tile_height, TDVStrategy >::Params
- Parameters for the stencil updater. More...
-
-
-
-
-
-
-
diff --git a/tiling_2StencilUpdate_8hpp__incl.map b/tiling_2StencilUpdate_8hpp__incl.map
deleted file mode 100644
index 1564da6..0000000
--- a/tiling_2StencilUpdate_8hpp__incl.map
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tiling_2StencilUpdate_8hpp__incl.md5 b/tiling_2StencilUpdate_8hpp__incl.md5
deleted file mode 100644
index fa2da87..0000000
--- a/tiling_2StencilUpdate_8hpp__incl.md5
+++ /dev/null
@@ -1 +0,0 @@
-fe5fb60d7c9332e125b1317f52f17c13
\ No newline at end of file
diff --git a/tiling_2StencilUpdate_8hpp__incl.png b/tiling_2StencilUpdate_8hpp__incl.png
deleted file mode 100644
index 6077564..0000000
Binary files a/tiling_2StencilUpdate_8hpp__incl.png and /dev/null differ
diff --git a/tiling_2StencilUpdate_8hpp_source.html b/tiling_2StencilUpdate_8hpp_source.html
deleted file mode 100644
index d34281a..0000000
--- a/tiling_2StencilUpdate_8hpp_source.html
+++ /dev/null
@@ -1,521 +0,0 @@
-
-
-
-
-
-
-
-StencilStream: StencilStream/tiling/StencilUpdate.hpp Source File
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- StencilStream v3.0.0
-
- SYCL-based Stencil Simulation Framework Targeting FPGAs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
-
-
-
-
-
-
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
21 #include "../Concepts.hpp"
-
22 #include "../GenericID.hpp"
-
23 #include "../Helpers.hpp"
-
24 #include "../Index.hpp"
-
25 #include "../tdv/SinglePassStrategies.hpp"
-
-
-
-
-
-
-
-
-
56 template <concepts::TransitionFunction TransFunc,
-
57 tdv::single_pass::KernelArgument<TransFunc> TDVKernelArgument,
-
-
59 typename in_pipe,
typename out_pipe>
-
60 requires (n_processing_elements % TransFunc::n_subiterations == 0)
-
-
-
-
63 using Cell =
typename TransFunc::Cell;
-
64 using TDV =
typename TransFunc::TimeDependentValue;
-
-
66 using TDVLocalState =
typename TDVKernelArgument::LocalState;
-
-
68 static constexpr uindex_t stencil_diameter = StencilImpl::diameter;
-
-
70 static constexpr uindex_t halo_radius = TransFunc::stencil_radius * n_processing_elements;
-
-
72 static constexpr uindex_t max_input_tile_width = 2 * halo_radius + output_tile_width;
-
-
74 static constexpr uindex_t input_tile_height = 2 * halo_radius + output_tile_height;
-
-
76 static constexpr uindex_t n_input_cells = max_input_tile_width * input_tile_height;
-
-
-
-
-
-
-
83 static constexpr unsigned long bits_1d =
-
84 std::bit_width(std::max(max_input_tile_width, input_tile_height));
-
85 using index_1d_t = ac_int<bits_1d + 1, true>;
-
86 using uindex_1d_t = ac_int<bits_1d, false>;
-
-
88 static constexpr unsigned long bits_2d = 2 * bits_1d;
-
89 using index_2d_t = ac_int<bits_2d + 1, true>;
-
90 using uindex_2d_t = ac_int<bits_2d, false>;
-
-
-
-
94 static constexpr unsigned long bits_pes =
-
95 std::max<int>(2, std::bit_width(n_processing_elements));
-
96 using index_pes_t = ac_int<bits_pes + 1, true>;
-
97 using uindex_pes_t = ac_int<bits_pes, false>;
-
-
-
-
-
-
128 uindex_t grid_height, Cell halo_value,
-
129 TDVKernelArgument tdv_kernel_argument)
-
130 : trans_func(trans_func), i_iteration(i_iteration), target_i_iteration(target_i_iteration),
-
131 grid_c_offset(grid_c_offset), grid_r_offset(grid_r_offset), grid_width(grid_width),
-
132 grid_height(grid_height), halo_value(halo_value),
-
133 tdv_kernel_argument(tdv_kernel_argument) {
-
134 assert(grid_c_offset % output_tile_width == 0);
-
135 assert(grid_r_offset % output_tile_height == 0);
-
-
-
-
-
-
142 TDVLocalState tdv_local_state(tdv_kernel_argument);
-
-
144 uindex_1d_t input_tile_c = 0;
-
145 uindex_1d_t input_tile_r = 0;
-
-
-
-
-
-
-
-
-
154 [[intel::fpga_memory,
-
155 intel::numbanks(2 * std::bit_ceil(n_processing_elements))]]
Padded<Cell>
-
156 cache[2][input_tile_height][std::bit_ceil(n_processing_elements)][stencil_diameter - 1];
-
157 [[intel::fpga_register]] Cell stencil_buffer[n_processing_elements][stencil_diameter]
-
-
-
160 uindex_1d_t output_tile_section_width =
-
161 std::min(output_tile_width, grid_width - grid_c_offset);
-
162 uindex_1d_t output_tile_section_height =
-
163 std::min(output_tile_height, grid_height - grid_r_offset);
-
164 uindex_1d_t input_tile_section_width = output_tile_section_width + 2 * halo_radius;
-
165 uindex_1d_t input_tile_section_height = output_tile_section_height + 2 * halo_radius;
-
166 uindex_2d_t n_iterations = input_tile_section_width * input_tile_section_height;
-
-
168 for (uindex_2d_t i = 0; i < n_iterations; i++) {
-
169 [[intel::fpga_register]] Cell carry = in_pipe::read();
-
-
-
172 for (uindex_pes_t i_processing_element = 0;
-
173 i_processing_element < uindex_pes_t(n_processing_elements);
-
174 i_processing_element++) {
-
-
-
-
-
-
-
181 for (uindex_stencil_t r = 0; r < uindex_stencil_t(stencil_diameter - 1); r++) {
-
-
183 for (uindex_stencil_t c = 0; c < uindex_stencil_t(stencil_diameter); c++) {
-
184 stencil_buffer[i_processing_element][c][r] =
-
185 stencil_buffer[i_processing_element][c][r + 1];
-
-
-
-
189 index_1d_t rel_input_grid_c =
-
190 index_1d_t(input_tile_c) -
-
191 index_1d_t((stencil_diameter - 1) +
-
192 (n_processing_elements + i_processing_element - 2) *
-
193 TransFunc::stencil_radius);
-
194 index_t input_grid_c = grid_c_offset + rel_input_grid_c.to_int64();
-
195 index_1d_t rel_input_grid_r =
-
196 index_1d_t(input_tile_r) -
-
197 index_1d_t((stencil_diameter - 1) +
-
198 (n_processing_elements + i_processing_element - 2) *
-
199 TransFunc::stencil_radius);
-
200 index_t input_grid_r = grid_r_offset + rel_input_grid_r.to_int64();
-
-
-
-
-
205 for (uindex_stencil_t cache_c = 0; cache_c < uindex_stencil_t(stencil_diameter);
-
-
-
208 if (cache_c == uindex_stencil_t(stencil_diameter - 1)) {
-
209 bool is_halo = (grid_c_offset == 0 && rel_input_grid_c < 0);
-
210 is_halo |= (grid_r_offset == 0 && rel_input_grid_r < 0);
-
211 is_halo |= input_grid_c >= grid_width || input_grid_r >= grid_height;
-
-
213 new_value = is_halo ? halo_value : carry;
-
-
-
216 cache[input_tile_c[0]][input_tile_r][i_processing_element][cache_c]
-
-
-
-
220 stencil_buffer[i_processing_element][cache_c][stencil_diameter - 1] = new_value;
-
-
222 cache[(~input_tile_c)[0]][input_tile_r][i_processing_element][cache_c - 1]
-
-
-
-
-
-
228 (i_iteration + i_processing_element / TransFunc::n_subiterations).to_uint();
-
-
230 (i_processing_element % TransFunc::n_subiterations).to_uint();
-
231 index_t output_grid_c = input_grid_c -
index_t (TransFunc::stencil_radius);
-
232 index_t output_grid_r = input_grid_r -
index_t (TransFunc::stencil_radius);
-
233 TDV tdv = tdv_local_state.get_time_dependent_value(i_processing_element /
-
234 TransFunc::n_subiterations);
-
-
236 pe_iteration, pe_subiteration, tdv,
-
237 stencil_buffer[i_processing_element]);
-
-
239 if (pe_iteration < target_i_iteration) {
-
-
-
242 carry = stencil_buffer[i_processing_element][TransFunc::stencil_radius]
-
243 [TransFunc::stencil_radius];
-
-
-
-
247 bool is_valid_output =
-
248 input_tile_c >= uindex_1d_t((stencil_diameter - 1) * n_processing_elements);
-
-
250 input_tile_r >= uindex_1d_t((stencil_diameter - 1) * n_processing_elements);
-
-
252 if (is_valid_output) {
-
253 out_pipe::write(carry);
-
-
-
256 if (input_tile_r == input_tile_section_height - 1) {
-
-
-
-
-
-
-
-
-
-
-
266 TransFunc trans_func;
-
-
-
-
-
-
-
-
274 TDVKernelArgument tdv_kernel_argument;
-
-
-
-
-
-
-
-
-
-
-
310 using Cell = F::Cell;
-
311 using TDVGlobalState =
typename TDVStrategy::template GlobalState<F, n_processing_elements>;
-
312 using TDVKernelArgument =
typename TDVGlobalState::KernelArgument;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
389 : params(params), n_processed_cells(0), work_events(), walltime(0.0) {}
-
-
-
-
-
-
-
409 using in_pipe = sycl::pipe<class tiling_in_pipe, Cell>;
-
410 using out_pipe = sycl::pipe<class tiling_out_pipe, Cell>;
-
411 using ExecutionKernelImpl =
StencilUpdateKernel <F, TDVKernelArgument, n_processing_elements,
-
412 tile_width, tile_height, in_pipe, out_pipe>;
-
-
-
-
-
-
418 sycl::queue input_kernel_queue =
-
419 sycl::queue(params.
device , {sycl::property::queue::in_order{}});
-
420 sycl::queue output_kernel_queue =
-
421 sycl::queue(params.device, {sycl::property::queue::in_order{}});
-
422 sycl::queue working_queue =
-
423 sycl::queue(params.device, {cl::sycl::property::queue::enable_profiling{},
-
424 sycl::property::queue::in_order{}});
-
-
426 GridImpl swap_grid_a = source_grid.make_similar();
-
427 GridImpl swap_grid_b = source_grid.make_similar();
-
-
429 uindex_t iters_per_pass = n_processing_elements / F::n_subiterations;
-
430 GridImpl *pass_source = &source_grid;
-
431 GridImpl *pass_target = &swap_grid_b;
-
-
433 UID tile_range = source_grid.get_tile_range();
-
434 uindex_t grid_width = source_grid.get_grid_width();
-
435 uindex_t grid_height = source_grid.get_grid_height();
-
-
437 F trans_func = params.transition_function;
-
438 TDVGlobalState tdv_global_state(trans_func, params.iteration_offset, params.n_iterations);
-
-
440 auto walltime_start = std::chrono::high_resolution_clock::now();
-
-
442 uindex_t target_n_iterations = params.iteration_offset + params.n_iterations;
-
443 for (
uindex_t i = params.iteration_offset; i < target_n_iterations; i += iters_per_pass) {
-
444 uindex_t iters_in_this_pass = std::min(iters_per_pass, target_n_iterations - i);
-
-
446 for (
uindex_t i_tile_c = 0; i_tile_c < tile_range.c; i_tile_c++) {
-
447 for (
uindex_t i_tile_r = 0; i_tile_r < tile_range.r; i_tile_r++) {
-
448 pass_source->template submit_read<in_pipe>(input_kernel_queue, i_tile_c,
-
449 i_tile_r, params.halo_value);
-
-
451 auto work_event = working_queue.submit([&](sycl::handler &cgh) {
-
452 TDVKernelArgument tdv_kernel_argument(tdv_global_state, cgh, i,
-
-
454 uindex_t c_offset = i_tile_c * tile_width;
-
455 uindex_t r_offset = i_tile_r * tile_height;
-
-
457 ExecutionKernelImpl exec_kernel(trans_func, i, target_n_iterations,
-
458 c_offset, r_offset, grid_width, grid_height,
-
459 params.halo_value, tdv_kernel_argument);
-
-
461 cgh.single_task<ExecutionKernelImpl>(exec_kernel);
-
-
463 if (params.profiling) {
-
464 work_events.push_back(work_event);
-
-
-
467 pass_target->template submit_write<out_pipe>(output_kernel_queue, i_tile_c,
-
-
-
-
-
472 if (i == params.iteration_offset) {
-
473 pass_source = &swap_grid_b;
-
474 pass_target = &swap_grid_a;
-
-
476 std::swap(pass_source, pass_target);
-
-
-
-
480 if (params.blocking) {
-
481 output_kernel_queue.wait();
-
-
-
484 auto walltime_end = std::chrono::high_resolution_clock::now();
-
485 std::chrono::duration<double> walltime = walltime_end - walltime_start;
-
486 this->walltime += walltime.count();
-
-
-
489 params.n_iterations * source_grid.get_grid_width() * source_grid.get_grid_height();
-
-
-
-
-
-
-
-
-
-
510 double kernel_runtime = 0.0;
-
511 for (sycl::event work_event : work_events) {
-
512 const double timesteps_per_second = 1000000000.0;
-
-
-
515 .get_profiling_info<cl::sycl::info::event_profiling::command_start>()) /
-
516 timesteps_per_second;
-
-
-
519 work_event.get_profiling_info<cl::sycl::info::event_profiling::command_end>()) /
-
520 timesteps_per_second;
-
521 kernel_runtime += end - start;
-
-
523 return kernel_runtime;
-
-
-
-
-
-
-
-
-
-
538 std::vector<sycl::event> work_events;
-
-
-
-
-
-
T value
Definition Helpers.hpp:0
-
A generic, two-dimensional index.
Definition GenericID.hpp:32
-
The stencil buffer.
Definition Stencil.hpp:48
-
ac_int< bits_stencil, false > uindex_stencil_t
An unsigned index type for column and row indices in this stencil.
Definition Stencil.hpp:60
-
ac_int< bits_stencil, true > index_stencil_t
A signed index type for column and row indices in this stencil.
Definition Stencil.hpp:57
-
A grid class for the tiling architecture.
Definition Grid.hpp:74
-
A kernel that executes a stencil transition function on a tile.
Definition StencilUpdate.hpp:61
-
void operator()() const
Execute the configured operations.
Definition StencilUpdate.hpp:141
-
StencilUpdateKernel(TransFunc trans_func, uindex_t i_iteration, uindex_t target_i_iteration, uindex_t grid_c_offset, uindex_t grid_r_offset, uindex_t grid_width, uindex_t grid_height, Cell halo_value, TDVKernelArgument tdv_kernel_argument)
Create and configure the execution kernel.
Definition StencilUpdate.hpp:126
-
A grid updater that applies an iterative stencil code to a grid.
Definition StencilUpdate.hpp:308
-
Grid< Cell, tile_width, tile_height, halo_radius > GridImpl
A shorthand for the used and supported grid type.
Definition StencilUpdate.hpp:323
-
double get_walltime() const
Return the accumulated runtime of the updater, measured from the host side.
Definition StencilUpdate.hpp:532
-
StencilUpdate(Params params)
Create a new stencil updater object.
Definition StencilUpdate.hpp:388
-
uindex_t get_n_processed_cells() const
Return the accumulated total number of cells processed by this updater.
Definition StencilUpdate.hpp:501
-
static constexpr uindex_t halo_radius
The radius of an input's tile halo.
Definition StencilUpdate.hpp:318
-
Params & get_params()
Return a reference to the parameters.
Definition StencilUpdate.hpp:396
-
GridImpl operator()(GridImpl &source_grid)
Compute a new grid based on the source grid, using the configured transition function.
Definition StencilUpdate.hpp:408
-
double get_kernel_runtime() const
Return the accumulated total runtime of the execution kernel.
Definition StencilUpdate.hpp:509
-
A technical definition of a stencil transition function.
Definition Concepts.hpp:62
-
Requirements for a TDV implementation strategy.
Definition SinglePassStrategies.hpp:99
-
Definition AccessorSubscript.hpp:24
-
GenericID< uindex_t > UID
An unsigned, two-dimensional index.
Definition GenericID.hpp:80
-
BOOST_PP_CAT(BOOST_PP_CAT(uint, STENCIL_INDEX_WIDTH), _t) uindex_t
An unsigned integer of configurable width.
Definition Index.hpp:42
-
GenericID< index_t > ID
A signed, two-dimensional index.
Definition GenericID.hpp:75
-
BOOST_PP_CAT(BOOST_PP_CAT(int, STENCIL_INDEX_WIDTH), _t) index_t
A signed integer of configurable width.
Definition Index.hpp:56
-
A container with padding to the next power of two.
Definition Helpers.hpp:45
-
A TDV implementation strategy that inlines the TDV function into the transition function.
Definition SinglePassStrategies.hpp:114
-
Parameters for the stencil updater.
Definition StencilUpdate.hpp:328
-
bool blocking
Should the stencil updater block until completion, or return immediately after all kernels have been ...
Definition StencilUpdate.hpp:373
-
uindex_t iteration_offset
The iteration index offset.
Definition StencilUpdate.hpp:347
-
uindex_t n_iterations
The number of iterations to compute.
Definition StencilUpdate.hpp:352
-
Cell halo_value
The cell value to present for cells outside of the grid.
Definition StencilUpdate.hpp:339
-
F transition_function
An instance of the transition function type.
Definition StencilUpdate.hpp:334
-
bool profiling
Enable profiling.
Definition StencilUpdate.hpp:382
-
sycl::device device
The device to use for computations.
Definition StencilUpdate.hpp:362
-
-
-
-
-
-