From b34e2a396bb73b5e4572b09184dc948bb86a541b Mon Sep 17 00:00:00 2001 From: <> Date: Sat, 11 Nov 2023 03:20:24 +0000 Subject: [PATCH] Deployed b9b8ab4 with MkDocs version: 1.5.3 --- .nojekyll | 0 404.html | 944 +++ analogical/aggregation__logic_8h/index.html | 1023 +++ .../aggregation__logic_8h_source/index.html | 1012 +++ analogical/annotated/index.html | 1002 +++ analogical/class_member_enums/index.html | 963 +++ analogical/class_member_functions/index.html | 1231 +++ analogical/class_member_typedefs/index.html | 1005 +++ analogical/class_member_variables/index.html | 1014 +++ analogical/class_members/index.html | 1260 ++++ .../index.html | 1105 +++ .../index.html | 1131 +++ analogical/classana_1_1dataflow/index.html | 2683 +++++++ .../classana_1_1dataset_1_1column/index.html | 1291 ++++ .../classana_1_1dataset_1_1input/index.html | 1397 ++++ .../classana_1_1dataset_1_1player/index.html | 1336 ++++ .../classana_1_1dataset_1_1reader/index.html | 966 +++ .../classana_1_1dataset_1_1source/index.html | 1048 +++ analogical/classana_1_1delayed/index.html | 1595 ++++ .../classana_1_1delayed_1_1varied/index.html | 1432 ++++ analogical/classana_1_1lazy/index.html | 1955 +++++ .../classana_1_1lazy_1_1varied/index.html | 1417 ++++ analogical/classes/index.html | 1090 +++ analogical/column__definition_8h/index.html | 1023 +++ .../column__definition_8h_source/index.html | 1023 +++ analogical/dataflow_8h/index.html | 1041 +++ analogical/dataflow_8h_source/index.html | 1522 ++++ analogical/dataset_8h/index.html | 1043 +++ analogical/dataset_8h_source/index.html | 1021 +++ analogical/dataset__column_8h/index.html | 1026 +++ .../dataset__column_8h_source/index.html | 1021 +++ analogical/dataset__input_8h/index.html | 1030 +++ .../dataset__input_8h_source/index.html | 1047 +++ analogical/dataset__player_8h/index.html | 1026 +++ .../dataset__player_8h_source/index.html | 999 +++ analogical/delayed_8h/index.html | 1024 +++ analogical/delayed_8h_source/index.html | 1295 ++++ analogical/delayed__varied_8h/index.html | 1024 +++ .../delayed__varied_8h_source/index.html | 1184 +++ .../index.html | 1035 +++ .../index.html | 995 +++ .../index.html | 995 +++ analogical/files/index.html | 985 +++ analogical/functions/index.html | 963 +++ analogical/hierarchy/index.html | 1020 +++ analogical/lazy_8h/index.html | 1233 +++ analogical/lazy_8h_source/index.html | 1301 ++++ analogical/lazy__varied_8h/index.html | 1161 +++ analogical/lazy__varied_8h_source/index.html | 1229 +++ analogical/links/index.html | 978 +++ analogical/macros/index.html | 1000 +++ analogical/modules/index.html | 963 +++ analogical/namespace_member_enums/index.html | 963 +++ .../namespace_member_functions/index.html | 982 +++ .../namespace_member_typedefs/index.html | 993 +++ .../namespace_member_variables/index.html | 995 +++ analogical/namespace_members/index.html | 1030 +++ analogical/namespaceaggregation/index.html | 965 +++ analogical/namespaceana/index.html | 1327 ++++ .../namespaceana_1_1aggregation/index.html | 995 +++ analogical/namespaceana_1_1column/index.html | 995 +++ analogical/namespaceana_1_1dataset/index.html | 1015 +++ .../namespaceana_1_1op__check/index.html | 965 +++ analogical/namespacecolumn/index.html | 965 +++ analogical/namespacelockstep/index.html | 965 +++ analogical/namespaces/index.html | 977 +++ analogical/namespacestd/index.html | 965 +++ analogical/namespacesystematic/index.html | 965 +++ analogical/pages/index.html | 963 +++ .../structana_1_1dataset_1_1first/index.html | 1067 +++ .../structana_1_1is__unique__ptr/index.html | 967 +++ .../index.html | 967 +++ analogical/variables/index.html | 963 +++ assets/agg_book_sels.png | Bin 0 -> 250726 bytes assets/dataflow.png | Bin 0 -> 74849 bytes assets/hww_hists.png | Bin 0 -> 466064 bytes assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.81fa17fe.min.js | 29 + assets/javascripts/bundle.81fa17fe.min.js.map | 7 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.el.min.js | 1 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.he.min.js | 1 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.f886a092.min.js | 42 + .../workers/search.f886a092.min.js.map | 7 + assets/mll_varied.png | Bin 0 -> 26139 bytes assets/pth_varied.png | Bin 0 -> 27760 bytes assets/sel_book_aggs.png | Bin 0 -> 169543 bytes assets/stylesheets/main.4b4a2bd9.min.css | 1 + assets/stylesheets/main.4b4a2bd9.min.css.map | 1 + assets/stylesheets/palette.356b1318.min.css | 1 + .../stylesheets/palette.356b1318.min.css.map | 1 + assets/variation.png | Bin 0 -> 125896 bytes demo/hww/notebook/index.html | 1265 ++++ features/aggregation/aggregation/index.html | 1260 ++++ features/aggregation/experiment/index.html | 1071 +++ features/basic/index.html | 1088 +++ features/column/column/index.html | 1466 ++++ features/column/computation/index.html | 1076 +++ features/dataflow/dataflow/index.html | 1063 +++ features/lazy/index.html | 1016 +++ features/multithread/index.html | 1022 +++ features/selection/cutflow/index.html | 1092 +++ features/selection/selection/index.html | 1200 +++ features/sensitivity/variation/index.html | 1176 +++ features/sensitivity/vary/index.html | 1249 +++ home/design/index.html | 1029 +++ home/installation/index.html | 1172 +++ home/quick/index.html | 1032 +++ index.html | 1013 +++ javascripts/mathjax.js | 16 + sitemap.xml | 3 + sitemap.xml.gz | Bin 0 -> 127 bytes stylesheets/extra.css | 3 + 144 files changed, 106698 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 analogical/aggregation__logic_8h/index.html create mode 100644 analogical/aggregation__logic_8h_source/index.html create mode 100644 analogical/annotated/index.html create mode 100644 analogical/class_member_enums/index.html create mode 100644 analogical/class_member_functions/index.html create mode 100644 analogical/class_member_typedefs/index.html create mode 100644 analogical/class_member_variables/index.html create mode 100644 analogical/class_members/index.html create mode 100644 analogical/classana_1_1aggregation_1_1logic_3_01T_07Obs_8_8_8_08_4/index.html create mode 100644 analogical/classana_1_1column_1_1definition_3_01Ret_07Vals_8_8_8_08_4/index.html create mode 100644 analogical/classana_1_1dataflow/index.html create mode 100644 analogical/classana_1_1dataset_1_1column/index.html create mode 100644 analogical/classana_1_1dataset_1_1input/index.html create mode 100644 analogical/classana_1_1dataset_1_1player/index.html create mode 100644 analogical/classana_1_1dataset_1_1reader/index.html create mode 100644 analogical/classana_1_1dataset_1_1source/index.html create mode 100644 analogical/classana_1_1delayed/index.html create mode 100644 analogical/classana_1_1delayed_1_1varied/index.html create mode 100644 analogical/classana_1_1lazy/index.html create mode 100644 analogical/classana_1_1lazy_1_1varied/index.html create mode 100644 analogical/classes/index.html create mode 100644 analogical/column__definition_8h/index.html create mode 100644 analogical/column__definition_8h_source/index.html create mode 100644 analogical/dataflow_8h/index.html create mode 100644 analogical/dataflow_8h_source/index.html create mode 100644 analogical/dataset_8h/index.html create mode 100644 analogical/dataset_8h_source/index.html create mode 100644 analogical/dataset__column_8h/index.html create mode 100644 analogical/dataset__column_8h_source/index.html create mode 100644 analogical/dataset__input_8h/index.html create mode 100644 analogical/dataset__input_8h_source/index.html create mode 100644 analogical/dataset__player_8h/index.html create mode 100644 analogical/dataset__player_8h_source/index.html create mode 100644 analogical/delayed_8h/index.html create mode 100644 analogical/delayed_8h_source/index.html create mode 100644 analogical/delayed__varied_8h/index.html create mode 100644 analogical/delayed__varied_8h_source/index.html create mode 100644 analogical/dir_84eaba6853347baf08a3d8bdb9ae76ed/index.html create mode 100644 analogical/dir_94c1dbed684461364b7a5c1bafc6ad0d/index.html create mode 100644 analogical/dir_d44c64559bbebec7f509842c48db8b23/index.html create mode 100644 analogical/files/index.html create mode 100644 analogical/functions/index.html create mode 100644 analogical/hierarchy/index.html create mode 100644 analogical/lazy_8h/index.html create mode 100644 analogical/lazy_8h_source/index.html create mode 100644 analogical/lazy__varied_8h/index.html create mode 100644 analogical/lazy__varied_8h_source/index.html create mode 100644 analogical/links/index.html create mode 100644 analogical/macros/index.html create mode 100644 analogical/modules/index.html create mode 100644 analogical/namespace_member_enums/index.html create mode 100644 analogical/namespace_member_functions/index.html create mode 100644 analogical/namespace_member_typedefs/index.html create mode 100644 analogical/namespace_member_variables/index.html create mode 100644 analogical/namespace_members/index.html create mode 100644 analogical/namespaceaggregation/index.html create mode 100644 analogical/namespaceana/index.html create mode 100644 analogical/namespaceana_1_1aggregation/index.html create mode 100644 analogical/namespaceana_1_1column/index.html create mode 100644 analogical/namespaceana_1_1dataset/index.html create mode 100644 analogical/namespaceana_1_1op__check/index.html create mode 100644 analogical/namespacecolumn/index.html create mode 100644 analogical/namespacelockstep/index.html create mode 100644 analogical/namespaces/index.html create mode 100644 analogical/namespacestd/index.html create mode 100644 analogical/namespacesystematic/index.html create mode 100644 analogical/pages/index.html create mode 100644 analogical/structana_1_1dataset_1_1first/index.html create mode 100644 analogical/structana_1_1is__unique__ptr/index.html create mode 100644 analogical/structana_1_1is__unique__ptr_3_01std_1_1unique__ptr_3_01T_01_4_01_4/index.html create mode 100644 analogical/variables/index.html create mode 100644 assets/agg_book_sels.png create mode 100644 assets/dataflow.png create mode 100644 assets/hww_hists.png create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.81fa17fe.min.js create mode 100644 assets/javascripts/bundle.81fa17fe.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.f886a092.min.js create mode 100644 assets/javascripts/workers/search.f886a092.min.js.map create mode 100644 assets/mll_varied.png create mode 100644 assets/pth_varied.png create mode 100644 assets/sel_book_aggs.png create mode 100644 assets/stylesheets/main.4b4a2bd9.min.css create mode 100644 assets/stylesheets/main.4b4a2bd9.min.css.map create mode 100644 assets/stylesheets/palette.356b1318.min.css create mode 100644 assets/stylesheets/palette.356b1318.min.css.map create mode 100644 assets/variation.png create mode 100644 demo/hww/notebook/index.html create mode 100644 features/aggregation/aggregation/index.html create mode 100644 features/aggregation/experiment/index.html create mode 100644 features/basic/index.html create mode 100644 features/column/column/index.html create mode 100644 features/column/computation/index.html create mode 100644 features/dataflow/dataflow/index.html create mode 100644 features/lazy/index.html create mode 100644 features/multithread/index.html create mode 100644 features/selection/cutflow/index.html create mode 100644 features/selection/selection/index.html create mode 100644 features/sensitivity/variation/index.html create mode 100644 features/sensitivity/vary/index.html create mode 100644 home/design/index.html create mode 100644 home/installation/index.html create mode 100644 home/quick/index.html create mode 100644 index.html create mode 100644 javascripts/mathjax.js create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz create mode 100644 stylesheets/extra.css diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..a7d10d8f --- /dev/null +++ b/404.html @@ -0,0 +1,944 @@ + + + + + + + + + + + + + + + + + + + Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/aggregation__logic_8h/index.html b/analogical/aggregation__logic_8h/index.html new file mode 100644 index 00000000..bc1ac175 --- /dev/null +++ b/analogical/aggregation__logic_8h/index.html @@ -0,0 +1,1023 @@ + + + + + + + + + + + + + + + + + + + File aggregation_logic.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File aggregation_logic.h

+

FileList > ana > interface > aggregation_logic.h

+

Go to the source code of this file

+
    +
  • #include "aggregation.h"
  • +
  • #include "aggregation_output.h"
  • +
  • #include "column.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + +
TypeName
namespaceana
+

Classes

+ + + + + + + + + + + + + +
TypeName
classlogic< T(Obs...)> <typename T, Obs>
Counter output to be filled with columns using arbitrary logic.
+
+

The documentation for this class was generated from the following file include/ana/interface/aggregation_logic.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/aggregation__logic_8h_source/index.html b/analogical/aggregation__logic_8h_source/index.html new file mode 100644 index 00000000..24f93e62 --- /dev/null +++ b/analogical/aggregation__logic_8h_source/index.html @@ -0,0 +1,1012 @@ + + + + + + + + + + + + + + + + + + + File aggregation_logic.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File aggregation_logic.h

+

File List > ana > interface > aggregation_logic.h

+

Go to the documentation of this file

+
#pragma once
+
+#include "aggregation.h"
+#include "aggregation_output.h"
+
+namespace ana {
+
+template <typename T, typename... Obs>
+class aggregation::logic<T(Obs...)> : public aggregation::output<T> {
+
+public:
+  using vartup_type = std::tuple<ana::variable<Obs>...>;
+
+public:
+  logic() = default;
+  virtual ~logic() = default;
+
+  virtual void fill(ana::observable<Obs>... observables, double w) = 0;
+  virtual void count(double w) final override;
+
+  template <typename... Vals> void enter_columns(term<Vals> const &...cols);
+
+protected:
+  std::vector<vartup_type> m_fills;
+};
+
+} // namespace ana
+
+#include "column.h"
+
+template <typename T, typename... Obs>
+template <typename... Vals>
+void ana::aggregation::logic<T(Obs...)>::enter_columns(
+    term<Vals> const &...cols) {
+  static_assert(sizeof...(Obs) == sizeof...(Vals),
+                "dimension mis-match between filled variables & columns.");
+  m_fills.emplace_back(cols...);
+}
+
+template <typename T, typename... Obs>
+void ana::aggregation::logic<T(Obs...)>::count(double w) {
+  for (unsigned int ifill = 0; ifill < m_fills.size(); ++ifill) {
+    std::apply(
+        [this, w](const variable<Obs> &...obs) { this->fill(obs..., w); },
+        m_fills[ifill]);
+  }
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/annotated/index.html b/analogical/annotated/index.html new file mode 100644 index 00000000..d69d234c --- /dev/null +++ b/analogical/annotated/index.html @@ -0,0 +1,1002 @@ + + + + + + + + + + + + + + + + + + + Class List - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class List

+

Here are the classes, structs, unions and interfaces with brief descriptions:

+ + + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/class_member_enums/index.html b/analogical/class_member_enums/index.html new file mode 100644 index 00000000..bc04d51f --- /dev/null +++ b/analogical/class_member_enums/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + Class Member Enums - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class Member Enums

+

Nothing related to Class Member Enums found.

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/class_member_functions/index.html b/analogical/class_member_functions/index.html new file mode 100644 index 00000000..28f8c31b --- /dev/null +++ b/analogical/class_member_functions/index.html @@ -0,0 +1,1231 @@ + + + + + + + + + + + + + + + + + + + Class Member Functions - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class Member Functions

+

a

+ +

b

+ +

c

+ +

d

+ +

e

+ +

f

+ +

g

+ +

h

+ +

i

+ +

l

+ +

m

+ +

n

+ +

o

+ +

p

+ +

r

+ +

s

+ +

v

+ +

w

+ +

~

+ + + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/class_member_typedefs/index.html b/analogical/class_member_typedefs/index.html new file mode 100644 index 00000000..f2560078 --- /dev/null +++ b/analogical/class_member_typedefs/index.html @@ -0,0 +1,1005 @@ + + + + + + + + + + + + + + + + + + + Class Member Typedefs - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/class_member_variables/index.html b/analogical/class_member_variables/index.html new file mode 100644 index 00000000..471a617d --- /dev/null +++ b/analogical/class_member_variables/index.html @@ -0,0 +1,1014 @@ + + + + + + + + + + + + + + + + + + + Class Member Variables - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class Member Variables

+

m

+ +

n

+ + + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/class_members/index.html b/analogical/class_members/index.html new file mode 100644 index 00000000..7d3c9f1e --- /dev/null +++ b/analogical/class_members/index.html @@ -0,0 +1,1260 @@ + + + + + + + + + + + + + + + + + + + Class Members - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class Members

+

a

+ +

b

+ +

c

+ +

d

+ +

e

+ +

f

+ +

g

+ +

h

+ +

i

+ +

l

+ +

m

+ +

n

+ +

o

+ +

p

+ +

r

+ +

s

+ +

v

+ +

w

+ +

~

+ + + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1aggregation_1_1logic_3_01T_07Obs_8_8_8_08_4/index.html b/analogical/classana_1_1aggregation_1_1logic_3_01T_07Obs_8_8_8_08_4/index.html new file mode 100644 index 00000000..3eb28d30 --- /dev/null +++ b/analogical/classana_1_1aggregation_1_1logic_3_01T_07Obs_8_8_8_08_4/index.html @@ -0,0 +1,1105 @@ + + + + + + + + + + + + + + + + + + + Class ana::aggregation::logic< T(Obs...)> - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::aggregation::logic< T(Obs...)>

+

template <typename T typename T, typename... Obs>

+

ClassList > ana > aggregation > logic< T(Obs...)>

+

Counter output to be filled with columns using arbitrary logic. More...

+
    +
  • #include <aggregation_logic.h>
  • +
+

Inherits the following classes: aggregation::output< T >

+

Public Types

+ + + + + + + + + + + + + +
TypeName
typedef std::tuple< ana::variable< Obs >... >vartup_type
+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
virtual voidcount (double w) override
voidenter_columns (term< Vals > const &... cols)
virtual voidfill (ana::observable< Obs >... observables, double w) = 0
Perform the counting operation for an entry.
logic () = default
virtual~logic () = default
+

Protected Attributes

+ + + + + + + + + + + + + +
TypeName
std::vector< vartup_type >m_fills
+

Detailed Description

+

Template parameters:

+
    +
  • Obs... Input column data types.
  • +
+

Public Types Documentation

+

typedef vartup_type

+
using ana::aggregation::logic< T(Obs...)>::vartup_type =  std::tuple<ana::variable<Obs>...>;
+
+

Public Functions Documentation

+

function count

+
virtual void ana::aggregation::logic< T(Obs...)>::count (
+    double w
+) override
+
+

function enter_columns

+
template<typename... Vals>
+void ana::aggregation::logic< T(Obs...)>::enter_columns (
+    term< Vals > const &... cols
+) 
+
+

function fill

+

Perform the counting operation for an entry. +

virtual void ana::aggregation::logic< T(Obs...)>::fill (
+    ana::observable< Obs >... observables,
+    double w
+) = 0
+

+

Parameters:

+
    +
  • observables The observable of each input column.
  • +
  • weight The weight value of the booked selection for the passed entry.
  • +
+

This operation is performed N times for a passed entry, where N is the number of fill calls made to its lazy operation, each with its the set of input columns as provided then.

+

function logic

+
ana::aggregation::logic< T(Obs...)>::logic () = default
+
+

function ~logic

+
virtual ana::aggregation::logic< T(Obs...)>::~logic () = default
+
+

Protected Attributes Documentation

+

variable m_fills

+
std::vector<vartup_type> ana::aggregation::logic< T(Obs...)>::m_fills;
+
+
+

The documentation for this class was generated from the following file include/ana/interface/aggregation_logic.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1column_1_1definition_3_01Ret_07Vals_8_8_8_08_4/index.html b/analogical/classana_1_1column_1_1definition_3_01Ret_07Vals_8_8_8_08_4/index.html new file mode 100644 index 00000000..45858003 --- /dev/null +++ b/analogical/classana_1_1column_1_1definition_3_01Ret_07Vals_8_8_8_08_4/index.html @@ -0,0 +1,1131 @@ + + + + + + + + + + + + + + + + + + + Class ana::column::definition< Ret(Vals...)> - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::column::definition< Ret(Vals...)>

+

template <typename Ret typename Ret, typename... Vals>

+

ClassList > ana > column > definition< Ret(Vals...)>

+

Column with user-defined return value type and evaluation dataset. More...

+
    +
  • #include <column_definition.h>
  • +
+

Inherits the following classes: column::calculation< Ret >

+

Public Types

+ + + + + + + + + + + + + + + + + +
TypeName
typedef std::tuple< observable< Vals >... >obstuple_type
typedef std::tuple< variable< Vals >... >vartuple_type
+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
virtual Retcalculate () override const
definition () = default
virtual Retevaluate (observable< Vals >... args) const = 0
voidset_arguments (const cell< Ins > &... args)
virtual~definition () = default
+

Protected Attributes

+ + + + + + + + + + + + + +
TypeName
vartuple_typem_arguments
+

Protected Functions

+ + + + + + + + + + + + + +
TypeName
definition (Args &&... args)
+

Detailed Description

+

Template parameters:

+
    +
  • T return value type.
  • +
+

Public Types Documentation

+

typedef obstuple_type

+
using ana::column::definition< Ret(Vals...)>::obstuple_type =  std::tuple<observable<Vals>...>;
+
+

typedef vartuple_type

+
using ana::column::definition< Ret(Vals...)>::vartuple_type =  std::tuple<variable<Vals>...>;
+
+

Public Functions Documentation

+

function calculate

+
virtual Ret ana::column::definition< Ret(Vals...)>::calculate () override const
+
+

function definition [1/2]

+
ana::column::definition< Ret(Vals...)>::definition () = default
+
+

function evaluate

+
virtual Ret ana::column::definition< Ret(Vals...)>::evaluate (
+    observable< Vals >... args
+) const = 0
+
+

function set_arguments

+
template<typename... Ins>
+void ana::column::definition< Ret(Vals...)>::set_arguments (
+    const cell< Ins > &... args
+) 
+
+

function ~definition

+
virtual ana::column::definition< Ret(Vals...)>::~definition () = default
+
+

Protected Attributes Documentation

+

variable m_arguments

+
vartuple_type ana::column::definition< Ret(Vals...)>::m_arguments;
+
+

Protected Functions Documentation

+

function definition [2/2]

+
template<typename... Args>
+ana::column::definition< Ret(Vals...)>::definition (
+    Args &&... args
+) 
+
+
+

The documentation for this class was generated from the following file include/ana/interface/column_definition.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1dataflow/index.html b/analogical/classana_1_1dataflow/index.html new file mode 100644 index 00000000..db5e552c --- /dev/null +++ b/analogical/classana_1_1dataflow/index.html @@ -0,0 +1,2683 @@ + + + + + + + + + + + + + + + + + + + + + + + dataflow - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::dataflow

+

ClassList > ana > dataflow

+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
autoagg (Args &&... args)
autochannel (const std::string & name)
autochannel (const std::string & name, F callable)
autochannel (const std::string & name, F callable)
autoconstant (Val const & val)
Define a constant.
autoconstant (Args &&... args)
dataflow ()
Default constructor.
dataflow (Kwd kwarg)
Constructor with one keyword argument.
dataflow (Kwd1 kwarg1, Kwd2 kwarg2)
dataflow (Kwd1 kwarg1, Kwd2 kwarg2, Kwd3 kwarg3)
dataflow (dataflow const &) = delete
dataflow (dataflow &&) = default
autodefine (Args &&... args)
Define a custom definition or representation.
autodefine (F const & callable)
Define an equation.
autofilter (const std::string & name)
autofilter (const std::string & name, F callable)
autoopen (Args &&... args)
Open a dataset input.
dataflow &operator= (dataflow const &) = delete
dataflow &operator= (dataflow &&) = default
autoselect (const std::string & name, F callable)
autovary (lazy< column::template constant< Val > > const & nom, Vars const &... vars)
autovary (delayed< column::template evaluator< Col > > && nom, Vars const &... vars)
autoweight (const std::string & name)
autoweight (const std::string & name, F callable)
~dataflow () = default
+

Protected Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
boolm_analyzed
multithread::configurationm_mtcfg
doublem_norm
long longm_nrows
std::vector< std::unique_ptr< operation > >m_operations
dataset::partitionm_partition
lockstep::node< dataset::range >m_parts
lockstep::node< dataset::player >m_players
lockstep::node< dataset::processor >m_processors
std::unique_ptr< dataset::source >m_source
doublem_weight
+

Protected Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
voidaccept_kwarg (Kwd const & kwarg)
voidadd_operation (lockstep::node< operation > act)
voidadd_operation (std::unique_ptr< operation > act)
voidanalyze ()
autoapply_selection (delayed< selection::applicator< Eqn > > const & calc, lazy< Cols > const &... columns)
autochannel (lazy< selection > const & prev, const std::string & name, F callable)
autochannel (lazy< selection > const & prev, const std::string & name)
autoevaluate_column (delayed< column::evaluator< Def > > const & calc, lazy< Cols > const &... columns)
autoread (dataset::input< DS > & ds, const std::string & name)
voidreset ()
autoselect (lazy< selection > const & prev, const std::string & name)
autoselect (lazy< selection > const & prev, const std::string & name, F callable)
autoselect_aggregation (delayed< aggregation::booker< Cnt > > const & bkr, lazy< selection > const & sel)
autoselect_aggregations (delayed< aggregation::booker< Cnt > > const & bkr, lazy< Sels > const &... sels)
voidvary_constant (Lazy & syst, const std::string & name, std::tuple< Args... > args)
voidvary_evaluator (Eval & syst, const std::string & name, std::tuple< Args... > args)
+

Public Functions Documentation

+

function agg

+
template<typename Cnt typename Cnt, typename... Args>
+auto ana::dataflow::agg (
+    Args &&... args
+) 
+
+

function channel [1/5]

+
inline auto ana::dataflow::channel (
+    const std::string & name
+) 
+
+

function channel [2/5]

+
template<typename F typename F>
+auto ana::dataflow::channel (
+    const std::string & name,
+    F callable
+) 
+
+

function channel [3/5]

+
template<typename Sel typename Sel, typename F typename F>
+auto ana::dataflow::channel (
+    const std::string & name,
+    F callable
+) 
+
+

function constant [1/2]

+

Define a constant. +

template<typename Val typename Val>
+auto ana::dataflow::constant (
+    Val const & val
+) 
+

+

Template parameters:

+
    +
  • Val Constant data type.
  • +
+

Parameters:

+
    +
  • value Constant data value.
  • +
+

Returns:

+

The lazy defined constant.

+

function constant [2/2]

+
template<typename Val typename Val, typename... Args>
+auto ana::dataflow::constant (
+    Args &&... args
+) 
+
+

function dataflow [1/6]

+
inline ana::dataflow::dataflow () 
+
+

function dataflow [2/6]

+

Constructor with one keyword argument. +

template<typename Kwd typename Kwd>
+ana::dataflow::dataflow (
+    Kwd kwarg
+) 
+

+

Template parameters:

+
    +
  • Kwd Keyword argument type.
  • +
+

A keyword argument can be: +* ana::sample::weight(float) +* ana::dataset::first(unsigned int) +* ana::multithread::enable(unsigned int)

+

function dataflow [3/6]

+
template<typename Kwd1 typename Kwd1, typename Kwd2 typename Kwd2>
+ana::dataflow::dataflow (
+    Kwd1 kwarg1,
+    Kwd2 kwarg2
+) 
+
+

function dataflow [4/6]

+
template<typename Kwd1 typename Kwd1, typename Kwd2 typename Kwd2, typename Kwd3 typename Kwd3>
+ana::dataflow::dataflow (
+    Kwd1 kwarg1,
+    Kwd2 kwarg2,
+    Kwd3 kwarg3
+) 
+
+

function dataflow [5/6]

+
ana::dataflow::dataflow (
+    dataflow const &
+) = delete
+
+

function dataflow [6/6]

+
ana::dataflow::dataflow (
+    dataflow &&
+) = default
+
+

function define [1/2]

+

Define a custom definition or representation. +

template<typename Def typename Def, typename... Args>
+auto ana::dataflow::define (
+    Args &&... args
+) 
+

+

Template parameters:

+
    +
  • Def The full definition/representation user-implementation.
  • +
+

Parameters:

+
    +
  • args Constructor arguments for the definition/representation.
  • +
+

Returns:

+

The lazy definition "evaluator" to be evaluated with input columns.

+

function define [2/2]

+

Define an equation. +

template<typename F typename F>
+auto ana::dataflow::define (
+    F const & callable
+) 
+

+

Template parameters:

+
    +
  • F Any function/functor/callable type.
  • +
+

Parameters:

+
    +
  • callable The function/functor/callable object used as the expression.
  • +
+

Returns:

+

The lazy equation "evaluator" to be evaluated with input columns.

+

function filter [1/2]

+
inline auto ana::dataflow::filter (
+    const std::string & name
+) 
+
+

function filter [2/2]

+
template<typename F typename F>
+auto ana::dataflow::filter (
+    const std::string & name,
+    F callable
+) 
+
+

function open

+

Open a dataset input. +

template<typename DS typename DS, typename... Args>
+auto ana::dataflow::open (
+    Args &&... args
+) 
+

+

Template parameters:

+
    +
  • DS Dataset input.
  • +
  • Args... Dataset input constructor arguments
  • +
+

Returns:

+

Dataset reader

+

function operator=

+
dataflow & ana::dataflow::operator= (
+    dataflow const &
+) = delete
+
+

function operator=

+
dataflow & ana::dataflow::operator= (
+    dataflow &&
+) = default
+
+

function select [1/3]

+
template<typename Sel typename Sel, typename F typename F>
+auto ana::dataflow::select (
+    const std::string & name,
+    F callable
+) 
+
+

function vary [1/2]

+
template<typename Val typename Val, typename... Vars>
+auto ana::dataflow::vary (
+    lazy < column::template constant < Val > > const & nom,
+    Vars const &... vars
+) 
+
+

function vary [2/2]

+
template<typename Col typename Col, typename... Vars>
+auto ana::dataflow::vary (
+    delayed < column::template evaluator< Col > > && nom,
+    Vars const &... vars
+) 
+
+

function weight [1/2]

+
inline auto ana::dataflow::weight (
+    const std::string & name
+) 
+
+

function weight [2/2]

+
template<typename F typename F>
+auto ana::dataflow::weight (
+    const std::string & name,
+    F callable
+) 
+
+

function ~dataflow

+
ana::dataflow::~dataflow () = default
+
+

Protected Attributes Documentation

+

variable m_analyzed

+
bool ana::dataflow::m_analyzed;
+
+

variable m_mtcfg

+
multithread::configuration ana::dataflow::m_mtcfg;
+
+

variable m_norm

+
double ana::dataflow::m_norm;
+
+

variable m_nrows

+
long long ana::dataflow::m_nrows;
+
+

variable m_operations

+
std::vector<std::unique_ptr<operation> > ana::dataflow::m_operations;
+
+

variable m_partition

+
dataset::partition ana::dataflow::m_partition;
+
+

variable m_parts

+
lockstep::node<dataset::range> ana::dataflow::m_parts;
+
+

variable m_players

+
lockstep::node<dataset::player> ana::dataflow::m_players;
+
+

variable m_processors

+
lockstep::node<dataset::processor> ana::dataflow::m_processors;
+
+

variable m_source

+
std::unique_ptr<dataset::source> ana::dataflow::m_source;
+
+

variable m_weight

+
double ana::dataflow::m_weight;
+
+

Protected Functions Documentation

+

function accept_kwarg

+
template<typename Kwd typename Kwd>
+void ana::dataflow::accept_kwarg (
+    Kwd const & kwarg
+) 
+
+

function add_operation [1/2]

+
inline void ana::dataflow::add_operation (
+    lockstep::node< operation > act
+) 
+
+

function add_operation [2/2]

+
inline void ana::dataflow::add_operation (
+    std::unique_ptr< operation > act
+) 
+
+

function analyze

+
inline void ana::dataflow::analyze () 
+
+

function apply_selection

+
template<typename Eqn typename Eqn, typename... Cols>
+auto ana::dataflow::apply_selection (
+    delayed < selection::applicator< Eqn > > const & calc,
+    lazy < Cols > const &... columns
+) 
+
+

function channel [4/5]

+
template<typename Sel typename Sel, typename F typename F>
+auto ana::dataflow::channel (
+    lazy < selection > const & prev,
+    const std::string & name,
+    F callable
+) 
+
+

function channel [5/5]

+
template<typename Sel typename Sel>
+auto ana::dataflow::channel (
+    lazy < selection > const & prev,
+    const std::string & name
+) 
+
+

function evaluate_column

+
template<typename Def typename Def, typename... Cols>
+auto ana::dataflow::evaluate_column (
+    delayed < column::evaluator< Def > > const & calc,
+    lazy < Cols > const &... columns
+) 
+
+

function read

+
template<typename DS typename DS, typename Val typename Val>
+auto ana::dataflow::read (
+    dataset::input < DS > & ds,
+    const std::string & name
+) 
+
+

function reset

+
inline void ana::dataflow::reset () 
+
+

function select [2/3]

+
template<typename Sel typename Sel>
+auto ana::dataflow::select (
+    lazy < selection > const & prev,
+    const std::string & name
+) 
+
+

function select [3/3]

+
template<typename Sel typename Sel, typename F typename F>
+auto ana::dataflow::select (
+    lazy < selection > const & prev,
+    const std::string & name,
+    F callable
+) 
+
+

function select_aggregation

+
template<typename Cnt typename Cnt>
+auto ana::dataflow::select_aggregation (
+    delayed < aggregation::booker< Cnt > > const & bkr,
+    lazy < selection > const & sel
+) 
+
+

function select_aggregations

+
template<typename Cnt typename Cnt, typename... Sels>
+auto ana::dataflow::select_aggregations (
+    delayed < aggregation::booker< Cnt > > const & bkr,
+    lazy < Sels > const &... sels
+) 
+
+

function vary_constant

+
template<typename Val typename Val, typename Lazy typename Lazy, typename... Args>
+void ana::dataflow::vary_constant (
+    Lazy & syst,
+    const std::string & name,
+    std::tuple< Args... > args
+) 
+
+

function vary_evaluator

+
template<typename Col typename Col, typename Eval typename Eval, typename... Args>
+void ana::dataflow::vary_evaluator (
+    Eval & syst,
+    const std::string & name,
+    std::tuple< Args... > args
+) 
+
+

Friends Documentation

+

friend reader

+
template<typename typename>
+class ana::dataflow::reader (
+    dataset::reader
+) 
+
+

friend delayed

+
template<typename typename>
+class ana::dataflow::delayed (
+    delayed
+) 
+
+

friend lazy

+
template<typename typename>
+class ana::dataflow::lazy (
+    lazy
+) 
+
+
+

The documentation for this class was generated from the following file include/ana/interface/dataflow.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1dataset_1_1column/index.html b/analogical/classana_1_1dataset_1_1column/index.html new file mode 100644 index 00000000..9dd1b626 --- /dev/null +++ b/analogical/classana_1_1dataset_1_1column/index.html @@ -0,0 +1,1291 @@ + + + + + + + + + + + + + + + + + + + + + dataset::column - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::dataset::column

+

template <typename T typename T>

+

ClassList > ana > dataset > column

+

Read columns from a dataset. More...

+
    +
  • #include <dataset_column.h>
  • +
+

Inherits the following classes: ana::term< T >

+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
column ()
virtual voidexecute (const range & part, unsigned long long entry) override
virtual T const &read (const range & part, unsigned long long entry) const = 0
Read the value of the column at current entry.
virtual T const &value () override const
Get the value of the column at current entry.
virtual~column () = default
+

Protected Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
T const *m_addr
unsigned long longm_entry
const range *m_part
boolm_updated
+

Detailed Description

+

Template parameters:

+
    +
  • T column data type.
  • +
+

Public Functions Documentation

+

function column

+
ana::dataset::column::column () 
+
+

function execute

+
virtual void ana::dataset::column::execute (
+    const range & part,
+    unsigned long long entry
+) override
+
+

function read

+

Read the value of the column at current entry. +

virtual T const & ana::dataset::column::read (
+    const range & part,
+    unsigned long long entry
+) const = 0
+

+

Returns:

+

Column value

+

function value

+

Get the value of the column at current entry. +

virtual T const & ana::dataset::column::value () override const
+

+

Returns:

+

Column value

+

function ~column

+
virtual ana::dataset::column::~column () = default
+
+

Protected Attributes Documentation

+

variable m_addr

+
T const* ana::dataset::column< T >::m_addr;
+
+

variable m_entry

+
unsigned long long ana::dataset::column< T >::m_entry;
+
+

variable m_part

+
const range* ana::dataset::column< T >::m_part;
+
+

variable m_updated

+
bool ana::dataset::column< T >::m_updated;
+
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_column.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1dataset_1_1input/index.html b/analogical/classana_1_1dataset_1_1input/index.html new file mode 100644 index 00000000..8641d28e --- /dev/null +++ b/analogical/classana_1_1dataset_1_1input/index.html @@ -0,0 +1,1397 @@ + + + + + + + + + + + + + + + + + + + + + + + dataset::input - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Class ana::dataset::input

+

template <typename DS typename DS>

+

ClassList > ana > dataset > input

+

Inherits the following classes: ana::dataset::source

+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
virtual partitionallocate () = 0
virtual doublenormalize ()
std::unique_ptr< ana::dataset::player >open (const ana::dataset::range & part)
decltype(auto)open_player (const range & part)
decltype(auto)read_column (const ana::dataset::range & part, const std::string & name)
virtual~input () = default
+

Public Functions inherited from ana::dataset::source

+

See ana::dataset::source

+ + + + + + + + + + + + + + + + + + + + + +
TypeName
virtual voidfinalize ()
virtual voidinitialize ()
virtual~source () = default
+

Public Functions Documentation

+

function allocate

+
virtual partition ana::dataset::input::allocate () = 0
+
+

function normalize

+
inline virtual double ana::dataset::input::normalize () 
+
+

function open

+
std::unique_ptr< ana::dataset::player > ana::dataset::input::open (
+    const ana::dataset::range & part
+) 
+
+

function open_player

+
decltype(auto) ana::dataset::input::open_player (
+    const range & part
+) 
+
+

function read_column

+
template<typename Val typename Val>
+decltype(auto) ana::dataset::input::read_column (
+    const ana::dataset::range & part,
+    const std::string & name
+) 
+
+

function ~input

+
virtual ana::dataset::input::~input () = default
+
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_input.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1dataset_1_1player/index.html b/analogical/classana_1_1dataset_1_1player/index.html new file mode 100644 index 00000000..e5d5123c --- /dev/null +++ b/analogical/classana_1_1dataset_1_1player/index.html @@ -0,0 +1,1336 @@ + + + + + + + + + + + + + + + + + + + + + + + dataset::player - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::dataset::player

+

ClassList > ana > dataset > player

+

Inherits the following classes: operation

+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
virtual voidexecute (const range &, unsigned long long) override
virtual voidfinalize (const range &) override
virtual voidinitialize (const range &) override
player () = default
virtual~player () = default
+

Public Functions Documentation

+

function execute

+
inline virtual void ana::dataset::player::execute (
+    const range &,
+    unsigned long long
+) override
+
+

function finalize

+
inline virtual void ana::dataset::player::finalize (
+    const range &
+) override
+
+

function initialize

+
inline virtual void ana::dataset::player::initialize (
+    const range &
+) override
+
+

function player

+
ana::dataset::player::player () = default
+
+

function ~player

+
virtual ana::dataset::player::~player () = default
+
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_player.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1dataset_1_1reader/index.html b/analogical/classana_1_1dataset_1_1reader/index.html new file mode 100644 index 00000000..684d016a --- /dev/null +++ b/analogical/classana_1_1dataset_1_1reader/index.html @@ -0,0 +1,966 @@ + + + + + + + + + + + + + + + + + + + Class ana::dataset::reader - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::dataset::reader

+

template <typename T typename T>

+

ClassList > ana > dataset > reader

+
+

The documentation for this class was generated from the following file include/ana/interface/dataset.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1dataset_1_1source/index.html b/analogical/classana_1_1dataset_1_1source/index.html new file mode 100644 index 00000000..9918199b --- /dev/null +++ b/analogical/classana_1_1dataset_1_1source/index.html @@ -0,0 +1,1048 @@ + + + + + + + + + + + + + + + + + + + Class ana::dataset::source - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::dataset::source

+

ClassList > ana > dataset > source

+

Inherited by the following classes: ana::dataset::input

+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + +
TypeName
virtual voidfinalize ()
virtual voidinitialize ()
virtual~source () = default
+

Public Functions Documentation

+

function finalize

+
inline virtual void ana::dataset::source::finalize () 
+
+

function initialize

+
inline virtual void ana::dataset::source::initialize () 
+
+

function ~source

+
virtual ana::dataset::source::~source () = default
+
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_input.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1delayed/index.html b/analogical/classana_1_1delayed/index.html new file mode 100644 index 00000000..f76bbb3a --- /dev/null +++ b/analogical/classana_1_1delayed/index.html @@ -0,0 +1,1595 @@ + + + + + + + + + + + + + + + + + + + + + + + delayed - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::delayed

+

template <typename Bkr typename Bkr>

+

ClassList > ana > delayed

+

A node that instantiates a lazy action. More...

+
    +
  • #include <delayed.h>
  • +
+

Inherits the following classes: systematic::resolver< delayed< Bkr > >, lockstep::node< Bkr >

+

Classes

+ + + + + + + + + + + + + +
TypeName
classvaried
Varied version of a delayed node.
+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
autoapply (Nodes &&... columns) const
Apply the selection's expression based on input columns.
autobook (Node && selection) const
Book the aggregation at a selection.
autobook (Nodes &&... nodes) const
delayed (dataflow & dataflow, lockstep::node< Bkr > && operation)
delayed (delayed< V > && other)
autoevaluate (Nodes &&... columns) const
Evaluate the column out of existing ones.
autofill (Nodes &&... columns) const
Fill the aggregation with input columns.
virtual boolhas_variation (const std::string & var_name) override const
autolist_selection_paths () const
virtual std::set< std::string >list_variation_names () override const
virtual delayed const &nominal () override const
autooperator() (Args &&... columns) const
Shorthand for evaluate() andapply() for column and selection respectively.
delayed &operator= (delayed< V > && other)
autooperator[] (const std::string & selection_path) const
Access a aggregation booked at a selection path.
virtual voidset_variation (const std::string & var_name, delayed && var) override
virtual delayed const &variation (const std::string & var_name) override const
virtual~delayed () = default
+

Protected Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
autoapply_selection (Nodes const &... columns) const
autoapply_selection (Nodes const &... columns) const
autoevaluate_column (Nodes const &... columns) const
Evaluate a column definition out of nominal input columns.
autoevaluate_column (Nodes const &... columns) const
Evaluate a column definition out of at least one varied input columns.
autoevaluate_or_apply (Args &&... columns) const
autoevaluate_or_apply (Args &&... columns) const
autofill_aggregation (Nodes const &... columns) const
autofill_aggregation (Nodes const &... columns) const
autoget_aggregation (const std::string & selection_path) const
autoselect_aggregation (Node const & sel) const
Book an aggregation at a nominal selection.
autoselect_aggregation (Node const & sel) const
Book an aggregation at a varied selection.
autoselect_aggregations (Nodes const &... sels) const
autoselect_aggregations (Nodes const &... sels) const
+

Detailed Description

+

A delayed node requires additional inputs to instantiate a lazy action.

+

Template parameters:

+
    +
  • Bkr Booker that instantiates a lazy action.
  • +
+

Public Functions Documentation

+

function apply

+

Apply the selection's expression based on input columns. +

template<typename... Nodes, typename V typename V, std::enable_if_t< ana::selection::template is_applicator_v< V >, bool > std::enable_if_t< ana::selection::template is_applicator_v< V >, bool >>
+inline auto ana::delayed::apply (
+    Nodes &&... columns
+) const
+

+

Parameters:

+
    +
  • columns Input columns.
  • +
+

Returns:

+

Applied selection.

+

function book [1/2]

+

Book the aggregation at a selection. +

template<typename Node typename Node>
+inline auto ana::delayed::book (
+    Node && selection
+) const
+

+

Parameters:

+
    +
  • selection Selection to be counted.
  • +
+

Returns:

+

The aggregation booked at the selection.

+

function book [2/2]

+
template<typename... Nodes>
+inline auto ana::delayed::book (
+    Nodes &&... nodes
+) const
+
+

function delayed [1/2]

+
inline ana::delayed::delayed (
+    dataflow & dataflow,
+    lockstep::node< Bkr > && operation
+) 
+
+

function delayed [2/2]

+
template<typename V typename V>
+inline ana::delayed::delayed (
+    delayed < V > && other
+) 
+
+

function evaluate

+

Evaluate the column out of existing ones. +

template<typename... Nodes, typename V typename V, std::enable_if_t< ana::column::template is_evaluator_v< V >, bool > std::enable_if_t< ana::column::template is_evaluator_v< V >, bool >>
+inline auto ana::delayed::evaluate (
+    Nodes &&... columns
+) const
+

+

Parameters:

+
    +
  • columns Input columns.
  • +
+

Returns:

+

Evaluated column.

+

function fill

+

Fill the aggregation with input columns. +

template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool >>
+inline auto ana::delayed::fill (
+    Nodes &&... columns
+) const
+

+

Parameters:

+
    +
  • columns Input columns
  • +
+

Returns:

+

The aggregation filled with input columns.

+

function has_variation

+
virtual bool ana::delayed::has_variation (
+    const std::string & var_name
+) override const
+
+

function list_selection_paths

+
template<typename V typename V, std::enable_if_t< ana::aggregation::template is_bookkeeper_v< V >, bool > std::enable_if_t< ana::aggregation::template is_bookkeeper_v< V >, bool >>
+inline auto ana::delayed::list_selection_paths () const
+
+

Returns:

+

The list of booked selection paths.

+

function list_variation_names

+
virtual std::set< std::string > ana::delayed::list_variation_names () override const
+
+

function nominal

+
virtual delayed const & ana::delayed::nominal () override const
+
+

function operator()

+

Shorthand for evaluate() andapply() for column and selection respectively. +

template<typename... Args, typename V typename V, std::enable_if_t< column::template is_evaluator_v< V >||selection::template is_applicator_v< V >, bool > std::enable_if_t< column::template is_evaluator_v< V >||selection::template is_applicator_v< V >, bool >>
+inline auto ana::delayed::operator() (
+    Args &&... columns
+) const
+

+

Parameters:

+
    +
  • columns The input columns.
  • +
+

Returns:

+

The evaluated/applied column/selection.

+

function operator=

+
template<typename V typename V>
+inline delayed & ana::delayed::operator= (
+    delayed < V > && other
+) 
+
+

function operator[]

+

Access a aggregation booked at a selection path. +

template<typename... Args, typename V typename V, std::enable_if_t< aggregation::template is_bookkeeper_v< V >, bool > std::enable_if_t< aggregation::template is_bookkeeper_v< V >, bool >>
+inline auto ana::delayed::operator[] (
+    const std::string & selection_path
+) const
+

+

Parameters:

+
    +
  • selection_path The selection path.
  • +
+

Returns:

+

The aggregation.

+

function set_variation

+
virtual void ana::delayed::set_variation (
+    const std::string & var_name,
+    delayed && var
+) override
+
+

function variation

+
virtual delayed const & ana::delayed::variation (
+    const std::string & var_name
+) override const
+
+

function ~delayed

+
virtual ana::delayed::~delayed () = default
+
+

Protected Functions Documentation

+

function apply_selection [1/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< selection::template is_applicator_v< V > &&ana::has_no_variation_v< Nodes... >, bool > std::enable_if_t< selection::template is_applicator_v< V > &&ana::has_no_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::apply_selection (
+    Nodes const &... columns
+) const
+
+

function apply_selection [2/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< selection::template is_applicator_v< V > &&ana::has_variation_v< Nodes... >, bool > std::enable_if_t< selection::template is_applicator_v< V > &&ana::has_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::apply_selection (
+    Nodes const &... columns
+) const
+
+

function evaluate_column [1/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::column::template is_evaluator_v< V > &&ana::has_no_variation_v< Nodes... >, bool > std::enable_if_t< ana::column::template is_evaluator_v< V > &&ana::has_no_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::evaluate_column (
+    Nodes const &... columns
+) const
+
+

function evaluate_column [2/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::column::template is_evaluator_v< V > &&ana::has_variation_v< Nodes... >, bool > std::enable_if_t< ana::column::template is_evaluator_v< V > &&ana::has_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::evaluate_column (
+    Nodes const &... columns
+) const
+
+

function evaluate_or_apply [1/2]

+
template<typename... Args, typename V typename V, std::enable_if_t< column::template is_evaluator_v< V >, bool > std::enable_if_t< column::template is_evaluator_v< V >, bool >>
+inline auto ana::delayed::evaluate_or_apply (
+    Args &&... columns
+) const
+
+

function evaluate_or_apply [2/2]

+
template<typename... Args, typename V typename V, std::enable_if_t< selection::template is_applicator_v< V >, bool > std::enable_if_t< selection::template is_applicator_v< V >, bool >>
+inline auto ana::delayed::evaluate_or_apply (
+    Args &&... columns
+) const
+
+

function fill_aggregation [1/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::has_no_variation_v< Nodes... >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::has_no_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::fill_aggregation (
+    Nodes const &... columns
+) const
+
+

function fill_aggregation [2/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V > &&has_variation_v< Nodes... >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V > &&has_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::fill_aggregation (
+    Nodes const &... columns
+) const
+
+

function get_aggregation

+
template<typename V typename V, std::enable_if_t< ana::aggregation::template is_bookkeeper_v< V >, bool > std::enable_if_t< ana::aggregation::template is_bookkeeper_v< V >, bool >>
+inline auto ana::delayed::get_aggregation (
+    const std::string & selection_path
+) const
+
+

function select_aggregation [1/2]

+
template<typename Node typename Node, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::is_nominal_v< Node >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::is_nominal_v< Node >, bool >>
+inline auto ana::delayed::select_aggregation (
+    Node const & sel
+) const
+
+

function select_aggregation [2/2]

+
template<typename Node typename Node, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::is_varied_v< Node >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::is_varied_v< Node >, bool >>
+inline auto ana::delayed::select_aggregation (
+    Node const & sel
+) const
+
+

function select_aggregations [1/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::has_no_variation_v< Nodes... >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V > &&ana::has_no_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::select_aggregations (
+    Nodes const &... sels
+) const
+
+

function select_aggregations [2/2]

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V > &&has_variation_v< Nodes... >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V > &&has_variation_v< Nodes... >, bool >>
+inline auto ana::delayed::select_aggregations (
+    Nodes const &... sels
+) const
+
+
+

The documentation for this class was generated from the following file include/ana/interface/delayed.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1delayed_1_1varied/index.html b/analogical/classana_1_1delayed_1_1varied/index.html new file mode 100644 index 00000000..f6eb3a65 --- /dev/null +++ b/analogical/classana_1_1delayed_1_1varied/index.html @@ -0,0 +1,1432 @@ + + + + + + + + + + + + + + + + + + + + + + + delayed::varied - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::delayed::varied

+

ClassList > ana > delayed > varied

+

Varied version of a delayed node. More...

+
    +
  • #include <delayed_varied.h>
  • +
+

Inherits the following classes: systematic::resolver< delayed< Bld > >

+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
autoapply (Nodes const &... columns)
autobook (Node const & selection)
Book the aggregation logic at a selection.
autobook (Nodes const &... selections)
Book the aggregation logic at multiple selections.
autoevaluate (Args &&... args)
autofill (Nodes const &... columns)
Fill the aggregation with input columns.
virtual boolhas_variation (const std::string & var_name) override const
virtual std::set< std::string >list_variation_names () override const
virtual delayed const &nominal () override const
autooperator() (Args &&... args)
Evaluate/apply the column definition/selection with input columns.
varied &operator= (varied &&) = default
autooperator[] (const std::string & var_name) const
Access the delayed of a specific systematic variation.
virtual voidset_variation (const std::string & var_name, delayed && var) override
virtual delayed const &variation (const std::string & var_name) override const
varied (delayed< Bld > && nom)
varied (varied &&) = default
~varied () = default
+

Protected Attributes

+ + + + + + + + + + + + + + + + + + + + + +
TypeName
delayed< Bld >m_nominal
std::unordered_map< std::string, delayed< Bld > >m_variation_map
std::set< std::string >m_variation_names
+

Detailed Description

+

A delayed varied operation is functionally equivalent to a delayed node, except that it contains multiple nodes corresponding to nominal and systematic variations.

+

Public Functions Documentation

+

function apply

+
template<typename... Nodes, typename V typename V, std::enable_if_t< ana::selection::template is_applicator_v< V >, bool > std::enable_if_t< ana::selection::template is_applicator_v< V >, bool >>
+auto ana::delayed::varied::apply (
+    Nodes const &... columns
+) 
+
+

function book [1/2]

+

Book the aggregation logic at a selection. +

template<typename Node typename Node, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool >>
+auto ana::delayed::varied::book (
+    Node const & selection
+) 
+

+

Parameters:

+
    +
  • selection Lazy selection to book aggregation at.
  • +
+

Returns:

+

Lazy aggregation booked at selection.

+

function book [2/2]

+

Book the aggregation logic at multiple selections. +

template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool >>
+auto ana::delayed::varied::book (
+    Nodes const &... selections
+) 
+

+

Parameters:

+
    +
  • selection Lazy selection to book aggregations at.
  • +
+

Returns:

+

Delayed aggregation containing booked lazy aggregations.

+

function evaluate

+
template<typename... Args, typename V typename V, std::enable_if_t< ana::column::template is_evaluator_v< V >, bool > std::enable_if_t< ana::column::template is_evaluator_v< V >, bool >>
+auto ana::delayed::varied::evaluate (
+    Args &&... args
+) 
+
+

function fill

+

Fill the aggregation with input columns. +

template<typename... Nodes, typename V typename V, std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool > std::enable_if_t< ana::aggregation::template is_booker_v< V >, bool >>
+auto ana::delayed::varied::fill (
+    Nodes const &... columns
+) 
+

+

Parameters:

+
    +
  • columns... Input columns to fill the aggregation with.
  • +
+

Returns:

+

A new delayed aggregation node with input columns filled.

+

function has_variation

+
virtual bool ana::delayed::varied::has_variation (
+    const std::string & var_name
+) override const
+
+

function list_variation_names

+
virtual std::set< std::string > ana::delayed::varied::list_variation_names () override const
+
+

function nominal

+
virtual delayed const & ana::delayed::varied::nominal () override const
+
+

function operator()

+

Evaluate/apply the column definition/selection with input columns. +

template<typename... Args>
+auto ana::delayed::varied::operator() (
+    Args &&... args
+) 
+

+

Parameters:

+
    +
  • args... Lazy input columns
  • +
+

Returns:

+

Lazy column definition

+

function operator=

+
varied & ana::delayed::varied::operator= (
+    varied &&
+) = default
+
+

function operator[]

+

Access the delayed of a specific systematic variation. +

template<typename V typename V, std::enable_if_t< ana::aggregation::template is_bookkeeper_v< V >, bool > std::enable_if_t< ana::aggregation::template is_bookkeeper_v< V >, bool >>
+auto ana::delayed::varied::operator[] (
+    const std::string & var_name
+) const
+

+

Parameters:

+
    +
  • var_name Name of the systematic variation.
  • +
+

Returns:

+

Delayed node corresponding to systematic variation.

+

function set_variation

+
virtual void ana::delayed::varied::set_variation (
+    const std::string & var_name,
+    delayed && var
+) override
+
+

function variation

+
virtual delayed const & ana::delayed::varied::variation (
+    const std::string & var_name
+) override const
+
+

function varied [1/2]

+
ana::delayed::varied::varied (
+    delayed < Bld > && nom
+) 
+
+

function varied [2/2]

+
ana::delayed::varied::varied (
+    varied &&
+) = default
+
+

function ~varied

+
ana::delayed::varied::~varied () = default
+
+

Protected Attributes Documentation

+

variable m_nominal

+
delayed<Bld> ana::delayed< Bkr >::varied::m_nominal;
+
+

variable m_variation_map

+
std::unordered_map<std::string, delayed<Bld> > ana::delayed< Bkr >::varied::m_variation_map;
+
+

variable m_variation_names

+
std::set<std::string> ana::delayed< Bkr >::varied::m_variation_names;
+
+
+

The documentation for this class was generated from the following file include/ana/interface/delayed_varied.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1lazy/index.html b/analogical/classana_1_1lazy/index.html new file mode 100644 index 00000000..c1f2ace2 --- /dev/null +++ b/analogical/classana_1_1lazy/index.html @@ -0,0 +1,1955 @@ + + + + + + + + + + + + + + + + + + + + + + + lazy - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Class ana::lazy

+

template <typename Action typename Action>

+

ClassList > ana > lazy

+

Inherits the following classes: systematic::resolver< lazy< Action > >, lockstep::view< Action >

+

Classes

+ + + + + + + + + + + + + +
TypeName
classvaried
Variations of a lazy operation to be performed in an dataflow.
+

Public Types

+ + + + + + + + + + + + + +
TypeName
typedef Actionoperation_type
+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
autobook (Agg && agg) const
autobook (Aggs &&... aggs) const
autochannel (const std::string & name, Args &&... args) const
autofilter (const std::string & name, Args &&... args) const
virtual boolhas_variation (const std::string & var_name) override const
lazy (dataflow & dataflow, const lockstep::view< Action > & operation)
lazy (dataflow & dataflow, const lockstep::node< Action > & operation)
lazy (const lazy &) = default
lazy (lazy< Derived > const & derived)
virtual std::set< std::string >list_variation_names () override const
virtual lazy const &nominal () override const
autooperator-> () const
lazy &operator= (const lazy &) = default
lazy &operator= (lazy< Derived > const & derived)
ana::lazy< Action > &operator= (lazy< Derived > const & derived)
std::stringpath () const
autoresult () const
virtual voidset_variation (const std::string & var_name, lazy && var) override
virtual lazy const &variation (const std::string & var_name) override const
autoweight (const std::string & name, Args &&... args) const
virtual~lazy () = default
+

Protected Functions

+ + + + + + + + + + + + + +
TypeName
voidmerge_results () const
+

Public Types Documentation

+

typedef operation_type

+
using ana::lazy< Action >::operation_type =  Action;
+
+

Public Functions Documentation

+

function book [1/2]

+
template<typename Agg typename Agg>
+auto ana::lazy::book (
+    Agg && agg
+) const
+
+

function book [2/2]

+
template<typename... Aggs>
+auto ana::lazy::book (
+    Aggs &&... aggs
+) const
+
+

function channel

+
template<typename... Args>
+auto ana::lazy::channel (
+    const std::string & name,
+    Args &&... args
+) const
+
+

function filter

+
template<typename... Args>
+auto ana::lazy::filter (
+    const std::string & name,
+    Args &&... args
+) const
+
+

function has_variation

+
virtual bool ana::lazy::has_variation (
+    const std::string & var_name
+) override const
+
+

function lazy [2/5]

+
inline ana::lazy::lazy (
+    dataflow & dataflow,
+    const lockstep::view< Action > & operation
+) 
+
+

function lazy [3/5]

+
inline ana::lazy::lazy (
+    dataflow & dataflow,
+    const lockstep::node< Action > & operation
+) 
+
+

function lazy [4/5]

+
ana::lazy::lazy (
+    const lazy &
+) = default
+
+

function lazy [5/5]

+
template<typename Derived typename Derived>
+ana::lazy::lazy (
+    lazy < Derived > const & derived
+) 
+
+

function list_variation_names

+
virtual std::set< std::string > ana::lazy::list_variation_names () override const
+
+

function nominal

+
virtual lazy const & ana::lazy::nominal () override const
+
+

function operator->

+
template<typename V typename V, std::enable_if_t< ana::aggregation::template has_output_v< V >, bool > std::enable_if_t< ana::aggregation::template has_output_v< V >, bool >>
+inline auto ana::lazy::operator-> () const
+
+

function operator=

+
lazy & ana::lazy::operator= (
+    const lazy &
+) = default
+
+

function operator=

+
template<typename Derived typename Derived>
+lazy & ana::lazy::operator= (
+    lazy < Derived > const & derived
+) 
+
+

function operator=

+
template<typename Derived typename Derived>
+ana::lazy < Action > & ana::lazy::operator= (
+    lazy < Derived > const & derived
+) 
+
+

function path

+
template<typename V typename V, std::enable_if_t< is_selection_v< V >, bool > std::enable_if_t< is_selection_v< V >, bool >>
+inline std::string ana::lazy::path () const
+
+

function result

+
template<typename V typename V, std::enable_if_t< ana::aggregation::template has_output_v< V >, bool > std::enable_if_t< ana::aggregation::template has_output_v< V >, bool >>
+auto ana::lazy::result () const
+
+

function set_variation

+
virtual void ana::lazy::set_variation (
+    const std::string & var_name,
+    lazy && var
+) override
+
+

function variation

+
virtual lazy const & ana::lazy::variation (
+    const std::string & var_name
+) override const
+
+

function weight

+
template<typename... Args>
+auto ana::lazy::weight (
+    const std::string & name,
+    Args &&... args
+) const
+
+

function ~lazy

+
virtual ana::lazy::~lazy () = default
+
+

Protected Functions Documentation

+

function merge_results

+
template<typename V typename V, std::enable_if_t< ana::aggregation::template has_output_v< V >, bool > std::enable_if_t< ana::aggregation::template has_output_v< V >, bool >>
+void ana::lazy::merge_results () const
+
+

Friends Documentation

+

friend dataflow

+
class ana::lazy::dataflow (
+    dataflow
+) 
+
+

friend lazy [1/5]

+
template<typename typename>
+class ana::lazy::lazy (
+    lazy
+) 
+
+
+

The documentation for this class was generated from the following file include/ana/interface/lazy.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classana_1_1lazy_1_1varied/index.html b/analogical/classana_1_1lazy_1_1varied/index.html new file mode 100644 index 00000000..204d5189 --- /dev/null +++ b/analogical/classana_1_1lazy_1_1varied/index.html @@ -0,0 +1,1417 @@ + + + + + + + + + + + + + + + + + + + + + + + lazy::varied - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class ana::lazy::varied

+

ClassList > ana > lazy > varied

+

Variations of a lazy operation to be performed in an dataflow. More...

+
    +
  • #include <lazy_varied.h>
  • +
+

Inherits the following classes: systematic::resolver< lazy< Act > >

+

Public Types

+ + + + + + + + + + + + + + + + + +
TypeName
typedef typename decltype(std::declval< dataflow >().filter(std::declval< std::string >(), std::declval< Args >()...))::varieddelayed_varied_selection_applicator_t
typedef typename lazy< Act >::operation_typeoperation_type
+

Public Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
autobook (Agg && agg)
autobook (Aggs &&... aggs)
autochannel (const std::string & name, Args &&... arguments)
autofilter (const std::string & name, Args &&... arguments)
virtual boolhas_variation (const std::string & var_name) override const
virtual std::set< std::string >list_variation_names () override const
virtual lazy const &nominal () override const
autooperator[] (const std::string & var_name) const
virtual voidset_variation (const std::string & var_name, lazy && var) override
virtual lazy const &variation (const std::string & var_name) override const
varied (lazy< Act > const & nom)
autoweight (const std::string & name, Args &&... arguments)
~varied () = default
+

Protected Attributes

+ + + + + + + + + + + + + + + + + + + + + +
TypeName
lazy< Act >m_nom
std::unordered_map< std::string, lazy< Act > >m_var_map
std::set< std::string >m_var_names
+

Detailed Description

+

Template parameters:

+
    +
  • T Input dataset type
  • +
  • U Actions to be performed lazily.
  • +
+

A varied node can be treated identical to a lazy one, except that it contains multiple variations of the operation as dictated by the analyzer that propagate through the rest of the analysis.

+

Public Types Documentation

+

typedef delayed_varied_selection_applicator_t

+
using ana::lazy< Action >::varied::delayed_varied_selection_applicator_t =  typename decltype(std::declval<dataflow>().filter( std::declval<std::string>(), std::declval<Args>()...))::varied;
+
+

typedef operation_type

+
using ana::lazy< Action >::varied::operation_type =  typename lazy<Act>::operation_type;
+
+

Public Functions Documentation

+

function book [1/2]

+
template<typename Agg typename Agg, typename V typename V, std::enable_if_t< ana::is_selection_v< V >, bool > std::enable_if_t< ana::is_selection_v< V >, bool >>
+auto ana::lazy::varied::book (
+    Agg && agg
+) 
+
+

function book [2/2]

+
template<typename... Aggs, typename V typename V, std::enable_if_t< ana::is_selection_v< V >, bool > std::enable_if_t< ana::is_selection_v< V >, bool >>
+auto ana::lazy::varied::book (
+    Aggs &&... aggs
+) 
+
+

function channel

+
template<typename... Args, typename V typename V, std::enable_if_t< ana::is_selection_v< V >, bool > std::enable_if_t< ana::is_selection_v< V >, bool >>
+auto ana::lazy::varied::channel (
+    const std::string & name,
+    Args &&... arguments
+) 
+
+

function filter

+
template<typename... Args, typename V typename V, std::enable_if_t< ana::is_selection_v< V >, bool > std::enable_if_t< ana::is_selection_v< V >, bool >>
+auto ana::lazy::varied::filter (
+    const std::string & name,
+    Args &&... arguments
+) 
+
+

function has_variation

+
virtual bool ana::lazy::varied::has_variation (
+    const std::string & var_name
+) override const
+
+

function list_variation_names

+
virtual std::set< std::string > ana::lazy::varied::list_variation_names () override const
+
+

function nominal

+
virtual lazy const & ana::lazy::varied::nominal () override const
+
+

function operator[]

+
template<typename V typename V, std::enable_if_t< ana::is_column_v< V >||ana::aggregation::template has_output_v< V >, bool > std::enable_if_t< ana::is_column_v< V >||ana::aggregation::template has_output_v< V >, bool >>
+auto ana::lazy::varied::operator[] (
+    const std::string & var_name
+) const
+
+

function set_variation

+
virtual void ana::lazy::varied::set_variation (
+    const std::string & var_name,
+    lazy && var
+) override
+
+

function variation

+
virtual lazy const & ana::lazy::varied::variation (
+    const std::string & var_name
+) override const
+
+

function varied

+
ana::lazy::varied::varied (
+    lazy < Act > const & nom
+) 
+
+

function weight

+
template<typename... Args, typename V typename V, std::enable_if_t< ana::is_selection_v< V >, bool > std::enable_if_t< ana::is_selection_v< V >, bool >>
+auto ana::lazy::varied::weight (
+    const std::string & name,
+    Args &&... arguments
+) 
+
+

function ~varied

+
ana::lazy::varied::~varied () = default
+
+

Protected Attributes Documentation

+

variable m_nom

+
lazy<Act> ana::lazy< Action >::varied::m_nom;
+
+

variable m_var_map

+
std::unordered_map<std::string, lazy<Act> > ana::lazy< Action >::varied::m_var_map;
+
+

variable m_var_names

+
std::set<std::string> ana::lazy< Action >::varied::m_var_names;
+
+
+

The documentation for this class was generated from the following file include/ana/interface/lazy_varied.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/classes/index.html b/analogical/classes/index.html new file mode 100644 index 00000000..3b99e0da --- /dev/null +++ b/analogical/classes/index.html @@ -0,0 +1,1090 @@ + + + + + + + + + + + + + + + + + + + Class Index - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/column__definition_8h/index.html b/analogical/column__definition_8h/index.html new file mode 100644 index 00000000..de263653 --- /dev/null +++ b/analogical/column__definition_8h/index.html @@ -0,0 +1,1023 @@ + + + + + + + + + + + + + + + + + + + File column_definition.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File column_definition.h

+

FileList > ana > interface > column_definition.h

+

Go to the source code of this file

+
    +
  • #include <memory>
  • +
  • #include <tuple>
  • +
  • #include "column_calculation.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + +
TypeName
namespaceana
+

Classes

+ + + + + + + + + + + + + +
TypeName
classdefinition< Ret(Vals...)> <typename Ret, Vals>
Column with user-defined return value type and evaluation dataset.
+
+

The documentation for this class was generated from the following file include/ana/interface/column_definition.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/column__definition_8h_source/index.html b/analogical/column__definition_8h_source/index.html new file mode 100644 index 00000000..baf4ca36 --- /dev/null +++ b/analogical/column__definition_8h_source/index.html @@ -0,0 +1,1023 @@ + + + + + + + + + + + + + + + + + + + File column_definition.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File column_definition.h

+

File List > ana > interface > column_definition.h

+

Go to the documentation of this file

+
#pragma once
+
+#include <memory>
+#include <tuple>
+
+#include "column_calculation.h"
+
+namespace ana {
+
+template <typename Ret, typename... Vals>
+class column::definition<Ret(Vals...)> : public column::calculation<Ret> {
+
+public:
+  using vartuple_type = std::tuple<variable<Vals>...>;
+  using obstuple_type = std::tuple<observable<Vals>...>;
+
+public:
+  definition() = default;
+  virtual ~definition() = default;
+
+protected:
+  template <typename... Args> definition(Args &&...args);
+
+public:
+  virtual Ret calculate() const final override;
+  virtual Ret evaluate(observable<Vals>... args) const = 0;
+
+  template <typename... Ins> void set_arguments(const cell<Ins> &...args);
+
+protected:
+  vartuple_type m_arguments;
+};
+
+} // namespace ana
+
+template <typename Ret, typename... Vals>
+template <typename... Args>
+ana::column::definition<Ret(Vals...)>::definition(Args &&...args)
+    : calculation<Ret>(std::forward<Args>(args)...) {}
+
+template <typename Ret, typename... Vals>
+template <typename... Ins>
+void ana::column::definition<Ret(Vals...)>::set_arguments(
+    cell<Ins> const &...args) {
+  static_assert(sizeof...(Vals) == sizeof...(Ins));
+  m_arguments = std::make_tuple(std::invoke(
+      [](const cell<Ins> &args) -> variable<Vals> {
+        return variable<Vals>(args);
+      },
+      args)...);
+}
+
+template <typename Ret, typename... Vals>
+Ret ana::column::definition<Ret(Vals...)>::calculate() const {
+  return std::apply(
+      [this](const variable<Vals> &...args) { return this->evaluate(args...); },
+      m_arguments);
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataflow_8h/index.html b/analogical/dataflow_8h/index.html new file mode 100644 index 00000000..0143ffc5 --- /dev/null +++ b/analogical/dataflow_8h/index.html @@ -0,0 +1,1041 @@ + + + + + + + + + + + + + + + + + + + File dataflow.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataflow.h

+

FileList > ana > interface > dataflow.h

+

Go to the source code of this file

+
    +
  • #include <memory>
  • +
  • #include <set>
  • +
  • #include <string>
  • +
  • #include <type_traits>
  • +
  • #include <utility>
  • +
  • #include <vector>
  • +
  • #include "multithread.h"
  • +
  • #include "sample.h"
  • +
  • #include "aggregation.h"
  • +
  • #include "column.h"
  • +
  • #include "dataset.h"
  • +
  • #include "selection.h"
  • +
  • #include "systematic.h"
  • +
  • #include "dataset_partition.h"
  • +
  • #include "delayed.h"
  • +
  • #include "lazy.h"
  • +
  • #include "lazy_varied.h"
  • +
  • #include "dataset_range.h"
  • +
  • #include "dataset_reader.h"
  • +
  • #include "systematic_resolver.h"
  • +
  • #include "systematic_variation.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + +
TypeName
namespaceana
+

Classes

+ + + + + + + + + + + + + +
TypeName
classdataflow
+
+

The documentation for this class was generated from the following file include/ana/interface/dataflow.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataflow_8h_source/index.html b/analogical/dataflow_8h_source/index.html new file mode 100644 index 00000000..24c37c25 --- /dev/null +++ b/analogical/dataflow_8h_source/index.html @@ -0,0 +1,1522 @@ + + + + + + + + + + + + + + + + + + + File dataflow.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataflow.h

+

File List > ana > interface > dataflow.h

+

Go to the documentation of this file

+
#pragma once
+
+#include <memory>
+#include <set>
+#include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
+#include "multithread.h"
+#include "sample.h"
+
+#include "aggregation.h"
+#include "column.h"
+#include "dataset.h"
+#include "selection.h"
+#include "systematic.h"
+
+#include "dataset_partition.h"
+
+namespace ana {
+
+template <typename T> class lazy;
+
+template <typename U> class delayed;
+
+class dataflow {
+
+public:
+  template <typename> friend class dataset::reader;
+  template <typename> friend class lazy;
+  template <typename> friend class delayed;
+
+public:
+  dataflow();
+  ~dataflow() = default;
+
+  template <typename Kwd> dataflow(Kwd kwarg);
+  template <typename Kwd1, typename Kwd2> dataflow(Kwd1 kwarg1, Kwd2 kwarg2);
+  template <typename Kwd1, typename Kwd2, typename Kwd3>
+  dataflow(Kwd1 kwarg1, Kwd2 kwarg2, Kwd3 kwarg3);
+
+  dataflow(dataflow const &) = delete;
+  dataflow &operator=(dataflow const &) = delete;
+
+  dataflow(dataflow &&) = default;
+  dataflow &operator=(dataflow &&) = default;
+
+  template <typename DS, typename... Args>
+  auto open(Args &&...args) -> dataset::reader<DS>;
+
+  template <typename Val>
+  auto constant(Val const &val) -> lazy<column::constant<Val>>;
+  template <typename Val, typename... Args>
+  auto constant(Args &&...args) -> lazy<column::constant<Val>>;
+
+  template <typename Def, typename... Args> auto define(Args &&...args);
+
+  template <typename F> auto define(F const &callable);
+
+  auto filter(const std::string &name);
+  auto weight(const std::string &name);
+
+  template <typename F> auto filter(const std::string &name, F callable);
+  template <typename F>
+  auto weight(const std::string &name, F callable)
+      -> delayed<selection::template custom_applicator_t<F>>;
+
+  auto channel(const std::string &name);
+  template <typename F> auto channel(const std::string &name, F callable);
+
+  template <typename Sel, typename F>
+  auto select(const std::string &name, F callable)
+      -> delayed<selection::template custom_applicator_t<F>>;
+  template <typename Sel, typename F>
+  auto channel(const std::string &name, F callable)
+      -> delayed<selection::template custom_applicator_t<F>>;
+
+  template <typename Cnt, typename... Args>
+  auto agg(Args &&...args) -> delayed<aggregation::booker<Cnt>>;
+
+  template <typename Val, typename... Vars>
+  auto vary(lazy<column::template constant<Val>> const &nom,
+            Vars const &...vars);
+
+  template <typename Col, typename... Vars>
+  auto vary(delayed<column::template evaluator<Col>> &&nom,
+            Vars const &...vars);
+
+protected:
+  template <typename Kwd> void accept_kwarg(Kwd const &kwarg);
+
+  void analyze();
+  void reset();
+
+  template <typename DS, typename Val>
+  auto read(dataset::input<DS> &ds, const std::string &name)
+      -> lazy<read_column_t<DS, Val>>;
+
+  template <typename Def, typename... Cols>
+  auto evaluate_column(delayed<column::evaluator<Def>> const &calc,
+                       lazy<Cols> const &...columns) -> lazy<Def>;
+  template <typename Eqn, typename... Cols>
+  auto apply_selection(delayed<selection::applicator<Eqn>> const &calc,
+                       lazy<Cols> const &...columns) -> lazy<selection>;
+  template <typename Cnt>
+  auto select_aggregation(delayed<aggregation::booker<Cnt>> const &bkr,
+                          lazy<selection> const &sel) -> lazy<Cnt>;
+  template <typename Cnt, typename... Sels>
+  auto select_aggregations(delayed<aggregation::booker<Cnt>> const &bkr,
+                           lazy<Sels> const &...sels)
+      -> delayed<aggregation::bookkeeper<Cnt>>;
+
+  template <typename Sel>
+  auto select(lazy<selection> const &prev, const std::string &name);
+  template <typename Sel, typename F>
+  auto select(lazy<selection> const &prev, const std::string &name, F callable)
+      -> delayed<selection::template custom_applicator_t<F>>;
+
+  template <typename Sel, typename F>
+  auto channel(lazy<selection> const &prev, const std::string &name, F callable)
+      -> delayed<selection::template custom_applicator_t<F>>;
+  template <typename Sel>
+  auto channel(lazy<selection> const &prev, const std::string &name);
+
+  template <typename Col, typename Eval, typename... Args>
+  void vary_evaluator(Eval &syst, const std::string &name,
+                      std::tuple<Args...> args);
+
+  template <typename Val, typename Lazy, typename... Args>
+  void vary_constant(Lazy &syst, const std::string &name,
+                     std::tuple<Args...> args);
+
+  void add_operation(lockstep::node<operation> act);
+  void add_operation(std::unique_ptr<operation> act);
+
+protected:
+  multithread::configuration m_mtcfg;
+  long long m_nrows;
+  double m_weight;
+
+  dataset::partition m_partition;
+  double m_norm;
+
+  std::unique_ptr<dataset::source> m_source;
+
+  lockstep::node<dataset::range> m_parts;
+  lockstep::node<dataset::player> m_players;
+  lockstep::node<dataset::processor> m_processors;
+
+  std::vector<std::unique_ptr<operation>> m_operations;
+  bool m_analyzed;
+};
+
+template <typename T> using operation_t = typename T::nominal_type;
+
+} // namespace ana
+
+#include "delayed.h"
+#include "lazy.h"
+#include "lazy_varied.h"
+
+#include "dataset_range.h"
+#include "dataset_reader.h"
+
+#include "systematic_resolver.h"
+#include "systematic_variation.h"
+
+inline ana::dataflow::dataflow()
+    : m_mtcfg(ana::multithread::disable()), m_nrows(-1), m_weight(1.0),
+      m_source(nullptr), m_analyzed(false) {}
+
+template <typename Kwd> ana::dataflow::dataflow(Kwd kwarg) : dataflow() {
+  this->accept_kwarg<Kwd>(kwarg);
+}
+
+template <typename Kwd1, typename Kwd2>
+ana::dataflow::dataflow(Kwd1 kwarg1, Kwd2 kwarg2) : dataflow() {
+  static_assert(!std::is_same_v<Kwd1, Kwd2>, "repeated keyword arguments.");
+  this->accept_kwarg<Kwd1>(kwarg1);
+  this->accept_kwarg<Kwd2>(kwarg2);
+}
+
+template <typename Kwd> void ana::dataflow::accept_kwarg(Kwd const &kwarg) {
+  constexpr bool is_mt = std::is_same_v<Kwd, multithread::configuration>;
+  constexpr bool is_weight = std::is_same_v<Kwd, sample::weight>;
+  constexpr bool is_nrows = std::is_same_v<Kwd, dataset::first>;
+  if constexpr (is_mt) {
+    this->m_mtcfg = kwarg;
+  } else if (is_weight) {
+    this->m_weight = kwarg.value;
+  } else if (is_nrows) {
+    this->m_nrows = kwarg.nrows;
+  } else {
+    static_assert(is_mt || is_weight || is_nrows,
+                  "unrecognized keyword argument");
+  }
+}
+
+template <typename Kwd1, typename Kwd2, typename Kwd3>
+ana::dataflow::dataflow(Kwd1 kwarg1, Kwd2 kwarg2, Kwd3 kwarg3) : dataflow() {
+  static_assert(!std::is_same_v<Kwd1, Kwd2>, "repeated keyword arguments.");
+  static_assert(!std::is_same_v<Kwd1, Kwd3>, "repeated keyword arguments.");
+  static_assert(!std::is_same_v<Kwd2, Kwd3>, "repeated keyword arguments.");
+  this->accept_kwarg<Kwd1>(kwarg1);
+  this->accept_kwarg<Kwd2>(kwarg2);
+  this->accept_kwarg<Kwd3>(kwarg3);
+}
+
+template <typename DS, typename... Args>
+auto ana::dataflow::open(Args &&...args) -> ana::dataset::reader<DS> {
+
+  if (m_source) {
+    std::runtime_error("opening multiple datasets is not yet supported.");
+  }
+
+  auto source = std::make_unique<DS>(std::forward<Args>(args)...);
+  auto ds = source.get();
+  m_source = std::move(source);
+
+  // 1. allocate the dataset partition
+  this->m_partition = ds->allocate();
+  // 2. truncate entries to limit
+  this->m_partition.truncate(this->m_nrows);
+  // 3. merge parts to concurrency limit
+  this->m_partition.merge(this->m_mtcfg.concurrency);
+  // 4. normalize scale
+  this->m_norm = ds->normalize();
+
+  // put partition into slots
+  this->m_parts.clear_slots();
+  // model reprents whole dataset
+  this->m_parts.set_model(
+      std::make_unique<dataset::range>(this->m_partition.total()));
+  // each slot takes a part
+  for (unsigned int ipart = 0; ipart < m_partition.size(); ++ipart) {
+    this->m_parts.add_slot(
+        std::make_unique<dataset::range>(this->m_partition[ipart]));
+  }
+
+  // open dataset reader and processor for each thread
+  // slot for each partition range
+  this->m_players = lockstep::get_node(
+      [ds](dataset::range *part) { return ds->open_player(*part); },
+      this->m_parts);
+  this->m_processors = lockstep::node<dataset::processor>(
+      m_parts.concurrency(), this->m_weight / this->m_norm);
+
+  return dataset::reader<DS>(*this, *ds);
+}
+
+template <typename DS, typename Val>
+auto ana::dataflow::read(dataset::input<DS> &ds, const std::string &name)
+    -> lazy<read_column_t<DS, Val>> {
+  auto act = lockstep::get_node(
+      [name, &ds](dataset::processor *proc, dataset::range *part) {
+        return proc->template read<DS, Val>(std::ref(ds), *part, name);
+      },
+      this->m_processors, this->m_parts);
+  auto lzy = lazy<read_column_t<DS, Val>>(*this, act);
+  this->add_operation(std::move(act));
+  return lzy;
+}
+
+template <typename Val>
+auto ana::dataflow::constant(Val const &val)
+    -> lazy<ana::column::constant<Val>> {
+  auto act = lockstep::get_node(
+      [&val](dataset::processor *proc) {
+        return proc->template constant<Val>(val);
+      },
+      this->m_processors);
+  auto lzy = lazy<column::constant<Val>>(*this, act);
+  this->add_operation(std::move(act));
+  return lzy;
+}
+
+template <typename Val, typename... Args>
+auto ana::dataflow::constant(Args &&...args)
+    -> lazy<ana::column::constant<Val>> {
+  auto act = lockstep::get_node(
+      [args...](dataset::processor *proc) {
+        return proc->template constant<Val>(std::forward<Args>(args)...);
+      },
+      this->m_processors);
+  auto lzy = lazy<column::constant<Val>>(*this, act);
+  this->add_operation(std::move(act));
+  return lzy;
+}
+
+template <typename Def, typename... Args>
+auto ana::dataflow::define(Args &&...args) {
+  return delayed<ana::column::template evaluator_t<Def>>(
+      *this,
+      lockstep::get_node(
+          [&args...](dataset::processor *proc) {
+            return proc->template define<Def>(std::forward<Args>(args)...);
+          },
+          this->m_processors));
+}
+
+template <typename F> auto ana::dataflow::define(F const &callable) {
+  return delayed<ana::column::template evaluator_t<F>>(
+      *this, lockstep::get_node(
+                 [callable](dataset::processor *proc) {
+                   return proc->template define(callable);
+                 },
+                 this->m_processors));
+}
+
+inline auto ana::dataflow::filter(const std::string &name) {
+  auto callable = [](double x) { return x; };
+  return this->template select<selection::cut, decltype(callable)>(name,
+                                                                   callable);
+}
+
+inline auto ana::dataflow::weight(const std::string &name) {
+  auto callable = [](double x) { return x; };
+  return this->template select<selection::weight, decltype(callable)>(name,
+                                                                      callable);
+}
+
+inline auto ana::dataflow::channel(const std::string &name) {
+  auto callable = [](double x) { return x; };
+  return this->template channel<selection::cut, decltype(callable)>(name,
+                                                                    callable);
+}
+
+template <typename F>
+auto ana::dataflow::filter(const std::string &name, F callable) {
+  return this->template select<selection::cut, F>(name, callable);
+}
+
+template <typename F>
+auto ana::dataflow::weight(const std::string &name, F callable)
+    -> delayed<selection::template custom_applicator_t<F>> {
+  return this->template select<selection::weight, F>(name, callable);
+}
+
+template <typename F>
+auto ana::dataflow::channel(const std::string &name, F callable) {
+  return this->template channel<selection::cut, F>(name, callable);
+}
+
+template <typename Sel, typename F>
+auto ana::dataflow::select(const std::string &name, F callable)
+    -> delayed<selection::template custom_applicator_t<F>> {
+  return delayed<selection::template custom_applicator_t<F>>(
+      *this, lockstep::get_node(
+                 [name, callable](dataset::processor *proc) {
+                   return proc->template select<Sel>(nullptr, name, callable);
+                 },
+                 this->m_processors));
+}
+
+template <typename Sel, typename F>
+auto ana::dataflow::channel(const std::string &name, F callable)
+    -> delayed<selection::template custom_applicator_t<F>> {
+  return delayed<selection::template custom_applicator_t<F>>(
+      *this, lockstep::get_node(
+                 [name, callable](dataset::processor *proc) {
+                   return proc->template channel<Sel>(nullptr, name, callable);
+                 },
+                 this->m_processors));
+}
+
+template <typename Cnt, typename... Args>
+auto ana::dataflow::agg(Args &&...args) -> delayed<aggregation::booker<Cnt>> {
+  return delayed<aggregation::booker<Cnt>>(
+      *this, lockstep::get_node(
+                 [&args...](dataset::processor *proc) {
+                   return proc->template book<Cnt>(std::forward<Args>(args)...);
+                 },
+                 this->m_processors));
+}
+
+template <typename Sel>
+auto ana::dataflow::select(lazy<selection> const &prev,
+                           const std::string &name) {
+  auto callable = [](double x) { return x; };
+  return this->template select<Sel, decltype(callable)>(prev, name, callable);
+}
+
+template <typename Sel>
+auto ana::dataflow::channel(lazy<selection> const &prev,
+                            const std::string &name) {
+  auto callable = [](double x) { return x; };
+  return this->template channel<Sel, decltype(callable)>(prev, name, callable);
+}
+
+template <typename Sel, typename F>
+auto ana::dataflow::select(lazy<selection> const &prev, const std::string &name,
+                           F callable)
+    -> delayed<selection::template custom_applicator_t<F>> {
+  return delayed<selection::template custom_applicator_t<F>>(
+      *this,
+      lockstep::get_node(
+          [name, callable](dataset::processor *proc, selection const *prev) {
+            return proc->template select<Sel>(prev, name, callable);
+          },
+          this->m_processors, prev));
+}
+
+template <typename Sel, typename F>
+auto ana::dataflow::channel(lazy<selection> const &prev,
+                            const std::string &name, F callable)
+    -> delayed<selection::template custom_applicator_t<F>> {
+  return delayed<selection::template custom_applicator_t<F>>(
+      *this,
+      lockstep::get_node(
+          [name, callable](dataset::processor *proc, selection const *prev) {
+            return proc->template channel<Sel>(prev, name, callable);
+          },
+          this->m_processors, prev));
+}
+
+template <typename Def, typename... Cols>
+auto ana::dataflow::evaluate_column(delayed<column::evaluator<Def>> const &calc,
+                                    lazy<Cols> const &...columns) -> lazy<Def> {
+  auto act = lockstep::get_node(
+      [](dataset::processor *proc, column::evaluator<Def> *calc,
+         Cols const *...cols) {
+        return proc->template evaluate_column(*calc, *cols...);
+      },
+      this->m_processors, calc, columns...);
+  auto lzy = lazy<Def>(*this, act);
+  this->add_operation(std::move(act));
+  return lzy;
+}
+
+template <typename Eqn, typename... Cols>
+auto ana::dataflow::apply_selection(
+    delayed<selection::applicator<Eqn>> const &calc,
+    lazy<Cols> const &...columns) -> lazy<selection> {
+  auto act = lockstep::get_node(
+      [](dataset::processor *proc, selection::applicator<Eqn> *calc,
+         Cols *...cols) {
+        return proc->template apply_selection(*calc, *cols...);
+      },
+      this->m_processors, calc, columns...);
+  auto lzy = lazy<selection>(*this, act);
+  this->add_operation(std::move(act));
+  return lzy;
+}
+
+template <typename Cnt>
+auto ana::dataflow::select_aggregation(
+    delayed<aggregation::booker<Cnt>> const &bkr, lazy<selection> const &sel)
+    -> lazy<Cnt> {
+  // any time a new aggregation is booked, means the dataflow must run: so reset
+  // its status
+  this->reset();
+  auto act = lockstep::get_node(
+      [](dataset::processor *proc, aggregation::booker<Cnt> *bkr,
+         const selection *sel) { return proc->select_aggregation(*bkr, *sel); },
+      this->m_processors, bkr, sel);
+  auto lzy = lazy<Cnt>(*this, act);
+  this->add_operation(std::move(act));
+  return lzy;
+}
+
+template <typename Cnt, typename... Sels>
+auto ana::dataflow::select_aggregations(
+    delayed<aggregation::booker<Cnt>> const &bkr, lazy<Sels> const &...sels)
+    -> delayed<aggregation::bookkeeper<Cnt>> {
+  // any time a new aggregation is booked, means the dataflow must run: so reset
+  // its status
+  this->reset();
+
+  using delayed_bookkeeper_type = delayed<aggregation::bookkeeper<Cnt>>;
+  auto bkpr = delayed_bookkeeper_type(
+      *this, lockstep::get_node(
+                 [this](dataset::processor *proc, aggregation::booker<Cnt> *bkr,
+                        Sels const *...sels) {
+                   // get bookkeeper and aggregations
+                   auto bkpr_and_cntrs =
+                       proc->select_aggregations(*bkr, *sels...);
+
+                   // add each aggregation to this dataflow
+                   for (auto &&cntr : bkpr_and_cntrs.second) {
+                     this->add_operation(std::move(cntr));
+                   }
+
+                   // take the bookkeeper
+                   return std::move(bkpr_and_cntrs.first);
+                 },
+                 this->m_processors, bkr, sels...));
+  return bkpr;
+}
+
+inline void ana::dataflow::analyze() {
+  // do not analyze if already done
+  if (m_analyzed)
+    return;
+
+  // ignore future analyze() requests until reset() is called
+  m_analyzed = true;
+
+  m_source->initialize();
+
+  this->m_mtcfg.run(
+      [](dataset::processor *proc, dataset::player *plyr,
+         const dataset::range *part) { proc->process(*plyr, *part); },
+      this->m_processors, this->m_players, this->m_parts);
+
+  m_source->finalize();
+
+  // clear aggregations so they are not run more than once
+  this->m_processors.call_all_slots(
+      [](dataset::processor *proc) { proc->clear_aggregations(); });
+}
+
+inline void ana::dataflow::reset() { m_analyzed = false; }
+
+template <typename Val, typename... Vars>
+auto ana::dataflow::vary(lazy<column::template constant<Val>> const &nom,
+                         Vars const &...vars) {
+  typename lazy<column::template constant<Val>>::varied syst(nom);
+  ((this->vary_constant<Val>(syst, vars.name(), vars.args())), ...);
+  return syst;
+}
+
+template <typename Val, typename Lazy, typename... Args>
+void ana::dataflow::vary_constant(Lazy &syst, const std::string &name,
+                                  std::tuple<Args...> args) {
+  auto var = std::apply(
+      [this](Args... args) { return this->constant<Val>(args...); }, args);
+  syst.set_variation(name, std::move(var));
+}
+
+template <typename Col, typename... Vars>
+auto ana::dataflow::vary(delayed<column::template evaluator<Col>> &&nom,
+                         Vars const &...vars) {
+  typename delayed<column::template evaluator<Col>>::varied syst(
+      std::move(nom));
+  ((this->vary_evaluator<Col>(syst, vars.name(), vars.args())), ...);
+  return syst;
+}
+
+template <typename Col, typename Eval, typename... Args>
+void ana::dataflow::vary_evaluator(Eval &syst, const std::string &name,
+                                   std::tuple<Args...> args) {
+  auto var = std::apply(
+      [this](Args... args) { return this->define<Col>(args...); }, args);
+  syst.set_variation(name, std::move(var));
+}
+
+inline void ana::dataflow::add_operation(lockstep::node<operation> operation) {
+  m_operations.emplace_back(std::move(operation.m_model));
+  for (unsigned int i = 0; i < operation.concurrency(); ++i) {
+    m_operations.emplace_back(std::move(operation.m_slots[i]));
+  }
+}
+
+inline void ana::dataflow::add_operation(std::unique_ptr<operation> operation) {
+  m_operations.emplace_back(std::move(operation));
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset_8h/index.html b/analogical/dataset_8h/index.html new file mode 100644 index 00000000..777159fe --- /dev/null +++ b/analogical/dataset_8h/index.html @@ -0,0 +1,1043 @@ + + + + + + + + + + + + + + + + + + + File dataset.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset.h

+

FileList > ana > interface > dataset.h

+

Go to the source code of this file

+
    +
  • #include <cassert>
  • +
  • #include <iostream>
  • +
  • #include <iterator>
  • +
  • #include <memory>
  • +
  • #include <numeric>
  • +
  • #include <string>
  • +
  • #include <vector>
  • +
  • #include "multithread.h"
  • +
  • #include "column.h"
  • +
  • #include "dataset_player.h"
  • +
  • #include "dataset_range.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + + + + + +
TypeName
namespaceana
namespacedataset
+

Classes

+ + + + + + + + + + + + + + + + + + + + + +
TypeName
structfirst
structis_unique_ptr <typename T>
structis_unique_ptr< std::unique_ptr< T > > <typename T>
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset_8h_source/index.html b/analogical/dataset_8h_source/index.html new file mode 100644 index 00000000..152937ec --- /dev/null +++ b/analogical/dataset_8h_source/index.html @@ -0,0 +1,1021 @@ + + + + + + + + + + + + + + + + + + + File dataset.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset.h

+

File List > ana > interface > dataset.h

+

Go to the documentation of this file

+
#pragma once
+
+#include <cassert>
+#include <iostream>
+#include <iterator>
+#include <memory>
+#include <numeric>
+#include <string>
+#include <vector>
+
+#include "multithread.h"
+
+namespace ana {
+
+namespace dataset {
+
+struct range;
+
+struct partition;
+
+template <typename T> class input;
+
+class player;
+
+template <typename T> class reader;
+
+template <typename T> class column;
+
+struct first {
+  first(long long nrows) : nrows(nrows) {}
+  long long nrows;
+};
+
+} // namespace dataset
+
+template <typename T>
+using open_player_t = typename decltype(std::declval<T const &>().open_player(
+    std::declval<const ana::dataset::range &>()))::element_type;
+
+template <typename T, typename Val>
+using read_column_t =
+    typename decltype(std::declval<T>().template read_column<Val>(
+        std::declval<dataset::range const &>(),
+        std::declval<std::string const &>()))::element_type;
+
+template <typename T> struct is_unique_ptr : std::false_type {};
+template <typename T>
+struct is_unique_ptr<std::unique_ptr<T>> : std::true_type {};
+template <typename T>
+static constexpr bool is_unique_ptr_v = is_unique_ptr<T>::value;
+
+} // namespace ana
+
+#include "column.h"
+#include "dataset_player.h"
+#include "dataset_range.h"
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset__column_8h/index.html b/analogical/dataset__column_8h/index.html new file mode 100644 index 00000000..2556110f --- /dev/null +++ b/analogical/dataset__column_8h/index.html @@ -0,0 +1,1026 @@ + + + + + + + + + + + + + + + + + + + File dataset_column.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset_column.h

+

FileList > ana > interface > dataset_column.h

+

Go to the source code of this file

+
    +
  • #include "column.h"
  • +
  • #include "dataset.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + + + + + +
TypeName
namespaceana
namespacedataset
+

Classes

+ + + + + + + + + + + + + +
TypeName
classcolumn <typename T>
Read columns from a dataset.
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_column.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset__column_8h_source/index.html b/analogical/dataset__column_8h_source/index.html new file mode 100644 index 00000000..fb116a6e --- /dev/null +++ b/analogical/dataset__column_8h_source/index.html @@ -0,0 +1,1021 @@ + + + + + + + + + + + + + + + + + + + File dataset_column.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset_column.h

+

File List > ana > interface > dataset_column.h

+

Go to the documentation of this file

+
#pragma once
+
+#include "column.h"
+
+namespace ana {
+
+namespace dataset {
+
+struct range;
+
+template <typename T> class column : public ana::term<T> {
+
+public:
+  column();
+  virtual ~column() = default;
+
+  virtual T const &read(const range &part, unsigned long long entry) const = 0;
+
+  virtual T const &value() const override;
+
+  virtual void execute(const range &part,
+                       unsigned long long entry) final override;
+
+protected:
+  mutable T const *m_addr;
+  mutable bool m_updated;
+
+  const range *m_part;
+  unsigned long long m_entry;
+};
+
+} // namespace dataset
+
+} // namespace ana
+
+#include "dataset.h"
+
+template <typename T>
+ana::dataset::column<T>::column()
+    : m_addr(nullptr), m_updated(false), m_part(nullptr), m_entry(0) {}
+
+template <typename T> T const &ana::dataset::column<T>::value() const {
+  if (!this->m_updated) {
+    m_addr = &(this->read(*this->m_part, m_entry));
+    m_updated = true;
+  }
+  return *m_addr;
+}
+
+template <typename T>
+void ana::dataset::column<T>::execute(const ana::dataset::range &part,
+                                      unsigned long long entry) {
+  this->m_part = &part;
+  this->m_entry = entry;
+  this->m_updated = false;
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset__input_8h/index.html b/analogical/dataset__input_8h/index.html new file mode 100644 index 00000000..e03b91bc --- /dev/null +++ b/analogical/dataset__input_8h/index.html @@ -0,0 +1,1030 @@ + + + + + + + + + + + + + + + + + + + File dataset_input.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset_input.h

+

FileList > ana > interface > dataset_input.h

+

Go to the source code of this file

+
    +
  • #include "dataset.h"
  • +
  • #include "dataset_player.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + + + + + +
TypeName
namespaceana
namespacedataset
+

Classes

+ + + + + + + + + + + + + + + + + +
TypeName
classinput <typename DS>
classsource
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_input.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset__input_8h_source/index.html b/analogical/dataset__input_8h_source/index.html new file mode 100644 index 00000000..6d1fd981 --- /dev/null +++ b/analogical/dataset__input_8h_source/index.html @@ -0,0 +1,1047 @@ + + + + + + + + + + + + + + + + + + + File dataset_input.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset_input.h

+

File List > ana > interface > dataset_input.h

+

Go to the documentation of this file

+
#pragma once
+
+#include "dataset.h"
+
+namespace ana {
+namespace dataset {
+
+class source {
+public:
+  virtual ~source() = default;
+  virtual void initialize();
+  virtual void finalize();
+};
+
+template <typename DS> class input : public source {
+
+public:
+  virtual ~input() = default;
+
+  decltype(auto) open_player(const range &part);
+  std::unique_ptr<ana::dataset::player> open(const ana::dataset::range &part);
+
+  template <typename Val>
+  decltype(auto) read_column(const ana::dataset::range &part,
+                             const std::string &name);
+
+  virtual partition allocate() = 0;
+  virtual double normalize();
+};
+
+} // namespace dataset
+
+} // namespace ana
+
+#include "dataset_player.h"
+
+inline void ana::dataset::source::initialize() {}
+
+inline void ana::dataset::source::finalize() {}
+
+template <typename DS> inline double ana::dataset::input<DS>::normalize() {
+  return 1.0;
+}
+
+template <typename DS>
+decltype(auto)
+ana::dataset::input<DS>::open_player(const ana::dataset::range &part) {
+
+  using result_type = decltype(static_cast<DS *>(this)->open(part));
+  static_assert(is_unique_ptr_v<result_type>,
+                "method must return a std::unique_ptr");
+
+  using player_type = typename result_type::element_type;
+  static_assert(std::is_base_of_v<player, player_type>,
+                "must be an implementation of dataest player");
+
+  return static_cast<DS *>(this)->open(part);
+}
+
+template <typename DS>
+template <typename Val>
+decltype(auto)
+ana::dataset::input<DS>::read_column(const ana::dataset::range &part,
+                                     const std::string &name) {
+
+  // using result_type =
+  //     decltype(static_cast<DS *>(this)->template read<Val>(part, name));
+  // static_assert(is_unique_ptr_v<result_type>,
+  //               "method must return a std::unique_ptr");
+
+  // using column_type = typename result_type::element_type;
+  // static_assert(std::is_base_of_v<column<Val>, column_type>,
+  //               "must be an implementation of dataset column");
+
+  return static_cast<DS *>(this)->template read<Val>(part, name);
+}
+
+template <typename DS>
+std::unique_ptr<ana::dataset::player>
+ana::dataset::input<DS>::open(const ana::dataset::range &) {
+  return std::make_unique<ana::dataset::player>();
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset__player_8h/index.html b/analogical/dataset__player_8h/index.html new file mode 100644 index 00000000..24cfb099 --- /dev/null +++ b/analogical/dataset__player_8h/index.html @@ -0,0 +1,1026 @@ + + + + + + + + + + + + + + + + + + + File dataset_player.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset_player.h

+

FileList > ana > interface > dataset_player.h

+

Go to the source code of this file

+
    +
  • #include "operation.h"
  • +
  • #include "dataset.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + + + + + +
TypeName
namespaceana
namespacedataset
+

Classes

+ + + + + + + + + + + + + +
TypeName
classplayer
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset_player.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dataset__player_8h_source/index.html b/analogical/dataset__player_8h_source/index.html new file mode 100644 index 00000000..96f04368 --- /dev/null +++ b/analogical/dataset__player_8h_source/index.html @@ -0,0 +1,999 @@ + + + + + + + + + + + + + + + + + + + File dataset_player.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File dataset_player.h

+

File List > ana > interface > dataset_player.h

+

Go to the documentation of this file

+
#pragma once
+
+#include "operation.h"
+
+namespace ana {
+
+namespace dataset {
+
+struct range;
+
+class player : public operation {
+
+public:
+  player() = default;
+  virtual ~player() = default;
+
+public:
+  virtual void initialize(const range &) override;
+  virtual void execute(const range &, unsigned long long) override;
+  virtual void finalize(const range &) override;
+};
+
+} // namespace dataset
+
+} // namespace ana
+
+#include "dataset.h"
+
+inline void ana::dataset::player::initialize(const ana::dataset::range &) {}
+
+inline void ana::dataset::player::execute(const ana::dataset::range &,
+                                          unsigned long long) {}
+
+inline void ana::dataset::player::finalize(const ana::dataset::range &) {}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/delayed_8h/index.html b/analogical/delayed_8h/index.html new file mode 100644 index 00000000..5a9c4bac --- /dev/null +++ b/analogical/delayed_8h/index.html @@ -0,0 +1,1024 @@ + + + + + + + + + + + + + + + + + + + File delayed.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File delayed.h

+

FileList > ana > interface > delayed.h

+

Go to the source code of this file

+
    +
  • #include "dataflow.h"
  • +
  • #include "lazy.h"
  • +
  • #include "lazy_varied.h"
  • +
  • #include "systematic_resolver.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + +
TypeName
namespaceana
+

Classes

+ + + + + + + + + + + + + +
TypeName
classdelayed <typename Bkr>
A node that instantiates a lazy action.
+
+

The documentation for this class was generated from the following file include/ana/interface/delayed.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/delayed_8h_source/index.html b/analogical/delayed_8h_source/index.html new file mode 100644 index 00000000..71a27553 --- /dev/null +++ b/analogical/delayed_8h_source/index.html @@ -0,0 +1,1295 @@ + + + + + + + + + + + + + + + + + + + File delayed.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File delayed.h

+

File List > ana > interface > delayed.h

+

Go to the documentation of this file

+
#pragma once
+
+#include "dataflow.h"
+#include "lazy.h"
+#include "lazy_varied.h"
+#include "systematic_resolver.h"
+
+namespace ana {
+
+template <typename T> class delayed;
+
+template <typename U>
+static constexpr std::true_type check_lazy(lazy<U> const &);
+static constexpr std::false_type check_lazy(...);
+template <typename U>
+static constexpr std::true_type check_delayed(delayed<U> const &);
+static constexpr std::false_type check_delayed(...);
+
+template <typename V>
+static constexpr bool is_nominal_v =
+    (decltype(check_lazy(std::declval<V>()))::value ||
+     decltype(check_delayed(std::declval<V>()))::value);
+template <typename V> static constexpr bool is_varied_v = !is_nominal_v<V>;
+
+template <typename... Args>
+static constexpr bool has_no_variation_v = (is_nominal_v<Args> && ...);
+template <typename... Args>
+static constexpr bool has_variation_v = (is_varied_v<Args> || ...);
+
+template <typename Bkr>
+class delayed : public systematic::resolver<delayed<Bkr>>,
+                public lockstep::node<Bkr> {
+
+public:
+  class varied;
+
+public:
+  delayed(dataflow &dataflow, lockstep::node<Bkr> &&operation)
+      : systematic::resolver<delayed<Bkr>>::resolver(dataflow),
+        lockstep::node<Bkr>::node(std::move(operation)) {}
+
+  virtual ~delayed() = default;
+
+  template <typename V>
+  delayed(delayed<V> &&other)
+      : systematic::resolver<delayed<Bkr>>::resolver(*other.m_df),
+        lockstep::node<Bkr>::node(std::move(other)) {}
+
+  template <typename V> delayed &operator=(delayed<V> &&other) {
+    this->m_df = other.m_df;
+    lockstep::node<Bkr>::operator=(std::move(other));
+    return *this;
+  }
+
+  virtual void set_variation(const std::string &var_name,
+                             delayed &&var) override;
+
+  virtual delayed const &nominal() const override;
+  virtual delayed const &variation(const std::string &var_name) const override;
+
+  virtual bool has_variation(const std::string &var_name) const override;
+  virtual std::set<std::string> list_variation_names() const override;
+
+  template <
+      typename... Nodes, typename V = Bkr,
+      std::enable_if_t<ana::column::template is_evaluator_v<V>, bool> = false>
+  auto evaluate(Nodes &&...columns) const
+      -> decltype(std::declval<delayed<V>>().evaluate_column(
+          std::forward<Nodes>(columns)...)) {
+    return this->evaluate_column(std::forward<Nodes>(columns)...);
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::selection::template is_applicator_v<V>,
+                             bool> = false>
+  auto apply(Nodes &&...columns) const
+      -> decltype(std::declval<delayed<V>>().apply_selection(
+          std::forward<Nodes>(columns)...)) {
+    return this->apply_selection(std::forward<Nodes>(columns)...);
+  }
+
+  template <
+      typename... Nodes, typename V = Bkr,
+      std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool> = false>
+  auto fill(Nodes &&...columns) const
+      -> decltype(std::declval<delayed<V>>().fill_aggregation(
+          std::declval<Nodes>()...)) {
+    return this->fill_aggregation(std::forward<Nodes>(columns)...);
+  }
+
+  template <typename Node> auto book(Node &&selection) const {
+    return this->select_aggregation(std::forward<Node>(selection));
+  }
+
+  template <typename... Nodes> auto book(Nodes &&...nodes) const {
+    static_assert(aggregation::template is_booker_v<Bkr>,
+                  "not a aggregation (booker)");
+    return this->select_aggregations(std::forward<Nodes>(nodes)...);
+  }
+
+  template <typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_bookkeeper_v<V>,
+                             bool> = false>
+  auto list_selection_paths() const -> std::set<std::string> {
+    return lockstep::get_value(
+        [](Bkr const *bkpr) { return bkpr->list_selection_paths(); },
+        std::cref(*this));
+  }
+
+  template <typename... Args, typename V = Bkr,
+            std::enable_if_t<column::template is_evaluator_v<V> ||
+                                 selection::template is_applicator_v<V>,
+                             bool> = false>
+  auto operator()(Args &&...columns) const
+      -> decltype(std::declval<delayed<V>>().evaluate_or_apply(
+          std::forward<Args>(std::declval<Args &&>())...)) {
+    return this->evaluate_or_apply(std::forward<Args>(columns)...);
+  }
+
+  template <
+      typename... Args, typename V = Bkr,
+      std::enable_if_t<aggregation::template is_bookkeeper_v<V>, bool> = false>
+  auto operator[](const std::string &selection_path) const
+      -> lazy<aggregation::booked_t<V>> {
+    return this->get_aggregation(selection_path);
+  }
+
+protected:
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::column::template is_evaluator_v<V> &&
+                                 ana::has_no_variation_v<Nodes...>,
+                             bool> = false>
+  auto evaluate_column(Nodes const &...columns) const
+      -> lazy<column::template evaluated_t<V>> {
+    return this->m_df->evaluate_column(*this, columns...);
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::column::template is_evaluator_v<V> &&
+                                 ana::has_variation_v<Nodes...>,
+                             bool> = false>
+  auto evaluate_column(Nodes const &...columns) const ->
+      typename lazy<column::template evaluated_t<V>>::varied {
+
+    using varied_type = typename lazy<column::template evaluated_t<V>>::varied;
+
+    auto nom = this->m_df->evaluate_column(*this, columns.nominal()...);
+    auto syst = varied_type(std::move(nom));
+
+    for (auto const &var_name : list_all_variation_names(columns...)) {
+      auto var =
+          this->m_df->evaluate_column(*this, columns.variation(var_name)...);
+      syst.set_variation(var_name, std::move(var));
+    }
+
+    return syst;
+  }
+
+  template <typename Node, typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_booker_v<V> &&
+                                 ana::is_nominal_v<Node>,
+                             bool> = false>
+  auto select_aggregation(Node const &sel) const
+      -> lazy<aggregation::booked_t<V>> {
+    // nominal
+    return this->m_df->select_aggregation(*this, sel);
+  }
+
+  template <typename Node, typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_booker_v<V> &&
+                                 ana::is_varied_v<Node>,
+                             bool> = false>
+  auto select_aggregation(Node const &sel) const ->
+      typename lazy<aggregation::booked_t<V>>::varied {
+    using varied_type = typename lazy<aggregation::booked_t<V>>::varied;
+    auto syst =
+        varied_type(this->m_df->select_aggregation(*this, sel.nominal()));
+    for (auto const &var_name : list_all_variation_names(sel)) {
+      syst.set_variation(var_name, this->m_df->select_aggregation(
+                                       *this, sel.variation(var_name)));
+    }
+    return syst;
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_booker_v<V> &&
+                                 ana::has_no_variation_v<Nodes...>,
+                             bool> = false>
+  auto select_aggregations(Nodes const &...sels) const
+      -> delayed<aggregation::bookkeeper<aggregation::booked_t<V>>> {
+    // nominal
+    return this->m_df->select_aggregations(*this, sels...);
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_booker_v<V> &&
+                                 has_variation_v<Nodes...>,
+                             bool> = false>
+  auto select_aggregations(Nodes const &...sels) const -> typename delayed<
+      aggregation::bookkeeper<aggregation::booked_t<V>>>::varied {
+    // variations
+    using varied_type = typename delayed<
+        aggregation::bookkeeper<aggregation::booked_t<V>>>::varied;
+    auto syst =
+        varied_type(this->m_df->select_aggregations(*this, sels.nominal()...));
+    for (auto const &var_name : list_all_variation_names(sels...)) {
+      syst.set_variation(var_name, this->m_df->select_aggregations(
+                                       *this, sels.variation(var_name)...));
+    }
+    return syst;
+  }
+
+  template <typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_bookkeeper_v<V>,
+                             bool> = false>
+  auto get_aggregation(const std::string &selection_path) const
+      -> lazy<aggregation::booked_t<V>> {
+    return lazy<aggregation::booked_t<V>>(
+        *this->m_df, lockstep::get_view(
+                         [selection_path](V *bkpr) {
+                           return bkpr->get_aggregation(selection_path);
+                         },
+                         *this));
+  }
+
+  template <typename... Args, typename V = Bkr,
+            std::enable_if_t<column::template is_evaluator_v<V>, bool> = false>
+  auto evaluate_or_apply(Args &&...columns) const
+      -> decltype(std::declval<delayed<V>>().evaluate(
+          std::forward<Args>(std::declval<Args &&>())...)) {
+    return this->evaluate(std::forward<Args>(columns)...);
+  }
+
+  template <
+      typename... Args, typename V = Bkr,
+      std::enable_if_t<selection::template is_applicator_v<V>, bool> = false>
+  auto evaluate_or_apply(Args &&...columns) const
+      -> decltype(std::declval<delayed<V>>().apply(
+          std::forward<Args>(std::declval<Args &&>())...)) {
+    return this->apply(std::forward<Args>(columns)...);
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_booker_v<V> &&
+                                 ana::has_no_variation_v<Nodes...>,
+                             bool> = false>
+  auto fill_aggregation(Nodes const &...columns) const -> delayed<V> {
+    // nominal
+    return delayed<V>(
+        *this->m_df,
+        lockstep::get_node(
+            [](V *fillable, typename Nodes::operation_type *...cols) {
+              return fillable->book_fill(*cols...);
+            },
+            *this, columns...));
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<ana::aggregation::template is_booker_v<V> &&
+                                 has_variation_v<Nodes...>,
+                             bool> = false>
+  auto fill_aggregation(Nodes const &...columns) const -> varied {
+    auto syst = varied(std::move(this->fill_aggregation(columns.nominal()...)));
+    for (auto const &var_name : list_all_variation_names(columns...)) {
+      syst.set_variation(var_name, std::move(this->fill_aggregation(
+                                       columns.variation(var_name)...)));
+    }
+    return syst;
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<selection::template is_applicator_v<V> &&
+                                 ana::has_no_variation_v<Nodes...>,
+                             bool> = false>
+  auto apply_selection(Nodes const &...columns) const -> lazy<selection> {
+    // nominal
+    return this->m_df->apply_selection(*this, columns...);
+  }
+
+  template <typename... Nodes, typename V = Bkr,
+            std::enable_if_t<selection::template is_applicator_v<V> &&
+                                 ana::has_variation_v<Nodes...>,
+                             bool> = false>
+  auto apply_selection(Nodes const &...columns) const ->
+      typename lazy<selection>::varied {
+    // variations
+    using varied_type = typename lazy<selection>::varied;
+    auto syst =
+        varied_type(this->nominal().apply_selection(columns.nominal()...));
+    auto var_names = list_all_variation_names(columns...);
+    for (auto const &var_name : var_names) {
+      syst.set_variation(var_name, this->variation(var_name).apply_selection(
+                                       columns.variation(var_name)...));
+    }
+    return syst;
+  }
+};
+
+} // namespace ana
+
+template <typename Bkr>
+void ana::delayed<Bkr>::set_variation(const std::string &, delayed<Bkr> &&) {
+  // should never be called
+  throw std::logic_error("cannot set variation to a lazy operation");
+}
+
+template <typename Bkr>
+auto ana::delayed<Bkr>::nominal() const -> delayed const & {
+  // this is nominal
+  return *this;
+}
+
+template <typename Bkr>
+auto ana::delayed<Bkr>::variation(const std::string &) const
+    -> delayed const & {
+  // propagation of variations must occur "transparently"
+  return *this;
+}
+
+template <typename Bkr>
+std::set<std::string> ana::delayed<Bkr>::list_variation_names() const {
+  // no variations to list
+  return std::set<std::string>();
+}
+
+template <typename Bkr>
+bool ana::delayed<Bkr>::has_variation(const std::string &) const {
+  // always false
+  return false;
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/delayed__varied_8h/index.html b/analogical/delayed__varied_8h/index.html new file mode 100644 index 00000000..e7cf2d8b --- /dev/null +++ b/analogical/delayed__varied_8h/index.html @@ -0,0 +1,1024 @@ + + + + + + + + + + + + + + + + + + + File delayed_varied.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File delayed_varied.h

+

FileList > ana > interface > delayed_varied.h

+

Go to the source code of this file

+
    +
  • #include "delayed.h"
  • +
  • #include "dataflow.h"
  • +
  • #include "lazy.h"
  • +
  • #include "selection.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + +
TypeName
namespaceana
+

Classes

+ + + + + + + + + + + + + +
TypeName
classvaried
Varied version of a delayed node.
+
+

The documentation for this class was generated from the following file include/ana/interface/delayed_varied.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/delayed__varied_8h_source/index.html b/analogical/delayed__varied_8h_source/index.html new file mode 100644 index 00000000..e5b667b1 --- /dev/null +++ b/analogical/delayed__varied_8h_source/index.html @@ -0,0 +1,1184 @@ + + + + + + + + + + + + + + + + + + + File delayed_varied.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File delayed_varied.h

+

File List > ana > interface > delayed_varied.h

+

Go to the documentation of this file

+
#pragma once
+
+#include "delayed.h"
+
+namespace ana {
+
+template <typename Bld>
+class delayed<Bld>::varied : public systematic::resolver<delayed<Bld>> {
+
+public:
+  varied(delayed<Bld> &&nom);
+  ~varied() = default;
+
+  varied(varied &&) = default;
+  varied &operator=(varied &&) = default;
+
+  virtual void set_variation(const std::string &var_name,
+                             delayed &&var) override;
+
+  virtual delayed const &nominal() const override;
+  virtual delayed const &variation(const std::string &var_name) const override;
+
+  virtual bool has_variation(const std::string &var_name) const override;
+  virtual std::set<std::string> list_variation_names() const override;
+
+public:
+  template <
+      typename... Args, typename V = Bld,
+      std::enable_if_t<ana::column::template is_evaluator_v<V>, bool> = false>
+  auto evaluate(Args &&...args) ->
+      typename ana::lazy<column::template evaluated_t<V>>::varied;
+
+  template <typename... Nodes, typename V = Bld,
+            std::enable_if_t<ana::selection::template is_applicator_v<V>,
+                             bool> = false>
+  auto apply(Nodes const &...columns) -> typename lazy<selection>::varied;
+
+  template <
+      typename... Nodes, typename V = Bld,
+      std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool> = false>
+  auto fill(Nodes const &...columns) -> varied;
+
+  template <
+      typename Node, typename V = Bld,
+      std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool> = false>
+  auto book(Node const &selection) ->
+      typename lazy<aggregation::booked_t<V>>::varied;
+
+  template <
+      typename... Nodes, typename V = Bld,
+      std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool> = false>
+  auto book(Nodes const &...selections) -> typename delayed<
+      aggregation::bookkeeper<aggregation::booked_t<V>>>::varied;
+
+  template <typename... Args>
+  auto operator()(Args &&...args) ->
+      typename lazy<typename decltype(std::declval<delayed<Bld>>().operator()(
+          std::forward<Args>(args).nominal()...))::operation_type>::varied;
+
+  template <typename V = Bld,
+            std::enable_if_t<ana::aggregation::template is_bookkeeper_v<V>,
+                             bool> = false>
+  auto operator[](const std::string &var_name) const -> delayed<V> const &;
+
+protected:
+  delayed<Bld> m_nominal;
+  std::unordered_map<std::string, delayed<Bld>> m_variation_map;
+  std::set<std::string> m_variation_names;
+};
+
+} // namespace ana
+
+#include "dataflow.h"
+#include "lazy.h"
+#include "selection.h"
+
+template <typename Bld>
+ana::delayed<Bld>::varied::varied(delayed<Bld> &&nom)
+    : systematic::resolver<delayed<Bld>>::resolver(*nom.m_df),
+      m_nominal(std::move(nom)) {}
+
+template <typename Bld>
+void ana::delayed<Bld>::varied::set_variation(const std::string &var_name,
+                                              delayed &&var) {
+  m_variation_map.insert(std::move(std::make_pair(var_name, std::move(var))));
+  m_variation_names.insert(var_name);
+}
+
+template <typename Bld>
+auto ana::delayed<Bld>::varied::nominal() const -> delayed const & {
+  return m_nominal;
+}
+
+template <typename Bld>
+auto ana::delayed<Bld>::varied::variation(const std::string &var_name) const
+    -> delayed const & {
+  return (this->has_variation(var_name) ? m_variation_map.at(var_name)
+                                        : m_nominal);
+}
+
+template <typename Bld>
+bool ana::delayed<Bld>::varied::has_variation(
+    const std::string &var_name) const {
+  return m_variation_map.find(var_name) != m_variation_map.end();
+}
+
+template <typename Bld>
+std::set<std::string> ana::delayed<Bld>::varied::list_variation_names() const {
+  return m_variation_names;
+}
+
+template <typename Bld>
+template <typename V,
+          std::enable_if_t<ana::aggregation::template is_bookkeeper_v<V>, bool>>
+auto ana::delayed<Bld>::varied::operator[](const std::string &var_name) const
+    -> delayed<V> const & {
+  if (!this->has_variation(var_name)) {
+    throw std::out_of_range("variation does not exist");
+  }
+  return this->variation(var_name);
+}
+
+template <typename Bld>
+template <typename... Args, typename V,
+          std::enable_if_t<ana::column::template is_evaluator_v<V>, bool>>
+auto ana::delayed<Bld>::varied::evaluate(Args &&...args) ->
+    typename ana::lazy<column::template evaluated_t<V>>::varied {
+  using varied_type =
+      typename ana::lazy<column::template evaluated_t<V>>::varied;
+  auto syst = varied_type(
+      this->nominal().evaluate(std::forward<Args>(args).nominal()...));
+  for (auto const &var_name :
+       list_all_variation_names(*this, std::forward<Args>(args)...)) {
+    syst.set_variation(var_name,
+                       variation(var_name).evaluate(
+                           std::forward<Args>(args).variation(var_name)...));
+  }
+  return syst;
+}
+
+template <typename Bld>
+template <typename... Nodes, typename V,
+          std::enable_if_t<ana::selection::template is_applicator_v<V>, bool>>
+auto ana::delayed<Bld>::varied::apply(Nodes const &...columns) ->
+    typename lazy<selection>::varied {
+
+  using varied_type = typename lazy<selection>::varied;
+  auto syst = varied_type(this->nominal().apply(columns.nominal()...));
+
+  for (auto const &var_name : list_all_variation_names(*this, columns...)) {
+    syst.set_variation(
+        var_name, variation(var_name).apply(columns.variation(var_name)...));
+  }
+
+  return syst;
+}
+
+template <typename Bld>
+template <typename... Nodes, typename V,
+          std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool>>
+auto ana::delayed<Bld>::varied::fill(Nodes const &...columns) -> varied {
+  auto syst = varied(std::move(this->nominal().fill(columns.nominal()...)));
+  for (auto const &var_name : list_all_variation_names(*this, columns...)) {
+    syst.set_variation(var_name, std::move(variation(var_name).fill(
+                                     columns.variation(var_name)...)));
+  }
+  return syst;
+}
+
+template <typename Bld>
+template <typename Node, typename V,
+          std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool>>
+auto ana::delayed<Bld>::varied::book(Node const &selection) ->
+    typename lazy<aggregation::booked_t<V>>::varied {
+  using varied_type = typename lazy<aggregation::booked_t<V>>::varied;
+  auto syst = varied_type(this->nominal().book(selection.nominal()));
+  for (auto const &var_name : list_all_variation_names(*this, selection)) {
+    syst.set_variation(var_name,
+                       variation(var_name).book(selection.variation(var_name)));
+  }
+  return syst;
+}
+
+template <typename Bld>
+template <typename... Nodes, typename V,
+          std::enable_if_t<ana::aggregation::template is_booker_v<V>, bool>>
+auto ana::delayed<Bld>::varied::book(Nodes const &...selections) ->
+    typename delayed<
+        aggregation::bookkeeper<aggregation::booked_t<V>>>::varied {
+  using varied_type = typename delayed<
+      aggregation::bookkeeper<aggregation::booked_t<V>>>::varied;
+  auto syst = varied_type(this->nominal().book(selections.nominal()...));
+  for (auto const &var_name : list_all_variation_names(*this, selections...)) {
+    syst.set_variation(
+        var_name, variation(var_name).book(selections.variation(var_name)...));
+  }
+  return syst;
+}
+
+template <typename Bld>
+template <typename... Args>
+auto ana::delayed<Bld>::varied::operator()(Args &&...args) ->
+    typename lazy<typename decltype(std::declval<delayed<Bld>>().operator()(
+        std::forward<Args>(args).nominal()...))::operation_type>::varied {
+
+  using varied_type =
+      typename lazy<typename decltype(std::declval<delayed<Bld>>().operator()(
+          std::forward<Args>(args).nominal()...))::operation_type>::varied;
+
+  auto syst = varied_type(
+      this->nominal().operator()(std::forward<Args>(args).nominal()...));
+  for (auto const &var_name :
+       list_all_variation_names(*this, std::forward<Args>(args)...)) {
+    syst.set_variation(var_name,
+                       variation(var_name).operator()(
+                           std::forward<Args>(args).variation(var_name)...));
+  }
+  return syst;
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dir_84eaba6853347baf08a3d8bdb9ae76ed/index.html b/analogical/dir_84eaba6853347baf08a3d8bdb9ae76ed/index.html new file mode 100644 index 00000000..43f44a1e --- /dev/null +++ b/analogical/dir_84eaba6853347baf08a3d8bdb9ae76ed/index.html @@ -0,0 +1,1035 @@ + + + + + + + + + + + + + + + + + + + Dir include/ana/interface - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Dir include/ana/interface

+

FileList > ana > interface

+

Files

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
fileaggregation_logic.h
filecolumn_definition.h
filedataflow.h
filedataset.h
filedataset_column.h
filedataset_input.h
filedataset_player.h
filedelayed.h
filedelayed_varied.h
filelazy.h
filelazy_varied.h
+
+

The documentation for this class was generated from the following file include/ana/interface/

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dir_94c1dbed684461364b7a5c1bafc6ad0d/index.html b/analogical/dir_94c1dbed684461364b7a5c1bafc6ad0d/index.html new file mode 100644 index 00000000..0bc745d6 --- /dev/null +++ b/analogical/dir_94c1dbed684461364b7a5c1bafc6ad0d/index.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + + + + + + + Dir include/ana - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Dir include/ana

+

FileList > ana

+

Directories

+ + + + + + + + + + + + + +
TypeName
dirinterface
+
+

The documentation for this class was generated from the following file include/ana/

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/dir_d44c64559bbebec7f509842c48db8b23/index.html b/analogical/dir_d44c64559bbebec7f509842c48db8b23/index.html new file mode 100644 index 00000000..f4cfd1f1 --- /dev/null +++ b/analogical/dir_d44c64559bbebec7f509842c48db8b23/index.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + + + + + + + Dir include - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Dir include

+

FileList > include

+

Directories

+ + + + + + + + + + + + + +
TypeName
dirana
+
+

The documentation for this class was generated from the following file include/

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/files/index.html b/analogical/files/index.html new file mode 100644 index 00000000..e57c959d --- /dev/null +++ b/analogical/files/index.html @@ -0,0 +1,985 @@ + + + + + + + + + + + + + + + + + + + File List - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/functions/index.html b/analogical/functions/index.html new file mode 100644 index 00000000..e39756ea --- /dev/null +++ b/analogical/functions/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + Functions - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Functions

+

Nothing related to Functions found.

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/hierarchy/index.html b/analogical/hierarchy/index.html new file mode 100644 index 00000000..c914ff2b --- /dev/null +++ b/analogical/hierarchy/index.html @@ -0,0 +1,1020 @@ + + + + + + + + + + + + + + + + + + + Class Hierarchy - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Class Hierarchy

+

This inheritance list is sorted roughly, but not completely, alphabetically:

+ + + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/lazy_8h/index.html b/analogical/lazy_8h/index.html new file mode 100644 index 00000000..f4b78d6e --- /dev/null +++ b/analogical/lazy_8h/index.html @@ -0,0 +1,1233 @@ + + + + + + + + + + + + + + + + + + + File lazy.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

File lazy.h

+

FileList > ana > interface > lazy.h

+

Go to the source code of this file

+
    +
  • #include <iostream>
  • +
  • #include <set>
  • +
  • #include <type_traits>
  • +
  • #include "dataflow.h"
  • +
  • #include "systematic_resolver.h"
  • +
  • #include "column.h"
  • +
  • #include "delayed.h"
  • +
  • #include "lazy_varied.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + + + + + +
TypeName
namespaceana
namespaceop_check
+

Classes

+ + + + + + + + + + + + + +
TypeName
classlazy <typename Action>
+

Macros

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
defineCHECK_FOR_BINARY_OP (op_name, op_symbol)
defineCHECK_FOR_SUBSCRIPT_OP ()
defineCHECK_FOR_UNARY_OP (op_name, op_symbol)
defineDEFINE_LAZY_BINARY_OP (op_name, op_symbol)
defineDEFINE_LAZY_SUBSCRIPT_OP ()
defineDEFINE_LAZY_UNARY_OP (op_name, op_symbol)
+

Macro Definition Documentation

+

define CHECK_FOR_BINARY_OP

+
#define CHECK_FOR_BINARY_OP (
+    op_name,
+    op_symbol
+) struct has_no_##op_name {};                                                  \
+  template <typename T, typename Arg>                                          \
+  has_no_##op_name operator op_symbol(const T &, const Arg &);                 \
+  template <typename T, typename Arg = T> struct has_##op_name {               \
+    enum {                                                                     \
+      value = !std::is_same<decltype(std::declval<T>()                         \
+                                         op_symbol std::declval<Arg>()),       \
+                            has_no_##op_name>::value                           \
+    };                                                                         \
+  };                                                                           \
+  template <typename T, typename Arg = T>                                      \
+  static constexpr bool has_##op_name##_v = has_##op_name<T, Arg>::value;
+
+

define CHECK_FOR_SUBSCRIPT_OP

+
#define CHECK_FOR_SUBSCRIPT_OP (
+
+) template <class T, class Index> struct has_subscript_impl {                  \
+    template <class T1, class IndexDeduced = Index,                            \
+              class Reference = decltype((                                     \
+                  *std::declval<T *>())[std::declval<IndexDeduced>()]),        \
+              typename = typename std::enable_if<                              \
+                  !std::is_void<Reference>::value>::type>                      \
+    static std::true_type test(int);                                           \
+    template <class> static std::false_type test(...);                         \
+    using type = decltype(test<T>(0));                                         \
+  };                                                                           \
+  template <class T, class Index>                                              \
+  using has_subscript = typename has_subscript_impl<T, Index>::type;           \
+  template <class T, class Index>                                              \
+  static constexpr bool has_subscript_v = has_subscript<T, Index>::value;
+
+

define CHECK_FOR_UNARY_OP

+
#define CHECK_FOR_UNARY_OP (
+    op_name,
+    op_symbol
+) struct has_no_##op_name {};                                                  \
+  template <typename T> has_no_##op_name operator op_symbol(const T &);        \
+  template <typename T> struct has_##op_name {                                 \
+    enum {                                                                     \
+      value = !std::is_same<decltype(op_symbol std::declval<T>()),             \
+                            has_no_##op_name>::value                           \
+    };                                                                         \
+  };                                                                           \
+  template <typename T>                                                        \
+  static constexpr bool has_##op_name##_v = has_##op_name<T>::value;
+
+

define DEFINE_LAZY_BINARY_OP

+
#define DEFINE_LAZY_BINARY_OP (
+    op_name,
+    op_symbol
+) template <                                                                   \
+      typename Arg, typename V = Action,                                       \
+      std::enable_if_t<ana::is_column_v<V> &&                                  \
+                           ana::is_column_v<typename Arg::operation_type> &&   \
+                           op_check::has_##op_name##_v<                        \
+                               cell_value_t<V>,                                \
+                               cell_value_t<typename Arg::operation_type>>,    \
+                       bool> = false>                                          \
+  auto operator op_symbol(Arg const &arg) const {                              \
+    return this->m_df                                                          \
+        ->define([](cell_value_t<V> const &me,                                 \
+                    cell_value_t<typename Arg::operation_type> const &you) {   \
+          return me op_symbol you;                                             \
+        })                                                                     \
+        .evaluate(*this, arg);                                                 \
+  }
+
+

define DEFINE_LAZY_SUBSCRIPT_OP

+
#define DEFINE_LAZY_SUBSCRIPT_OP (
+
+) template <                                                                   \
+      typename Arg, typename V = Action,                                       \
+      std::enable_if_t<is_column_v<V> &&                                       \
+                           op_check::has_subscript_v<                          \
+                               cell_value_t<V>,                                \
+                               cell_value_t<typename Arg::operation_type>>,    \
+                       bool> = false>                                          \
+  auto operator[](Arg const &arg) const {                                      \
+    return this->m_df->define(                                                 \
+        [](cell_value_t<V> me,                                                 \
+           cell_value_t<typename Arg::operation_type> index) {                 \
+          return me[index];                                                    \
+        })(*this, arg);                                                        \
+  }
+
+

define DEFINE_LAZY_UNARY_OP

+
#define DEFINE_LAZY_UNARY_OP (
+    op_name,
+    op_symbol
+) template <typename V = Action,                                               \
+            std::enable_if_t<ana::is_column_v<V> &&                            \
+                                 op_check::has_##op_name##_v<cell_value_t<V>>, \
+                             bool> = false>                                    \
+  auto operator op_symbol() const {                                            \
+    return this->m_df                                                          \
+        ->define([](cell_value_t<V> const &me) { return (op_symbol me); })     \
+        .evaluate(*this);                                                      \
+  }
+
+
+

The documentation for this class was generated from the following file include/ana/interface/lazy.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/lazy_8h_source/index.html b/analogical/lazy_8h_source/index.html new file mode 100644 index 00000000..5b8343e9 --- /dev/null +++ b/analogical/lazy_8h_source/index.html @@ -0,0 +1,1301 @@ + + + + + + + + + + + + + + + + + + + File lazy.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File lazy.h

+

File List > ana > interface > lazy.h

+

Go to the documentation of this file

+
#pragma once
+
+#include <iostream>
+#include <set>
+#include <type_traits>
+
+#include "dataflow.h"
+#include "systematic_resolver.h"
+
+#define CHECK_FOR_BINARY_OP(op_name, op_symbol)                                \
+  struct has_no_##op_name {};                                                  \
+  template <typename T, typename Arg>                                          \
+  has_no_##op_name operator op_symbol(const T &, const Arg &);                 \
+  template <typename T, typename Arg = T> struct has_##op_name {               \
+    enum {                                                                     \
+      value = !std::is_same<decltype(std::declval<T>()                         \
+                                         op_symbol std::declval<Arg>()),       \
+                            has_no_##op_name>::value                           \
+    };                                                                         \
+  };                                                                           \
+  template <typename T, typename Arg = T>                                      \
+  static constexpr bool has_##op_name##_v = has_##op_name<T, Arg>::value;
+
+#define DEFINE_LAZY_BINARY_OP(op_name, op_symbol)                              \
+  template <                                                                   \
+      typename Arg, typename V = Action,                                       \
+      std::enable_if_t<ana::is_column_v<V> &&                                  \
+                           ana::is_column_v<typename Arg::operation_type> &&   \
+                           op_check::has_##op_name##_v<                        \
+                               cell_value_t<V>,                                \
+                               cell_value_t<typename Arg::operation_type>>,    \
+                       bool> = false>                                          \
+  auto operator op_symbol(Arg const &arg) const {                              \
+    return this->m_df                                                          \
+        ->define([](cell_value_t<V> const &me,                                 \
+                    cell_value_t<typename Arg::operation_type> const &you) {   \
+          return me op_symbol you;                                             \
+        })                                                                     \
+        .evaluate(*this, arg);                                                 \
+  }
+
+#define CHECK_FOR_UNARY_OP(op_name, op_symbol)                                 \
+  struct has_no_##op_name {};                                                  \
+  template <typename T> has_no_##op_name operator op_symbol(const T &);        \
+  template <typename T> struct has_##op_name {                                 \
+    enum {                                                                     \
+      value = !std::is_same<decltype(op_symbol std::declval<T>()),             \
+                            has_no_##op_name>::value                           \
+    };                                                                         \
+  };                                                                           \
+  template <typename T>                                                        \
+  static constexpr bool has_##op_name##_v = has_##op_name<T>::value;
+
+#define DEFINE_LAZY_UNARY_OP(op_name, op_symbol)                               \
+  template <typename V = Action,                                               \
+            std::enable_if_t<ana::is_column_v<V> &&                            \
+                                 op_check::has_##op_name##_v<cell_value_t<V>>, \
+                             bool> = false>                                    \
+  auto operator op_symbol() const {                                            \
+    return this->m_df                                                          \
+        ->define([](cell_value_t<V> const &me) { return (op_symbol me); })     \
+        .evaluate(*this);                                                      \
+  }
+
+#define CHECK_FOR_SUBSCRIPT_OP()                                               \
+  template <class T, class Index> struct has_subscript_impl {                  \
+    template <class T1, class IndexDeduced = Index,                            \
+              class Reference = decltype((                                     \
+                  *std::declval<T *>())[std::declval<IndexDeduced>()]),        \
+              typename = typename std::enable_if<                              \
+                  !std::is_void<Reference>::value>::type>                      \
+    static std::true_type test(int);                                           \
+    template <class> static std::false_type test(...);                         \
+    using type = decltype(test<T>(0));                                         \
+  };                                                                           \
+  template <class T, class Index>                                              \
+  using has_subscript = typename has_subscript_impl<T, Index>::type;           \
+  template <class T, class Index>                                              \
+  static constexpr bool has_subscript_v = has_subscript<T, Index>::value;
+
+#define DEFINE_LAZY_SUBSCRIPT_OP()                                             \
+  template <                                                                   \
+      typename Arg, typename V = Action,                                       \
+      std::enable_if_t<is_column_v<V> &&                                       \
+                           op_check::has_subscript_v<                          \
+                               cell_value_t<V>,                                \
+                               cell_value_t<typename Arg::operation_type>>,    \
+                       bool> = false>                                          \
+  auto operator[](Arg const &arg) const {                                      \
+    return this->m_df->define(                                                 \
+        [](cell_value_t<V> me,                                                 \
+           cell_value_t<typename Arg::operation_type> index) {                 \
+          return me[index];                                                    \
+        })(*this, arg);                                                        \
+  }
+
+namespace ana {
+
+namespace op_check {
+CHECK_FOR_UNARY_OP(logical_not, !)
+CHECK_FOR_UNARY_OP(minus, -)
+CHECK_FOR_BINARY_OP(addition, +)
+CHECK_FOR_BINARY_OP(subtroperation, -)
+CHECK_FOR_BINARY_OP(multiplication, *)
+CHECK_FOR_BINARY_OP(division, /)
+CHECK_FOR_BINARY_OP(remainder, %)
+CHECK_FOR_BINARY_OP(greater_than, >)
+CHECK_FOR_BINARY_OP(less_than, <)
+CHECK_FOR_BINARY_OP(greater_than_or_equal_to, >=)
+CHECK_FOR_BINARY_OP(less_than_or_equal_to, <=)
+CHECK_FOR_BINARY_OP(equality, ==)
+CHECK_FOR_BINARY_OP(inequality, !=)
+CHECK_FOR_BINARY_OP(logical_and, &&)
+CHECK_FOR_BINARY_OP(logical_or, ||)
+CHECK_FOR_SUBSCRIPT_OP()
+} // namespace op_check
+
+template <typename Action>
+class lazy : public systematic::resolver<lazy<Action>>,
+             public lockstep::view<Action> {
+
+public:
+  class varied;
+
+public:
+  using operation_type = Action;
+
+public:
+  friend class dataflow;
+  template <typename> friend class lazy;
+
+public:
+  lazy(dataflow &dataflow, const lockstep::view<Action> &operation)
+      : systematic::resolver<lazy<Action>>::resolver(dataflow),
+        lockstep::view<Action>::view(operation) {}
+  lazy(dataflow &dataflow, const lockstep::node<Action> &operation)
+      : systematic::resolver<lazy<Action>>::resolver(dataflow),
+        lockstep::view<Action>::view(operation) {}
+
+  lazy(const lazy &) = default;
+  lazy &operator=(const lazy &) = default;
+
+  template <typename Derived> lazy(lazy<Derived> const &derived);
+  template <typename Derived> lazy &operator=(lazy<Derived> const &derived);
+
+  virtual ~lazy() = default;
+
+  virtual void set_variation(const std::string &var_name, lazy &&var) override;
+
+  virtual lazy const &nominal() const override;
+  virtual lazy const &variation(const std::string &var_name) const override;
+
+  virtual bool has_variation(const std::string &var_name) const override;
+  virtual std::set<std::string> list_variation_names() const override;
+
+  template <typename... Args>
+  auto filter(const std::string &name, Args &&...args) const;
+
+  template <typename... Args>
+  auto weight(const std::string &name, Args &&...args) const;
+
+  template <typename... Args>
+  auto channel(const std::string &name, Args &&...args) const;
+
+  template <typename Agg> auto book(Agg &&agg) const;
+  template <typename... Aggs> auto book(Aggs &&...aggs) const;
+
+  template <typename V = Action,
+            std::enable_if_t<is_selection_v<V>, bool> = false>
+  std::string path() const {
+    return lockstep::get_value(
+        [](const selection &me) { return me.get_path(); }, std::cref(*this));
+  }
+
+  template <typename V = Action,
+            std::enable_if_t<ana::aggregation::template has_output_v<V>, bool> =
+                false>
+  auto result() const;
+
+  template <typename V = Action,
+            std::enable_if_t<ana::aggregation::template has_output_v<V>, bool> =
+                false>
+  auto operator->() const -> decltype(std::declval<V>().get_result()) {
+    return this->result();
+  }
+
+  DEFINE_LAZY_SUBSCRIPT_OP()
+  DEFINE_LAZY_UNARY_OP(logical_not, !)
+  DEFINE_LAZY_UNARY_OP(minus, -)
+  DEFINE_LAZY_BINARY_OP(equality, ==)
+  DEFINE_LAZY_BINARY_OP(inequality, !=)
+  DEFINE_LAZY_BINARY_OP(addition, +)
+  DEFINE_LAZY_BINARY_OP(subtroperation, -)
+  DEFINE_LAZY_BINARY_OP(multiplication, *)
+  DEFINE_LAZY_BINARY_OP(division, /)
+  DEFINE_LAZY_BINARY_OP(logical_or, ||)
+  DEFINE_LAZY_BINARY_OP(logical_and, &&)
+  DEFINE_LAZY_BINARY_OP(greater_than, >)
+  DEFINE_LAZY_BINARY_OP(less_than, <)
+  DEFINE_LAZY_BINARY_OP(greater_than_or_equal_to, >=)
+  DEFINE_LAZY_BINARY_OP(less_than_or_equal_to, <=)
+
+protected:
+  template <typename V = Action,
+            std::enable_if_t<ana::aggregation::template has_output_v<V>, bool> =
+                false>
+  void merge_results() const;
+};
+
+} // namespace ana
+
+#include "column.h"
+#include "delayed.h"
+#include "lazy_varied.h"
+
+template <typename Action>
+template <typename Derived>
+ana::lazy<Action>::lazy(lazy<Derived> const &derived)
+    : ana::systematic::resolver<lazy<Action>>(*derived.m_df),
+      ana::lockstep::view<Action>(derived) {
+  this->m_df = derived.m_df;
+}
+
+template <typename Action>
+template <typename Derived>
+ana::lazy<Action> &ana::lazy<Action>::operator=(lazy<Derived> const &derived) {
+  lockstep::view<Action>::operator=(derived);
+  this->m_df = derived.m_df;
+  return *this;
+}
+
+template <typename Action>
+void ana::lazy<Action>::set_variation(const std::string &, lazy &&) {
+  // should never be called
+  throw std::logic_error("cannot set variation to a lazy operation");
+}
+
+template <typename Action>
+auto ana::lazy<Action>::nominal() const -> lazy const & {
+  // this is nominal
+  return *this;
+}
+
+template <typename Action>
+auto ana::lazy<Action>::variation(const std::string &) const -> lazy const & {
+  // propagation of variations must occur "transparently"
+  return *this;
+}
+
+template <typename Action>
+std::set<std::string> ana::lazy<Action>::list_variation_names() const {
+  // no variations to list
+  return std::set<std::string>();
+}
+
+template <typename Action>
+bool ana::lazy<Action>::has_variation(const std::string &) const {
+  // always false
+  return false;
+}
+
+template <typename Action>
+template <typename... Args>
+auto ana::lazy<Action>::filter(const std::string &name, Args &&...args) const {
+  if constexpr (std::is_base_of_v<selection, Action>) {
+    return this->m_df->template select<selection::cut>(
+        *this, name, std::forward<Args>(args)...);
+  } else {
+    static_assert(std::is_base_of_v<selection, Action>,
+                  "filter must be called from a selection");
+  }
+}
+
+template <typename Action>
+template <typename... Args>
+auto ana::lazy<Action>::weight(const std::string &name, Args &&...args) const {
+  if constexpr (std::is_base_of_v<selection, Action>) {
+    return this->m_df->template select<selection::weight>(
+        *this, name, std::forward<Args>(args)...);
+  } else {
+    static_assert(std::is_base_of_v<selection, Action>,
+                  "weight must be called from a selection");
+  }
+}
+
+template <typename Action>
+template <typename... Args>
+auto ana::lazy<Action>::channel(const std::string &name, Args &&...args) const {
+  if constexpr (std::is_base_of_v<selection, Action>) {
+    return this->m_df->template channel<selection::weight>(
+        *this, name, std::forward<Args>(args)...);
+  } else {
+    static_assert(std::is_base_of_v<selection, Action>,
+                  "channel must be called from a selection");
+  }
+}
+
+template <typename Action>
+template <typename Agg>
+auto ana::lazy<Action>::book(Agg &&agg) const {
+  static_assert(std::is_base_of_v<selection, Action>,
+                "book must be called from a selection");
+  return agg.book(*this);
+}
+
+template <typename Action>
+template <typename... Aggs>
+auto ana::lazy<Action>::book(Aggs &&...aggs) const {
+  static_assert(std::is_base_of_v<selection, Action>,
+                "book must be called from a selection");
+  return std::make_tuple((aggs.book(*this), ...));
+}
+
+template <typename Action>
+template <typename V,
+          std::enable_if_t<ana::aggregation::template has_output_v<V>, bool>>
+auto ana::lazy<Action>::result() const {
+  this->m_df->analyze();
+  this->merge_results();
+  return this->get_model()->get_result();
+}
+
+template <typename Action>
+template <typename V,
+          std::enable_if_t<ana::aggregation::template has_output_v<V>, bool> e>
+void ana::lazy<Action>::merge_results() const {
+  auto model = this->get_model();
+  if (!model->is_merged()) {
+    std::vector<std::decay_t<decltype(model->get_result())>> results;
+    results.reserve(this->concurrency());
+    for (size_t islot = 0; islot < this->concurrency(); ++islot) {
+      results.push_back(this->get_slot(islot)->get_result());
+    }
+    model->merge_results(results);
+  }
+}
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/lazy__varied_8h/index.html b/analogical/lazy__varied_8h/index.html new file mode 100644 index 00000000..807e78ce --- /dev/null +++ b/analogical/lazy__varied_8h/index.html @@ -0,0 +1,1161 @@ + + + + + + + + + + + + + + + + + + + File lazy_varied.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

File lazy_varied.h

+

FileList > ana > interface > lazy_varied.h

+

Go to the source code of this file

+
    +
  • #include <set>
  • +
  • #include <type_traits>
  • +
  • #include <unordered_map>
  • +
  • #include <utility>
  • +
  • #include "lazy.h"
  • +
  • #include "systematic_resolver.h"
  • +
  • #include "selection.h"
  • +
+

Namespaces

+ + + + + + + + + + + + + +
TypeName
namespaceana
+

Classes

+ + + + + + + + + + + + + +
TypeName
classvaried
Variations of a lazy operation to be performed in an dataflow.
+

Macros

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
defineDECLARE_LAZY_VARIED_BINARY_OP (op_symbol)
defineDECLARE_LAZY_VARIED_UNARY_OP (op_symbol)
defineDEFINE_LAZY_VARIED_BINARY_OP (op_symbol)
defineDEFINE_LAZY_VARIED_UNARY_OP (op_name, op_symbol)
+

Macro Definition Documentation

+

define DECLARE_LAZY_VARIED_BINARY_OP

+
#define DECLARE_LAZY_VARIED_BINARY_OP (
+    op_symbol
+) template <typename Arg>                                                      \
+  auto operator op_symbol(Arg &&b) const->typename lazy<                       \
+      typename decltype(std::declval<lazy<Act>>().operator op_symbol(          \
+          std::forward<Arg>(b).nominal()))::operation_type>::varied;
+
+

define DECLARE_LAZY_VARIED_UNARY_OP

+
#define DECLARE_LAZY_VARIED_UNARY_OP (
+    op_symbol
+) template <typename V = Act,                                                  \
+            std::enable_if_t<ana::is_column_v<V>, bool> = false>               \
+  auto operator op_symbol() const->typename lazy<                              \
+      typename decltype(std::declval<lazy<V>>().                               \
+                        operator op_symbol())::operation_type>::varied;
+
+

define DEFINE_LAZY_VARIED_BINARY_OP

+
#define DEFINE_LAZY_VARIED_BINARY_OP (
+    op_symbol
+) template <typename Act>                                                      \
+  template <typename Arg>                                                      \
+  auto ana::lazy <Act>::varied::operator op_symbol(Arg &&b) const->             \
+      typename lazy<                                                           \
+          typename decltype(std::declval<lazy<Act>>().operator op_symbol(      \
+              std::forward<Arg>(b).nominal()))::operation_type>::varied {      \
+    auto syst = typename lazy<                                                 \
+        typename decltype(std::declval<lazy<Act>>().operator op_symbol(        \
+            std::forward<Arg>(b).nominal()))::operation_type>::                \
+        varied(this->nominal().operator op_symbol(                             \
+            std::forward<Arg>(b).nominal()));                                  \
+    for (auto const &var_name :                                                \
+         list_all_variation_names(*this, std::forward<Arg>(b))) {              \
+      syst.set_variation(var_name,                                             \
+                         variation(var_name).operator op_symbol(               \
+                             std::forward<Arg>(b).variation(var_name)));       \
+    }                                                                          \
+    return syst;                                                               \
+  }
+
+

define DEFINE_LAZY_VARIED_UNARY_OP

+
#define DEFINE_LAZY_VARIED_UNARY_OP (
+    op_name,
+    op_symbol
+) template <typename Act>                                                      \
+  template <typename V, std::enable_if_t<ana::is_column_v<V>, bool>>           \
+  auto ana::lazy <Act>::varied::operator op_symbol() const->typename lazy<      \
+      typename decltype(std::declval<lazy<V>>().                               \
+                        operator op_symbol())::operation_type>::varied {       \
+    auto syst = typename lazy<                                                 \
+        typename decltype(std::declval<lazy<V>>().operator op_symbol())::      \
+            operation_type>::varied(this->nominal().operator op_symbol());     \
+    for (auto const &var_name : list_all_variation_names(*this)) {             \
+      syst.set_variation(var_name, variation(var_name).operator op_symbol());  \
+    }                                                                          \
+    return syst;                                                               \
+  }
+
+
+

The documentation for this class was generated from the following file include/ana/interface/lazy_varied.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/lazy__varied_8h_source/index.html b/analogical/lazy__varied_8h_source/index.html new file mode 100644 index 00000000..331a4bc9 --- /dev/null +++ b/analogical/lazy__varied_8h_source/index.html @@ -0,0 +1,1229 @@ + + + + + + + + + + + + + + + + + + + File lazy_varied.h - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

File lazy_varied.h

+

File List > ana > interface > lazy_varied.h

+

Go to the documentation of this file

+
#pragma once
+
+#include <set>
+#include <type_traits>
+#include <unordered_map>
+#include <utility>
+
+#include "lazy.h"
+#include "systematic_resolver.h"
+
+#define DECLARE_LAZY_VARIED_BINARY_OP(op_symbol)                               \
+  template <typename Arg>                                                      \
+  auto operator op_symbol(Arg &&b) const->typename lazy<                       \
+      typename decltype(std::declval<lazy<Act>>().operator op_symbol(          \
+          std::forward<Arg>(b).nominal()))::operation_type>::varied;
+#define DEFINE_LAZY_VARIED_BINARY_OP(op_symbol)                                \
+  template <typename Act>                                                      \
+  template <typename Arg>                                                      \
+  auto ana::lazy<Act>::varied::operator op_symbol(Arg &&b) const->             \
+      typename lazy<                                                           \
+          typename decltype(std::declval<lazy<Act>>().operator op_symbol(      \
+              std::forward<Arg>(b).nominal()))::operation_type>::varied {      \
+    auto syst = typename lazy<                                                 \
+        typename decltype(std::declval<lazy<Act>>().operator op_symbol(        \
+            std::forward<Arg>(b).nominal()))::operation_type>::                \
+        varied(this->nominal().operator op_symbol(                             \
+            std::forward<Arg>(b).nominal()));                                  \
+    for (auto const &var_name :                                                \
+         list_all_variation_names(*this, std::forward<Arg>(b))) {              \
+      syst.set_variation(var_name,                                             \
+                         variation(var_name).operator op_symbol(               \
+                             std::forward<Arg>(b).variation(var_name)));       \
+    }                                                                          \
+    return syst;                                                               \
+  }
+#define DECLARE_LAZY_VARIED_UNARY_OP(op_symbol)                                \
+  template <typename V = Act,                                                  \
+            std::enable_if_t<ana::is_column_v<V>, bool> = false>               \
+  auto operator op_symbol() const->typename lazy<                              \
+      typename decltype(std::declval<lazy<V>>().                               \
+                        operator op_symbol())::operation_type>::varied;
+#define DEFINE_LAZY_VARIED_UNARY_OP(op_name, op_symbol)                        \
+  template <typename Act>                                                      \
+  template <typename V, std::enable_if_t<ana::is_column_v<V>, bool>>           \
+  auto ana::lazy<Act>::varied::operator op_symbol() const->typename lazy<      \
+      typename decltype(std::declval<lazy<V>>().                               \
+                        operator op_symbol())::operation_type>::varied {       \
+    auto syst = typename lazy<                                                 \
+        typename decltype(std::declval<lazy<V>>().operator op_symbol())::      \
+            operation_type>::varied(this->nominal().operator op_symbol());     \
+    for (auto const &var_name : list_all_variation_names(*this)) {             \
+      syst.set_variation(var_name, variation(var_name).operator op_symbol());  \
+    }                                                                          \
+    return syst;                                                               \
+  }
+
+namespace ana {
+
+template <typename Act>
+class lazy<Act>::varied : public systematic::resolver<lazy<Act>> {
+
+public:
+  using operation_type = typename lazy<Act>::operation_type;
+
+  template <typename... Args>
+  using delayed_varied_selection_applicator_t =
+      typename decltype(std::declval<dataflow>().filter(
+          std::declval<std::string>(), std::declval<Args>()...))::varied;
+
+public:
+  varied(lazy<Act> const &nom);
+  ~varied() = default;
+
+  virtual void set_variation(const std::string &var_name, lazy &&var) override;
+
+  virtual lazy const &nominal() const override;
+  virtual lazy const &variation(const std::string &var_name) const override;
+
+  virtual bool has_variation(const std::string &var_name) const override;
+  virtual std::set<std::string> list_variation_names() const override;
+
+  template <typename... Args, typename V = Act,
+            std::enable_if_t<ana::is_selection_v<V>, bool> = false>
+  auto filter(const std::string &name, Args &&...arguments)
+      -> delayed_varied_selection_applicator_t<Args...>;
+
+  template <typename... Args, typename V = Act,
+            std::enable_if_t<ana::is_selection_v<V>, bool> = false>
+  auto weight(const std::string &name, Args &&...arguments)
+      -> delayed_varied_selection_applicator_t<Args...>;
+
+  template <typename... Args, typename V = Act,
+            std::enable_if_t<ana::is_selection_v<V>, bool> = false>
+  auto channel(const std::string &name, Args &&...arguments)
+      -> delayed_varied_selection_applicator_t<Args...>;
+
+  template <typename Agg, typename V = Act,
+            std::enable_if_t<ana::is_selection_v<V>, bool> = false>
+  auto book(Agg &&agg);
+
+  template <typename... Aggs, typename V = Act,
+            std::enable_if_t<ana::is_selection_v<V>, bool> = false>
+  auto book(Aggs &&...aggs);
+
+  template <typename V = Act,
+            std::enable_if_t<ana::is_column_v<V> ||
+                                 ana::aggregation::template has_output_v<V>,
+                             bool> = false>
+  auto operator[](const std::string &var_name) const -> lazy<V>;
+
+  DECLARE_LAZY_VARIED_UNARY_OP(-)
+  DECLARE_LAZY_VARIED_UNARY_OP(!)
+
+  DECLARE_LAZY_VARIED_BINARY_OP(+)
+  DECLARE_LAZY_VARIED_BINARY_OP(-)
+  DECLARE_LAZY_VARIED_BINARY_OP(*)
+  DECLARE_LAZY_VARIED_BINARY_OP(/)
+  DECLARE_LAZY_VARIED_BINARY_OP(<)
+  DECLARE_LAZY_VARIED_BINARY_OP(>)
+  DECLARE_LAZY_VARIED_BINARY_OP(<=)
+  DECLARE_LAZY_VARIED_BINARY_OP(>=)
+  DECLARE_LAZY_VARIED_BINARY_OP(==)
+  DECLARE_LAZY_VARIED_BINARY_OP(&&)
+  DECLARE_LAZY_VARIED_BINARY_OP(||)
+  DECLARE_LAZY_VARIED_BINARY_OP([])
+
+protected:
+  lazy<Act> m_nom;
+  std::unordered_map<std::string, lazy<Act>> m_var_map;
+  std::set<std::string> m_var_names;
+};
+
+} // namespace ana
+
+#include "selection.h"
+
+template <typename Act>
+ana::lazy<Act>::varied::varied(lazy<Act> const &nom)
+    : systematic::resolver<lazy<Act>>::resolver(*nom.m_df), m_nom(nom) {}
+
+template <typename Act>
+void ana::lazy<Act>::varied::set_variation(const std::string &var_name,
+                                           lazy &&var) {
+  m_var_map.insert(std::make_pair(var_name, std::move(var)));
+  m_var_names.insert(var_name);
+}
+
+template <typename Act>
+auto ana::lazy<Act>::varied::nominal() const -> lazy const & {
+  return m_nom;
+}
+
+template <typename Act>
+auto ana::lazy<Act>::varied::variation(const std::string &var_name) const
+    -> lazy const & {
+  return (this->has_variation(var_name) ? m_var_map.at(var_name) : m_nom);
+}
+
+template <typename Act>
+bool ana::lazy<Act>::varied::has_variation(const std::string &var_name) const {
+  return m_var_map.find(var_name) != m_var_map.end();
+}
+
+template <typename Act>
+std::set<std::string> ana::lazy<Act>::varied::list_variation_names() const {
+  return m_var_names;
+}
+
+template <typename Act>
+template <typename... Args, typename V,
+          std::enable_if_t<ana::is_selection_v<V>, bool>>
+auto ana::lazy<Act>::varied::filter(const std::string &name,
+                                    Args &&...arguments)
+    -> delayed_varied_selection_applicator_t<Args...> {
+
+  using varied_type = delayed_varied_selection_applicator_t<Args...>;
+
+  auto syst = varied_type(
+      this->nominal().filter(name, std::forward<Args>(arguments)...));
+
+  for (auto const &var_name : this->list_variation_names()) {
+    syst.set_variation(var_name, this->variation(var_name).filter(
+                                     name, std::forward<Args>(arguments)...));
+  }
+  return syst;
+}
+
+template <typename Act>
+template <typename... Args, typename V,
+          std::enable_if_t<ana::is_selection_v<V>, bool>>
+auto ana::lazy<Act>::varied::weight(const std::string &name,
+                                    Args &&...arguments)
+    -> delayed_varied_selection_applicator_t<Args...> {
+
+  using varied_type = delayed_varied_selection_applicator_t<Args...>;
+
+  auto syst = varied_type(
+      this->nominal().weight(name, std::forward<Args>(arguments)...));
+
+  for (auto const &var_name : this->list_variation_names()) {
+    syst.set_variation(var_name, this->variation(var_name).weight(
+                                     name, std::forward<Args>(arguments)...));
+  }
+  return syst;
+}
+
+template <typename Act>
+template <typename... Args, typename V,
+          std::enable_if_t<ana::is_selection_v<V>, bool>>
+auto ana::lazy<Act>::varied::channel(const std::string &name,
+                                     Args &&...arguments)
+    -> delayed_varied_selection_applicator_t<Args...> {
+  using varied_type = delayed_varied_selection_applicator_t<Args...>;
+  auto syst = varied_type(
+      this->nominal().channel(name, std::forward<Args>(arguments)...));
+  for (auto const &var_name : this->list_variation_names()) {
+    syst.set_variation(var_name, this->variation(var_name).channel(
+                                     name, std::forward<Args>(arguments)...));
+  }
+  return syst;
+}
+
+template <typename Act>
+template <typename Agg, typename V,
+          std::enable_if_t<ana::is_selection_v<V>, bool>>
+auto ana::lazy<Act>::varied::book(Agg &&agg) {
+  return agg.book(*this);
+}
+
+template <typename Act>
+template <typename... Aggs, typename V,
+          std::enable_if_t<ana::is_selection_v<V>, bool>>
+auto ana::lazy<Act>::varied::book(Aggs &&...aggs) {
+  return std::make_tuple((aggs.book(*this), ...));
+}
+
+template <typename Act>
+template <typename V,
+          std::enable_if_t<ana::is_column_v<V> ||
+                               ana::aggregation::template has_output_v<V>,
+                           bool>>
+auto ana::lazy<Act>::varied::operator[](const std::string &var_name) const
+    -> lazy<V> {
+  if (!this->has_variation(var_name)) {
+    throw std::out_of_range("variation does not exist");
+  }
+  return this->variation(var_name);
+}
+
+DEFINE_LAZY_VARIED_UNARY_OP(minus, -)
+DEFINE_LAZY_VARIED_UNARY_OP(logical_not, !)
+
+DEFINE_LAZY_VARIED_BINARY_OP(+)
+DEFINE_LAZY_VARIED_BINARY_OP(-)
+DEFINE_LAZY_VARIED_BINARY_OP(*)
+DEFINE_LAZY_VARIED_BINARY_OP(/)
+DEFINE_LAZY_VARIED_BINARY_OP(<)
+DEFINE_LAZY_VARIED_BINARY_OP(>)
+DEFINE_LAZY_VARIED_BINARY_OP(<=)
+DEFINE_LAZY_VARIED_BINARY_OP(>=)
+DEFINE_LAZY_VARIED_BINARY_OP(==)
+DEFINE_LAZY_VARIED_BINARY_OP(&&)
+DEFINE_LAZY_VARIED_BINARY_OP(||)
+DEFINE_LAZY_VARIED_BINARY_OP([])
+
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/links/index.html b/analogical/links/index.html new file mode 100644 index 00000000..4e7ce25c --- /dev/null +++ b/analogical/links/index.html @@ -0,0 +1,978 @@ + + + + + + + + + + + + + + + + + + + Links - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/macros/index.html b/analogical/macros/index.html new file mode 100644 index 00000000..ebcdbb67 --- /dev/null +++ b/analogical/macros/index.html @@ -0,0 +1,1000 @@ + + + + + + + + + + + + + + + + + + + Macros - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/modules/index.html b/analogical/modules/index.html new file mode 100644 index 00000000..409cac8a --- /dev/null +++ b/analogical/modules/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + Modules - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Modules

+

No modules found.

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespace_member_enums/index.html b/analogical/namespace_member_enums/index.html new file mode 100644 index 00000000..63ca98ad --- /dev/null +++ b/analogical/namespace_member_enums/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + Namespace Member Enums - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace Member Enums

+

Nothing related to Namespace Member Enums found.

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespace_member_functions/index.html b/analogical/namespace_member_functions/index.html new file mode 100644 index 00000000..1ccc8e50 --- /dev/null +++ b/analogical/namespace_member_functions/index.html @@ -0,0 +1,982 @@ + + + + + + + + + + + + + + + + + + + Namespace Member Functions - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace Member Functions

+

c

+
    +
  • check_delayed (ana)
  • +
  • check_lazy (ana)
  • +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespace_member_typedefs/index.html b/analogical/namespace_member_typedefs/index.html new file mode 100644 index 00000000..8775a347 --- /dev/null +++ b/analogical/namespace_member_typedefs/index.html @@ -0,0 +1,993 @@ + + + + + + + + + + + + + + + + + + + Namespace Member Typedefs - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace Member Typedefs

+

o

+
    +
  • open_player_t (ana)
  • +
  • operation_t (ana)
  • +
+

r

+
    +
  • read_column_t (ana)
  • +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespace_member_variables/index.html b/analogical/namespace_member_variables/index.html new file mode 100644 index 00000000..34a328b9 --- /dev/null +++ b/analogical/namespace_member_variables/index.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + + + + + + + Namespace Member Variables - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace Member Variables

+

h

+
    +
  • has_no_variation_v (ana)
  • +
  • has_variation_v (ana)
  • +
+

i

+
    +
  • is_nominal_v (ana)
  • +
  • is_unique_ptr_v (ana)
  • +
  • is_varied_v (ana)
  • +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespace_members/index.html b/analogical/namespace_members/index.html new file mode 100644 index 00000000..209a1ae2 --- /dev/null +++ b/analogical/namespace_members/index.html @@ -0,0 +1,1030 @@ + + + + + + + + + + + + + + + + + + + Namespace Members - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace Members

+

c

+
    +
  • check_delayed (ana)
  • +
  • check_lazy (ana)
  • +
+

h

+
    +
  • has_no_variation_v (ana)
  • +
  • has_variation_v (ana)
  • +
+

i

+
    +
  • is_nominal_v (ana)
  • +
  • is_unique_ptr_v (ana)
  • +
  • is_varied_v (ana)
  • +
+

o

+
    +
  • open_player_t (ana)
  • +
  • operation_t (ana)
  • +
+

r

+
    +
  • read_column_t (ana)
  • +
+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaceaggregation/index.html b/analogical/namespaceaggregation/index.html new file mode 100644 index 00000000..de9faea3 --- /dev/null +++ b/analogical/namespaceaggregation/index.html @@ -0,0 +1,965 @@ + + + + + + + + + + + + + + + + + + + Namespace aggregation - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace aggregation

+

Namespace List > aggregation

+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaceana/index.html b/analogical/namespaceana/index.html new file mode 100644 index 00000000..f208cb01 --- /dev/null +++ b/analogical/namespaceana/index.html @@ -0,0 +1,1327 @@ + + + + + + + + + + + + + + + + + + + Namespace ana - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Namespace ana

+

Namespace List > ana

+

Namespaces

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
namespaceaggregation
namespacecolumn
namespacedataset
namespaceop_check
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
classdataflow
classdelayed <typename Bkr>
A node that instantiates a lazy action.
structis_unique_ptr <typename T>
structis_unique_ptr< std::unique_ptr< T > > <typename T>
classlazy <typename Action>
+

Public Types

+ + + + + + + + + + + + + + + + + + + + + +
TypeName
typedef typename decltype(std::declval< T const & >().open_player(std::declval< const ana::dataset::range & >()))::element_typeopen_player_t
typedef typename T::nominal_typeoperation_t
typedef typename decltype(std::declval< T >().template read_column< Val >(std::declval< dataset::range const & >(), std::declval< std::string const & >()))::element_typeread_column_t
+

Public Static Attributes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
constexpr boolhas_no_variation_v = = (is_nominal_v<Args> && ...)
constexpr boolhas_variation_v = = (is_varied_v<Args> || ...)
constexpr boolis_nominal_v = =
(decltype(check_lazy(std::declval<V>()))::value ||
decltype(check_delayed(std::declval<V>()))::value)
constexpr boolis_unique_ptr_v = = is_unique_ptr<T>::value
constexpr boolis_varied_v = = !is_nominal_v<V>
+

Public Static Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
constexpr std::true_typecheck_delayed (delayed< U > const &)
constexpr std::false_typecheck_delayed (...)
constexpr std::true_typecheck_lazy (lazy< U > const &)
constexpr std::false_typecheck_lazy (...)
+

Public Types Documentation

+

typedef open_player_t

+
using ana::open_player_t = typedef typename decltype(std::declval<T const &>().open_player( std::declval<const ana::dataset::range &>()))::element_type;
+
+

typedef operation_t

+
using ana::operation_t = typedef typename T::nominal_type;
+
+

typedef read_column_t

+
using ana::read_column_t = typedef typename decltype(std::declval<T>().template read_column<Val>( std::declval<dataset::range const &>(), std::declval<std::string const &>()))::element_type;
+
+

Public Static Attributes Documentation

+

variable has_no_variation_v

+
constexpr bool ana::has_no_variation_v;
+
+

variable has_variation_v

+
constexpr bool ana::has_variation_v;
+
+

variable is_nominal_v

+
constexpr bool ana::is_nominal_v;
+
+

variable is_unique_ptr_v

+
constexpr bool ana::is_unique_ptr_v;
+
+

variable is_varied_v

+
constexpr bool ana::is_varied_v;
+
+

Public Static Functions Documentation

+

function check_delayed

+
template<typename U typename U>
+static constexpr std::true_type ana::check_delayed (
+    delayed < U > const &
+) 
+
+

function check_delayed

+
static constexpr std::false_type ana::check_delayed (
+    ...
+) 
+
+

function check_lazy

+
template<typename U typename U>
+static constexpr std::true_type ana::check_lazy (
+    lazy < U > const &
+) 
+
+

function check_lazy

+
static constexpr std::false_type ana::check_lazy (
+    ...
+) 
+
+
+

The documentation for this class was generated from the following file include/ana/interface/aggregation_logic.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaceana_1_1aggregation/index.html b/analogical/namespaceana_1_1aggregation/index.html new file mode 100644 index 00000000..ce8facfb --- /dev/null +++ b/analogical/namespaceana_1_1aggregation/index.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + + + + + + + Namespace ana::aggregation - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace ana::aggregation

+

Namespace List > ana > aggregation

+

Classes

+ + + + + + + + + + + + + +
TypeName
classlogic< T(Obs...)> <typename T, Obs>
Counter output to be filled with columns using arbitrary logic.
+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaceana_1_1column/index.html b/analogical/namespaceana_1_1column/index.html new file mode 100644 index 00000000..2d394351 --- /dev/null +++ b/analogical/namespaceana_1_1column/index.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + + + + + + + Namespace ana::column - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace ana::column

+

Namespace List > ana > column

+

Classes

+ + + + + + + + + + + + + +
TypeName
classdefinition< Ret(Vals...)> <typename Ret, Vals>
Column with user-defined return value type and evaluation dataset.
+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaceana_1_1dataset/index.html b/analogical/namespaceana_1_1dataset/index.html new file mode 100644 index 00000000..36e2bffe --- /dev/null +++ b/analogical/namespaceana_1_1dataset/index.html @@ -0,0 +1,1015 @@ + + + + + + + + + + + + + + + + + + + Namespace ana::dataset - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace ana::dataset

+

Namespace List > ana > dataset

+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeName
classcolumn <typename T>
Read columns from a dataset.
structfirst
classinput <typename DS>
classplayer
classreader <typename T>
classsource
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaceana_1_1op__check/index.html b/analogical/namespaceana_1_1op__check/index.html new file mode 100644 index 00000000..fd3bd47d --- /dev/null +++ b/analogical/namespaceana_1_1op__check/index.html @@ -0,0 +1,965 @@ + + + + + + + + + + + + + + + + + + + Namespace ana::op_check - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace ana::op_check

+

Namespace List > ana > op_check

+
+

The documentation for this class was generated from the following file include/ana/interface/lazy.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespacecolumn/index.html b/analogical/namespacecolumn/index.html new file mode 100644 index 00000000..acd545ea --- /dev/null +++ b/analogical/namespacecolumn/index.html @@ -0,0 +1,965 @@ + + + + + + + + + + + + + + + + + + + Namespace column - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace column

+

Namespace List > column

+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespacelockstep/index.html b/analogical/namespacelockstep/index.html new file mode 100644 index 00000000..317e5d14 --- /dev/null +++ b/analogical/namespacelockstep/index.html @@ -0,0 +1,965 @@ + + + + + + + + + + + + + + + + + + + Namespace lockstep - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace lockstep

+

Namespace List > lockstep

+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespaces/index.html b/analogical/namespaces/index.html new file mode 100644 index 00000000..73edb1b1 --- /dev/null +++ b/analogical/namespaces/index.html @@ -0,0 +1,977 @@ + + + + + + + + + + + + + + + + + + + Namespace List - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+ +
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespacestd/index.html b/analogical/namespacestd/index.html new file mode 100644 index 00000000..f5da89dd --- /dev/null +++ b/analogical/namespacestd/index.html @@ -0,0 +1,965 @@ + + + + + + + + + + + + + + + + + + + Namespace std - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace std

+

Namespace List > std

+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/namespacesystematic/index.html b/analogical/namespacesystematic/index.html new file mode 100644 index 00000000..331c1cb8 --- /dev/null +++ b/analogical/namespacesystematic/index.html @@ -0,0 +1,965 @@ + + + + + + + + + + + + + + + + + + + Namespace systematic - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Namespace systematic

+

Namespace List > systematic

+
+

The documentation for this class was generated from the following file [generated]

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/pages/index.html b/analogical/pages/index.html new file mode 100644 index 00000000..89245776 --- /dev/null +++ b/analogical/pages/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + Related Pages - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Related Pages

+

Here is a list of all related documentation pages:

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/structana_1_1dataset_1_1first/index.html b/analogical/structana_1_1dataset_1_1first/index.html new file mode 100644 index 00000000..c73f60e3 --- /dev/null +++ b/analogical/structana_1_1dataset_1_1first/index.html @@ -0,0 +1,1067 @@ + + + + + + + + + + + + + + + + + + + Struct ana::dataset::first - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Struct ana::dataset::first

+

ClassList > ana > dataset > first

+

Public Attributes

+ + + + + + + + + + + + + +
TypeName
long longnrows
+

Public Functions

+ + + + + + + + + + + + + +
TypeName
first (long long nrows)
+

Public Attributes Documentation

+

variable nrows

+
long long ana::dataset::first::nrows;
+
+

Public Functions Documentation

+

function first

+
inline ana::dataset::first::first (
+    long long nrows
+) 
+
+
+

The documentation for this class was generated from the following file include/ana/interface/dataset.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/structana_1_1is__unique__ptr/index.html b/analogical/structana_1_1is__unique__ptr/index.html new file mode 100644 index 00000000..877ec9bf --- /dev/null +++ b/analogical/structana_1_1is__unique__ptr/index.html @@ -0,0 +1,967 @@ + + + + + + + + + + + + + + + + + + + Struct ana::is_unique_ptr - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Struct ana::is_unique_ptr

+

template <typename T typename T>

+

ClassList > ana > is_unique_ptr

+

Inherits the following classes: std::false_type

+
+

The documentation for this class was generated from the following file include/ana/interface/dataset.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/structana_1_1is__unique__ptr_3_01std_1_1unique__ptr_3_01T_01_4_01_4/index.html b/analogical/structana_1_1is__unique__ptr_3_01std_1_1unique__ptr_3_01T_01_4_01_4/index.html new file mode 100644 index 00000000..a22d8ce3 --- /dev/null +++ b/analogical/structana_1_1is__unique__ptr_3_01std_1_1unique__ptr_3_01T_01_4_01_4/index.html @@ -0,0 +1,967 @@ + + + + + + + + + + + + + + + + + + + Struct ana::is_unique_ptr< std::unique_ptr< T > > - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Struct ana::is_unique_ptr< std::unique_ptr< T > >

+

template <typename T typename T>

+

ClassList > ana > is_unique_ptr< std::unique_ptr< T > >

+

Inherits the following classes: std::true_type

+
+

The documentation for this class was generated from the following file include/ana/interface/dataset.h

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/analogical/variables/index.html b/analogical/variables/index.html new file mode 100644 index 00000000..a4cd02de --- /dev/null +++ b/analogical/variables/index.html @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + Variables - Coherent data analysis in C++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Variables

+

Nothing related to Variables found.

+ + + + + + +
+
+ + + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/agg_book_sels.png b/assets/agg_book_sels.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6f310e1aafd3d13b533f1f498c4b720bb02830 GIT binary patch literal 250726 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

-$t2GZHhf6 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 G@c#f1JhasS literal 0 HcmV?d00001 diff --git a/assets/dataflow.png b/assets/dataflow.png new file mode 100644 index 0000000000000000000000000000000000000000..99538ad10ecc80a5bfd02f572d1e0171b337d316 GIT binary patch literal 74849 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/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 z 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 KGntwe5B>*pV=LSM literal 0 HcmV?d00001 diff --git a/assets/hww_hists.png b/assets/hww_hists.png new file mode 100644 index 0000000000000000000000000000000000000000..5a2d67caa653b8ac8f8bdb5285a6c3edc2984137 GIT binary patch literal 466064 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

5}#ag-x4 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

a*x*Ay@*tApp$Q>@)Z9y!zxw7V! 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

kHl2kEA)CUAmiW| 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 IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/assets/javascripts/bundle.81fa17fe.min.js b/assets/javascripts/bundle.81fa17fe.min.js new file mode 100644 index 00000000..885b8708 --- /dev/null +++ b/assets/javascripts/bundle.81fa17fe.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var wi=Object.create;var ur=Object.defineProperty;var Si=Object.getOwnPropertyDescriptor;var Ti=Object.getOwnPropertyNames,kt=Object.getOwnPropertySymbols,Oi=Object.getPrototypeOf,dr=Object.prototype.hasOwnProperty,Zr=Object.prototype.propertyIsEnumerable;var Xr=(e,t,r)=>t in e?ur(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))dr.call(t,r)&&Xr(e,r,t[r]);if(kt)for(var r of kt(t))Zr.call(t,r)&&Xr(e,r,t[r]);return e};var eo=(e,t)=>{var r={};for(var o in e)dr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&kt)for(var o of kt(e))t.indexOf(o)<0&&Zr.call(e,o)&&(r[o]=e[o]);return r};var hr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Mi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ti(t))!dr.call(e,n)&&n!==r&&ur(e,n,{get:()=>t[n],enumerable:!(o=Si(t,n))||o.enumerable});return e};var Ht=(e,t,r)=>(r=e!=null?wi(Oi(e)):{},Mi(t||!e||!e.__esModule?ur(r,"default",{value:e,enumerable:!0}):r,e));var ro=hr((br,to)=>{(function(e,t){typeof br=="object"&&typeof to!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(br,function(){"use strict";function e(r){var o=!0,n=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(C){return!!(C&&C!==document&&C.nodeName!=="HTML"&&C.nodeName!=="BODY"&&"classList"in C&&"contains"in C.classList)}function c(C){var it=C.type,Ne=C.tagName;return!!(Ne==="INPUT"&&s[it]&&!C.readOnly||Ne==="TEXTAREA"&&!C.readOnly||C.isContentEditable)}function p(C){C.classList.contains("focus-visible")||(C.classList.add("focus-visible"),C.setAttribute("data-focus-visible-added",""))}function l(C){C.hasAttribute("data-focus-visible-added")&&(C.classList.remove("focus-visible"),C.removeAttribute("data-focus-visible-added"))}function f(C){C.metaKey||C.altKey||C.ctrlKey||(a(r.activeElement)&&p(r.activeElement),o=!0)}function u(C){o=!1}function d(C){a(C.target)&&(o||c(C.target))&&p(C.target)}function v(C){a(C.target)&&(C.target.classList.contains("focus-visible")||C.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(C.target))}function b(C){document.visibilityState==="hidden"&&(n&&(o=!0),z())}function z(){document.addEventListener("mousemove",G),document.addEventListener("mousedown",G),document.addEventListener("mouseup",G),document.addEventListener("pointermove",G),document.addEventListener("pointerdown",G),document.addEventListener("pointerup",G),document.addEventListener("touchmove",G),document.addEventListener("touchstart",G),document.addEventListener("touchend",G)}function K(){document.removeEventListener("mousemove",G),document.removeEventListener("mousedown",G),document.removeEventListener("mouseup",G),document.removeEventListener("pointermove",G),document.removeEventListener("pointerdown",G),document.removeEventListener("pointerup",G),document.removeEventListener("touchmove",G),document.removeEventListener("touchstart",G),document.removeEventListener("touchend",G)}function G(C){C.target.nodeName&&C.target.nodeName.toLowerCase()==="html"||(o=!1,K())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",b,!0),z(),r.addEventListener("focus",d,!0),r.addEventListener("blur",v,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var Vr=hr((Ot,Dr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Ot=="object"&&typeof Dr=="object"?Dr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Ot=="object"?Ot.ClipboardJS=r():t.ClipboardJS=r()})(Ot,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ei}});var s=i(279),a=i.n(s),c=i(370),p=i.n(c),l=i(817),f=i.n(l);function u(W){try{return document.execCommand(W)}catch(O){return!1}}var d=function(O){var S=f()(O);return u("cut"),S},v=d;function b(W){var O=document.documentElement.getAttribute("dir")==="rtl",S=document.createElement("textarea");S.style.fontSize="12pt",S.style.border="0",S.style.padding="0",S.style.margin="0",S.style.position="absolute",S.style[O?"right":"left"]="-9999px";var $=window.pageYOffset||document.documentElement.scrollTop;return S.style.top="".concat($,"px"),S.setAttribute("readonly",""),S.value=W,S}var z=function(O,S){var $=b(O);S.container.appendChild($);var F=f()($);return u("copy"),$.remove(),F},K=function(O){var S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},$="";return typeof O=="string"?$=z(O,S):O instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(O==null?void 0:O.type)?$=z(O.value,S):($=f()(O),u("copy")),$},G=K;function C(W){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?C=function(S){return typeof S}:C=function(S){return S&&typeof Symbol=="function"&&S.constructor===Symbol&&S!==Symbol.prototype?"symbol":typeof S},C(W)}var it=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=O.action,$=S===void 0?"copy":S,F=O.container,Q=O.target,_e=O.text;if($!=="copy"&&$!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Q!==void 0)if(Q&&C(Q)==="object"&&Q.nodeType===1){if($==="copy"&&Q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if($==="cut"&&(Q.hasAttribute("readonly")||Q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(_e)return G(_e,{container:F});if(Q)return $==="cut"?v(Q):G(Q,{container:F})},Ne=it;function Pe(W){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Pe=function(S){return typeof S}:Pe=function(S){return S&&typeof Symbol=="function"&&S.constructor===Symbol&&S!==Symbol.prototype?"symbol":typeof S},Pe(W)}function ui(W,O){if(!(W instanceof O))throw new TypeError("Cannot call a class as a function")}function Jr(W,O){for(var S=0;S0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof F.action=="function"?F.action:this.defaultAction,this.target=typeof F.target=="function"?F.target:this.defaultTarget,this.text=typeof F.text=="function"?F.text:this.defaultText,this.container=Pe(F.container)==="object"?F.container:document.body}},{key:"listenClick",value:function(F){var Q=this;this.listener=p()(F,"click",function(_e){return Q.onClick(_e)})}},{key:"onClick",value:function(F){var Q=F.delegateTarget||F.currentTarget,_e=this.action(Q)||"copy",Ct=Ne({action:_e,container:this.container,target:this.target(Q),text:this.text(Q)});this.emit(Ct?"success":"error",{action:_e,text:Ct,trigger:Q,clearSelection:function(){Q&&Q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(F){return fr("action",F)}},{key:"defaultTarget",value:function(F){var Q=fr("target",F);if(Q)return document.querySelector(Q)}},{key:"defaultText",value:function(F){return fr("text",F)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(F){var Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return G(F,Q)}},{key:"cut",value:function(F){return v(F)}},{key:"isSupported",value:function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Q=typeof F=="string"?[F]:F,_e=!!document.queryCommandSupported;return Q.forEach(function(Ct){_e=_e&&!!document.queryCommandSupported(Ct)}),_e}}]),S}(a()),Ei=yi},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==n;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}o.exports=s},438:function(o,n,i){var s=i(828);function a(l,f,u,d,v){var b=p.apply(this,arguments);return l.addEventListener(u,b,v),{destroy:function(){l.removeEventListener(u,b,v)}}}function c(l,f,u,d,v){return typeof l.addEventListener=="function"?a.apply(null,arguments):typeof u=="function"?a.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(b){return a(b,f,u,d,v)}))}function p(l,f,u,d){return function(v){v.delegateTarget=s(v.target,f),v.delegateTarget&&d.call(l,v)}}o.exports=c},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(o,n,i){var s=i(879),a=i(438);function c(u,d,v){if(!u&&!d&&!v)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(v))throw new TypeError("Third argument must be a Function");if(s.node(u))return p(u,d,v);if(s.nodeList(u))return l(u,d,v);if(s.string(u))return f(u,d,v);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function p(u,d,v){return u.addEventListener(d,v),{destroy:function(){u.removeEventListener(d,v)}}}function l(u,d,v){return Array.prototype.forEach.call(u,function(b){b.addEventListener(d,v)}),{destroy:function(){Array.prototype.forEach.call(u,function(b){b.removeEventListener(d,v)})}}}function f(u,d,v){return a(document.body,u,d,v)}o.exports=c},817:function(o){function n(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),p=document.createRange();p.selectNodeContents(i),c.removeAllRanges(),c.addRange(p),s=c.toString()}return s}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function p(){c.off(i,p),s.apply(a,arguments)}return p._=s,this.on(i,p,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,p=a.length;for(c;c{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Ha=/["'&<>]/;Un.exports=$a;function $a(e){var t=""+e,r=Ha.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function U(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||a(u,d)})})}function a(u,d){try{c(o[u](d))}catch(v){f(i[0][3],v)}}function c(u){u.value instanceof Ze?Promise.resolve(u.value.v).then(p,l):f(i[0][2],u)}function p(u){a("next",u)}function l(u){a("throw",u)}function f(u,d){u(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function io(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof we=="function"?we(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),n(a,c,s.done,s.value)})}}function n(i,s,a,c){Promise.resolve(c).then(function(p){i({value:p,done:a})},s)}}function k(e){return typeof e=="function"}function at(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Rt=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function De(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ie=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=we(s),c=a.next();!c.done;c=a.next()){var p=c.value;p.remove(this)}}catch(b){t={error:b}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(k(l))try{l()}catch(b){i=b instanceof Rt?b.errors:[b]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=we(f),d=u.next();!d.done;d=u.next()){var v=d.value;try{ao(v)}catch(b){i=i!=null?i:[],b instanceof Rt?i=D(D([],U(i)),U(b.errors)):i.push(b)}}}catch(b){o={error:b}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new Rt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ao(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&De(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&De(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var gr=Ie.EMPTY;function Pt(e){return e instanceof Ie||e&&"closed"in e&&k(e.remove)&&k(e.add)&&k(e.unsubscribe)}function ao(e){k(e)?e():e.unsubscribe()}var Ae={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,s=n.isStopped,a=n.observers;return i||s?gr:(this.currentObservers=null,a.push(r),new Ie(function(){o.currentObservers=null,De(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,s=o.isStopped;n?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new P;return r.source=this,r},t.create=function(r,o){return new ho(r,o)},t}(P);var ho=function(e){ie(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:gr},t}(x);var yt={now:function(){return(yt.delegate||Date).now()},delegate:void 0};var Et=function(e){ie(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=yt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,s=o._infiniteTimeWindow,a=o._timestampProvider,c=o._windowTime;n||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,s=n._buffer,a=s.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=lt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var s=r.actions;o!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==o&&(lt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(jt);var go=function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(Wt);var Oe=new go(vo);var L=new P(function(e){return e.complete()});function Ut(e){return e&&k(e.schedule)}function Or(e){return e[e.length-1]}function Qe(e){return k(Or(e))?e.pop():void 0}function Me(e){return Ut(Or(e))?e.pop():void 0}function Nt(e,t){return typeof Or(e)=="number"?e.pop():t}var mt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Dt(e){return k(e==null?void 0:e.then)}function Vt(e){return k(e[pt])}function zt(e){return Symbol.asyncIterator&&k(e==null?void 0:e[Symbol.asyncIterator])}function qt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Pi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Kt=Pi();function Qt(e){return k(e==null?void 0:e[Kt])}function Yt(e){return no(this,arguments,function(){var r,o,n,i;return $t(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,Ze(r.read())];case 3:return o=s.sent(),n=o.value,i=o.done,i?[4,Ze(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,Ze(n)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Bt(e){return k(e==null?void 0:e.getReader)}function I(e){if(e instanceof P)return e;if(e!=null){if(Vt(e))return Ii(e);if(mt(e))return Fi(e);if(Dt(e))return ji(e);if(zt(e))return xo(e);if(Qt(e))return Wi(e);if(Bt(e))return Ui(e)}throw qt(e)}function Ii(e){return new P(function(t){var r=e[pt]();if(k(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Fi(e){return new P(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?M(function(n,i){return e(n,i,o)}):ue,xe(1),r?He(t):Io(function(){return new Jt}))}}function Fo(){for(var e=[],t=0;t=2,!0))}function le(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new x}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(p){var l,f,u,d=0,v=!1,b=!1,z=function(){f==null||f.unsubscribe(),f=void 0},K=function(){z(),l=u=void 0,v=b=!1},G=function(){var C=l;K(),C==null||C.unsubscribe()};return g(function(C,it){d++,!b&&!v&&z();var Ne=u=u!=null?u:r();it.add(function(){d--,d===0&&!b&&!v&&(f=Hr(G,c))}),Ne.subscribe(it),!l&&d>0&&(l=new tt({next:function(Pe){return Ne.next(Pe)},error:function(Pe){b=!0,z(),f=Hr(K,n,Pe),Ne.error(Pe)},complete:function(){v=!0,z(),f=Hr(K,s),Ne.complete()}}),I(C).subscribe(l))})(p)}}function Hr(e,t){for(var r=[],o=2;oe.next(document)),e}function q(e,t=document){return Array.from(t.querySelectorAll(e))}function N(e,t=document){let r=se(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function se(e,t=document){return t.querySelector(e)||void 0}function Re(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}var na=_(h(document.body,"focusin"),h(document.body,"focusout")).pipe(ke(1),V(void 0),m(()=>Re()||document.body),J(1));function Zt(e){return na.pipe(m(t=>e.contains(t)),X())}function Je(e){return{x:e.offsetLeft,y:e.offsetTop}}function No(e){return _(h(window,"load"),h(window,"resize")).pipe(Ce(0,Oe),m(()=>Je(e)),V(Je(e)))}function er(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return _(h(e,"scroll"),h(window,"resize")).pipe(Ce(0,Oe),m(()=>er(e)),V(er(e)))}function Do(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Do(e,r)}function T(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Do(o,n);return o}function tr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function ht(e){let t=T("script",{src:e});return H(()=>(document.head.appendChild(t),_(h(t,"load"),h(t,"error").pipe(E(()=>Mr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),A(()=>document.head.removeChild(t)),xe(1))))}var Vo=new x,ia=H(()=>typeof ResizeObserver=="undefined"?ht("https://unpkg.com/resize-observer-polyfill"):j(void 0)).pipe(m(()=>new ResizeObserver(e=>{for(let t of e)Vo.next(t)})),E(e=>_(Ve,j(e)).pipe(A(()=>e.disconnect()))),J(1));function he(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ye(e){return ia.pipe(w(t=>t.observe(e)),E(t=>Vo.pipe(M(({target:r})=>r===e),A(()=>t.unobserve(e)),m(()=>he(e)))),V(he(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function zo(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var qo=new x,aa=H(()=>j(new IntersectionObserver(e=>{for(let t of e)qo.next(t)},{threshold:0}))).pipe(E(e=>_(Ve,j(e)).pipe(A(()=>e.disconnect()))),J(1));function rr(e){return aa.pipe(w(t=>t.observe(e)),E(t=>qo.pipe(M(({target:r})=>r===e),A(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function Ko(e,t=16){return dt(e).pipe(m(({y:r})=>{let o=he(e),n=bt(e);return r>=n.height-o.height-t}),X())}var or={drawer:N("[data-md-toggle=drawer]"),search:N("[data-md-toggle=search]")};function Qo(e){return or[e].checked}function Ke(e,t){or[e].checked!==t&&or[e].click()}function We(e){let t=or[e];return h(t,"change").pipe(m(()=>t.checked),V(t.checked))}function sa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function ca(){return _(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(V(!1))}function Yo(){let e=h(window,"keydown").pipe(M(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:Qo("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),M(({mode:t,type:r})=>{if(t==="global"){let o=Re();if(typeof o!="undefined")return!sa(o,r)}return!0}),le());return ca().pipe(E(t=>t?L:e))}function pe(){return new URL(location.href)}function ot(e,t=!1){if(te("navigation.instant")&&!t){let r=T("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function Bo(){return new x}function Go(){return location.hash.slice(1)}function nr(e){let t=T("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function pa(e){return _(h(window,"hashchange"),e).pipe(m(Go),V(Go()),M(t=>t.length>0),J(1))}function Jo(e){return pa(e).pipe(m(t=>se(`[id="${t}"]`)),M(t=>typeof t!="undefined"))}function Fr(e){let t=matchMedia(e);return Xt(r=>t.addListener(()=>r(t.matches))).pipe(V(t.matches))}function Xo(){let e=matchMedia("print");return _(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(V(e.matches))}function jr(e,t){return e.pipe(E(r=>r?t():L))}function ir(e,t){return new P(r=>{let o=new XMLHttpRequest;o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network Error"))}),o.addEventListener("abort",()=>{r.error(new Error("Request aborted"))}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{t.progress$.next(n.loaded/n.total*100)}),t.progress$.next(5)),o.send()})}function Ue(e,t){return ir(e,t).pipe(E(r=>r.text()),m(r=>JSON.parse(r)),J(1))}function Zo(e,t){let r=new DOMParser;return ir(e,t).pipe(E(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),J(1))}function en(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function tn(){return _(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(en),V(en()))}function rn(){return{width:innerWidth,height:innerHeight}}function on(){return h(window,"resize",{passive:!0}).pipe(m(rn),V(rn()))}function nn(){return B([tn(),on()]).pipe(m(([e,t])=>({offset:e,size:t})),J(1))}function ar(e,{viewport$:t,header$:r}){let o=t.pipe(ee("size")),n=B([o,r]).pipe(m(()=>Je(e)));return B([r,t,n]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:p}])=>({offset:{x:s.x-c,y:s.y-p+i},size:a})))}function la(e){return h(e,"message",t=>t.data)}function ma(e){let t=new x;return t.subscribe(r=>e.postMessage(r)),t}function an(e,t=new Worker(e)){let r=la(t),o=ma(t),n=new x;n.subscribe(o);let i=o.pipe(Z(),re(!0));return n.pipe(Z(),qe(r.pipe(Y(i))),le())}var fa=N("#__config"),vt=JSON.parse(fa.textContent);vt.base=`${new URL(vt.base,pe())}`;function me(){return vt}function te(e){return vt.features.includes(e)}function be(e,t){return typeof t!="undefined"?vt.translations[e].replace("#",t.toString()):vt.translations[e]}function Ee(e,t=document){return N(`[data-md-component=${e}]`,t)}function oe(e,t=document){return q(`[data-md-component=${e}]`,t)}function ua(e){let t=N(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>N(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function sn(e){if(!te("announce.dismiss")||!e.childElementCount)return L;if(!e.hidden){let t=N(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return H(()=>{let t=new x;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),ua(e).pipe(w(r=>t.next(r)),A(()=>t.complete()),m(r=>R({ref:e},r)))})}function da(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function cn(e,t){let r=new x;return r.subscribe(({hidden:o})=>{e.hidden=o}),da(e,t).pipe(w(o=>r.next(o)),A(()=>r.complete()),m(o=>R({ref:e},o)))}function ha(e,t){let r=H(()=>B([No(e),dt(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:s,height:a}=he(e);return{x:o-i.x+s/2,y:n-i.y+a/2}}));return Zt(e).pipe(E(o=>r.pipe(m(n=>({active:o,offset:n})),xe(+!o||1/0))))}function pn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return H(()=>{let i=new x,s=i.pipe(Z(),re(!0));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),rr(e).pipe(Y(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),_(i.pipe(M(({active:a})=>a)),i.pipe(ke(250),M(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Ce(16,Oe)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(Pr(125,Oe),M(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(Y(s),M(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>{a.stopPropagation(),a.preventDefault()}),h(n,"mousedown").pipe(Y(s),ne(i)).subscribe(([a,{active:c}])=>{var p;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(p=Re())==null||p.blur()}}),r.pipe(Y(s),M(a=>a===o),ze(125)).subscribe(()=>e.focus()),ha(e,t).pipe(w(a=>i.next(a)),A(()=>i.complete()),m(a=>R({ref:e},a)))})}function Wr(e){return T("div",{class:"md-tooltip",id:e},T("div",{class:"md-tooltip__inner md-typeset"}))}function ln(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return T("aside",{class:"md-annotation",tabIndex:0},Wr(t),T("a",{href:r,class:"md-annotation__index",tabIndex:-1},T("span",{"data-md-annotation-id":e})))}else return T("aside",{class:"md-annotation",tabIndex:0},Wr(t),T("span",{class:"md-annotation__index",tabIndex:-1},T("span",{"data-md-annotation-id":e})))}function mn(e){return T("button",{class:"md-clipboard md-icon",title:be("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Ur(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(c=>!e.terms[c]).reduce((c,p)=>[...c,T("del",null,p)," "],[]).slice(0,-1),i=me(),s=new URL(e.location,i.base);te("search.highlight")&&s.searchParams.set("h",Object.entries(e.terms).filter(([,c])=>c).reduce((c,[p])=>`${c} ${p}`.trim(),""));let{tags:a}=me();return T("a",{href:`${s}`,class:"md-search-result__link",tabIndex:-1},T("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&T("div",{class:"md-search-result__icon md-icon"}),r>0&&T("h1",null,e.title),r<=0&&T("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(c=>{let p=a?c in a?`md-tag-icon md-tag--${a[c]}`:"md-tag-icon":"";return T("span",{class:`md-tag ${p}`},c)}),o>0&&n.length>0&&T("p",{class:"md-search-result__terms"},be("search.result.term.missing"),": ",...n)))}function fn(e){let t=e[0].score,r=[...e],o=me(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),s=r.findIndex(l=>l.scoreUr(l,1)),...c.length?[T("details",{class:"md-search-result__more"},T("summary",{tabIndex:-1},T("div",null,c.length>0&&c.length===1?be("search.result.more.one"):be("search.result.more.other",c.length))),...c.map(l=>Ur(l,1)))]:[]];return T("li",{class:"md-search-result__item"},p)}function un(e){return T("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>T("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?tr(r):r)))}function Nr(e){let t=`tabbed-control tabbed-control--${e}`;return T("div",{class:t,hidden:!0},T("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function dn(e){return T("div",{class:"md-typeset__scrollwrap"},T("div",{class:"md-typeset__table"},e))}function ba(e){let t=me(),r=new URL(`../${e.version}/`,t.base);return T("li",{class:"md-version__item"},T("a",{href:`${r}`,class:"md-version__link"},e.title))}function hn(e,t){return T("div",{class:"md-version"},T("button",{class:"md-version__current","aria-label":be("select.version")},t.title),T("ul",{class:"md-version__list"},e.map(ba)))}function va(e){return e.tagName==="CODE"?q(".c, .c1, .cm",e):[e]}function ga(e){let t=[];for(let r of va(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let p=i.splitText(s.index);i=p.splitText(a.length),t.push(p)}else{i.textContent=a,t.push(i);break}}}}return t}function bn(e,t){t.append(...Array.from(e.childNodes))}function sr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,s=new Map;for(let a of ga(t)){let[,c]=a.textContent.match(/\((\d+)\)/);se(`:scope > li:nth-child(${c})`,e)&&(s.set(c,ln(c,i)),a.replaceWith(s.get(c)))}return s.size===0?L:H(()=>{let a=new x,c=a.pipe(Z(),re(!0)),p=[];for(let[l,f]of s)p.push([N(".md-typeset",f),N(`:scope > li:nth-child(${l})`,e)]);return o.pipe(Y(c)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of p)l?bn(f,u):bn(u,f)}),_(...[...s].map(([,l])=>pn(l,t,{target$:r}))).pipe(A(()=>a.complete()),le())})}function vn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return vn(t)}}function gn(e,t){return H(()=>{let r=vn(e);return typeof r!="undefined"?sr(r,e,t):L})}var yn=Ht(Vr());var xa=0;function En(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return En(t)}}function xn(e){return ye(e).pipe(m(({width:t})=>({scrollable:bt(e).width>t})),ee("scrollable"))}function wn(e,t){let{matches:r}=matchMedia("(hover)"),o=H(()=>{let n=new x;if(n.subscribe(({scrollable:s})=>{s&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}),yn.default.isSupported()&&(e.closest(".copy")||te("content.code.copy")&&!e.closest(".no-copy"))){let s=e.closest("pre");s.id=`__code_${xa++}`,s.insertBefore(mn(s.id),e)}let i=e.closest(".highlight");if(i instanceof HTMLElement){let s=En(i);if(typeof s!="undefined"&&(i.classList.contains("annotate")||te("content.code.annotate"))){let a=sr(s,e,t);return xn(e).pipe(w(c=>n.next(c)),A(()=>n.complete()),m(c=>R({ref:e},c)),qe(ye(i).pipe(m(({width:c,height:p})=>c&&p),X(),E(c=>c?a:L))))}}return xn(e).pipe(w(s=>n.next(s)),A(()=>n.complete()),m(s=>R({ref:e},s)))});return te("content.lazy")?rr(e).pipe(M(n=>n),xe(1),E(()=>o)):o}function ya(e,{target$:t,print$:r}){let o=!0;return _(t.pipe(m(n=>n.closest("details:not([open])")),M(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(M(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Sn(e,t){return H(()=>{let r=new x;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),ya(e,t).pipe(w(o=>r.next(o)),A(()=>r.complete()),m(o=>R({ref:e},o)))})}var Tn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var zr,wa=0;function Sa(){return typeof mermaid=="undefined"||mermaid instanceof Element?ht("https://unpkg.com/mermaid@9.4.3/dist/mermaid.min.js"):j(void 0)}function On(e){return e.classList.remove("mermaid"),zr||(zr=Sa().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Tn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),J(1))),zr.subscribe(()=>{e.classList.add("mermaid");let t=`__mermaid_${wa++}`,r=T("div",{class:"mermaid"}),o=e.textContent;mermaid.mermaidAPI.render(t,o,(n,i)=>{let s=r.attachShadow({mode:"closed"});s.innerHTML=n,e.replaceWith(r),i==null||i(s)})}),zr.pipe(m(()=>({ref:e})))}var Mn=T("table");function Ln(e){return e.replaceWith(Mn),Mn.replaceWith(dn(e)),j({ref:e})}function Ta(e){let t=q(":scope > input",e),r=t.find(o=>o.checked)||t[0];return _(...t.map(o=>h(o,"change").pipe(m(()=>N(`label[for="${o.id}"]`))))).pipe(V(N(`label[for="${r.id}"]`)),m(o=>({active:o})))}function _n(e,{viewport$:t}){let r=Nr("prev");e.append(r);let o=Nr("next");e.append(o);let n=N(".tabbed-labels",e);return H(()=>{let i=new x,s=i.pipe(Z(),re(!0));return B([i,ye(e)]).pipe(Ce(1,Oe),Y(s)).subscribe({next([{active:a},c]){let p=Je(a),{width:l}=he(a);e.style.setProperty("--md-indicator-x",`${p.x}px`),e.style.setProperty("--md-indicator-width",`${l}px`);let f=er(n);(p.xf.x+c.width)&&n.scrollTo({left:Math.max(0,p.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),B([dt(n),ye(n)]).pipe(Y(s)).subscribe(([a,c])=>{let p=bt(n);r.hidden=a.x<16,o.hidden=a.x>p.width-c.width-16}),_(h(r,"click").pipe(m(()=>-1)),h(o,"click").pipe(m(()=>1))).pipe(Y(s)).subscribe(a=>{let{width:c}=he(n);n.scrollBy({left:c*a,behavior:"smooth"})}),te("content.tabs.link")&&i.pipe(je(1),ne(t)).subscribe(([{active:a},{offset:c}])=>{let p=a.innerText.trim();if(a.hasAttribute("data-md-switching"))a.removeAttribute("data-md-switching");else{let l=e.offsetTop-c.y;for(let u of q("[data-tabs]"))for(let d of q(":scope > input",u)){let v=N(`label[for="${d.id}"]`);if(v!==a&&v.innerText.trim()===p){v.setAttribute("data-md-switching",""),d.click();break}}window.scrollTo({top:e.offsetTop-l});let f=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([p,...f])])}}),i.pipe(Y(s)).subscribe(()=>{for(let a of q("audio, video",e))a.pause()}),Ta(e).pipe(w(a=>i.next(a)),A(()=>i.complete()),m(a=>R({ref:e},a)))}).pipe(rt(ae))}function An(e,{viewport$:t,target$:r,print$:o}){return _(...q(".annotate:not(.highlight)",e).map(n=>gn(n,{target$:r,print$:o})),...q("pre:not(.mermaid) > code",e).map(n=>wn(n,{target$:r,print$:o})),...q("pre.mermaid",e).map(n=>On(n)),...q("table:not([class])",e).map(n=>Ln(n)),...q("details",e).map(n=>Sn(n,{target$:r,print$:o})),...q("[data-tabs]",e).map(n=>_n(n,{viewport$:t})))}function Oa(e,{alert$:t}){return t.pipe(E(r=>_(j(!0),j(!1).pipe(ze(2e3))).pipe(m(o=>({message:r,active:o})))))}function Cn(e,t){let r=N(".md-typeset",e);return H(()=>{let o=new x;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Oa(e,t).pipe(w(n=>o.next(n)),A(()=>o.complete()),m(n=>R({ref:e},n)))})}function Ma({viewport$:e}){if(!te("header.autohide"))return j(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Le(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),X()),o=We("search");return B([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),X(),E(n=>n?r:j(!1)),V(!1))}function kn(e,t){return H(()=>B([ye(e),Ma(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),X((r,o)=>r.height===o.height&&r.hidden===o.hidden),J(1))}function Hn(e,{header$:t,main$:r}){return H(()=>{let o=new x,n=o.pipe(Z(),re(!0));return o.pipe(ee("active"),Ge(t)).subscribe(([{active:i},{hidden:s}])=>{e.classList.toggle("md-header--shadow",i&&!s),e.hidden=s}),r.subscribe(o),t.pipe(Y(n),m(i=>R({ref:e},i)))})}function La(e,{viewport$:t,header$:r}){return ar(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=he(e);return{active:o>=n}}),ee("active"))}function $n(e,t){return H(()=>{let r=new x;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=se(".md-content h1");return typeof o=="undefined"?L:La(o,t).pipe(w(n=>r.next(n)),A(()=>r.complete()),m(n=>R({ref:e},n)))})}function Rn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),X()),n=o.pipe(E(()=>ye(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ee("bottom"))));return B([o,n,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:p}}])=>(p=Math.max(0,p-Math.max(0,s-c,i)-Math.max(0,p+c-a)),{offset:s-i,height:p,active:s-i<=c})),X((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function _a(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return j(...e).pipe(ce(r=>h(r,"change").pipe(m(()=>r))),V(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),J(1))}function Pn(e){let t=T("meta",{name:"theme-color"});document.head.appendChild(t);let r=T("meta",{name:"color-scheme"});return document.head.appendChild(r),H(()=>{let o=new x;o.subscribe(i=>{document.body.setAttribute("data-md-color-switching","");for(let[s,a]of Object.entries(i.color))document.body.setAttribute(`data-md-color-${s}`,a);for(let s=0;s{let i=Ee("header"),s=window.getComputedStyle(i);return r.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(a=>(+a).toString(16).padStart(2,"0")).join("")})).subscribe(i=>t.content=`#${i}`),o.pipe(Se(ae)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")});let n=q("input",e);return _a(n).pipe(w(i=>o.next(i)),A(()=>o.complete()),m(i=>R({ref:e},i)))})}function In(e,{progress$:t}){return H(()=>{let r=new x;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),A(()=>r.complete()),m(o=>({ref:e,value:o})))})}var qr=Ht(Vr());function Aa(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r}function Fn({alert$:e}){qr.default.isSupported()&&new P(t=>{new qr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Aa(N(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>be("clipboard.copied"))).subscribe(e)}function Ca(e){if(e.length<2)return[""];let[t,r]=[...e].sort((n,i)=>n.length-i.length).map(n=>n.replace(/[^/]+$/,"")),o=0;if(t===r)o=t.length;else for(;t.charCodeAt(o)===r.charCodeAt(o);)o++;return e.map(n=>n.replace(t.slice(0,o),""))}function cr(e){let t=__md_get("__sitemap",sessionStorage,e);if(t)return j(t);{let r=me();return Zo(new URL("sitemap.xml",e||r.base)).pipe(m(o=>Ca(q("loc",o).map(n=>n.textContent))),de(()=>L),He([]),w(o=>__md_set("__sitemap",o,sessionStorage,e)))}}function jn(e){let t=se("[rel=canonical]",e);typeof t!="undefined"&&(t.href=t.href.replace("//localhost:","//127.0.0.1:"));let r=new Map;for(let o of q(":scope > *",e)){let n=o.outerHTML;for(let i of["href","src"]){let s=o.getAttribute(i);if(s===null)continue;let a=new URL(s,t==null?void 0:t.href),c=o.cloneNode();c.setAttribute(i,`${a}`),n=c.outerHTML;break}r.set(n,o)}return r}function Wn({location$:e,viewport$:t,progress$:r}){let o=me();if(location.protocol==="file:")return L;let n=cr().pipe(m(l=>l.map(f=>`${new URL(f,o.base)}`))),i=h(document.body,"click").pipe(ne(n),E(([l,f])=>{if(!(l.target instanceof Element))return L;let u=l.target.closest("a");if(u===null)return L;if(u.target||l.metaKey||l.ctrlKey)return L;let d=new URL(u.href);return d.search=d.hash="",f.includes(`${d}`)?(l.preventDefault(),j(new URL(u.href))):L}),le());i.pipe(xe(1)).subscribe(()=>{let l=se("link[rel=icon]");typeof l!="undefined"&&(l.href=l.href)}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),i.pipe(ne(t)).subscribe(([l,{offset:f}])=>{history.scrollRestoration="manual",history.replaceState(f,""),history.pushState(null,"",l)}),i.subscribe(e);let s=e.pipe(V(pe()),ee("pathname"),je(1),E(l=>ir(l,{progress$:r}).pipe(de(()=>(ot(l,!0),L))))),a=new DOMParser,c=s.pipe(E(l=>l.text()),E(l=>{let f=a.parseFromString(l,"text/html");for(let b of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...te("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let z=se(b),K=se(b,f);typeof z!="undefined"&&typeof K!="undefined"&&z.replaceWith(K)}let u=jn(document.head),d=jn(f.head);for(let[b,z]of d)z.getAttribute("rel")==="stylesheet"||z.hasAttribute("src")||(u.has(b)?u.delete(b):document.head.appendChild(z));for(let b of u.values())b.getAttribute("rel")==="stylesheet"||b.hasAttribute("src")||b.remove();let v=Ee("container");return Fe(q("script",v)).pipe(E(b=>{let z=f.createElement("script");if(b.src){for(let K of b.getAttributeNames())z.setAttribute(K,b.getAttribute(K));return b.replaceWith(z),new P(K=>{z.onload=()=>K.complete()})}else return z.textContent=b.textContent,b.replaceWith(z),L}),Z(),re(f))}),le());return h(window,"popstate").pipe(m(pe)).subscribe(e),e.pipe(V(pe()),Le(2,1),M(([l,f])=>l.pathname===f.pathname&&l.hash!==f.hash),m(([,l])=>l)).subscribe(l=>{var f,u;history.state!==null||!l.hash?window.scrollTo(0,(u=(f=history.state)==null?void 0:f.y)!=null?u:0):(history.scrollRestoration="auto",nr(l.hash),history.scrollRestoration="manual")}),e.pipe(Cr(i),V(pe()),Le(2,1),M(([l,f])=>l.pathname===f.pathname&&l.hash===f.hash),m(([,l])=>l)).subscribe(l=>{history.scrollRestoration="auto",nr(l.hash),history.scrollRestoration="manual",history.back()}),c.pipe(ne(e)).subscribe(([,l])=>{var f,u;history.state!==null||!l.hash?window.scrollTo(0,(u=(f=history.state)==null?void 0:f.y)!=null?u:0):nr(l.hash)}),t.pipe(ee("offset"),ke(100)).subscribe(({offset:l})=>{history.replaceState(l,"")}),c}var Dn=Ht(Nn());function Vn(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,s)=>`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(0,Dn.default)(s).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function Mt(e){return e.type===1}function pr(e){return e.type===3}function zn(e,t){let r=an(e);return _(j(location.protocol!=="file:"),We("search")).pipe($e(o=>o),E(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:te("search.suggest")}}})),r}function qn({document$:e}){let t=me(),r=Ue(new URL("../versions.json",t.base)).pipe(de(()=>L)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:s,aliases:a})=>s===i||a.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),E(n=>h(document.body,"click").pipe(M(i=>!i.metaKey&&!i.ctrlKey),ne(o),E(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&n.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&n.get(c)===s?L:(i.preventDefault(),j(c))}}return L}),E(i=>{let{version:s}=n.get(i);return cr(new URL(i)).pipe(m(a=>{let p=pe().href.replace(t.base,"");return a.includes(p.split("#")[0])?new URL(`../${s}/${p}`,t.base):new URL(i)}))})))).subscribe(n=>ot(n,!0)),B([r,o]).subscribe(([n,i])=>{N(".md-header__topic").appendChild(hn(n,i))}),e.pipe(E(()=>o)).subscribe(n=>{var s;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let a=((s=t.version)==null?void 0:s.default)||"latest";Array.isArray(a)||(a=[a]);e:for(let c of a)for(let p of n.aliases)if(new RegExp(c,"i").test(p)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let a of oe("outdated"))a.hidden=!1})}function Pa(e,{worker$:t}){let{searchParams:r}=pe();r.has("q")&&(Ke("search",!0),e.value=r.get("q"),e.focus(),We("search").pipe($e(i=>!i)).subscribe(()=>{let i=pe();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=Zt(e),n=_(t.pipe($e(Mt)),h(e,"keyup"),o).pipe(m(()=>e.value),X());return B([n,o]).pipe(m(([i,s])=>({value:i,focus:s})),J(1))}function Kn(e,{worker$:t}){let r=new x,o=r.pipe(Z(),re(!0));B([t.pipe($e(Mt)),r],(i,s)=>s).pipe(ee("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ee("focus")).subscribe(({focus:i})=>{i&&Ke("search",i)}),h(e.form,"reset").pipe(Y(o)).subscribe(()=>e.focus());let n=N("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),Pa(e,{worker$:t}).pipe(w(i=>r.next(i)),A(()=>r.complete()),m(i=>R({ref:e},i)),J(1))}function Qn(e,{worker$:t,query$:r}){let o=new x,n=Ko(e.parentElement).pipe(M(Boolean)),i=e.parentElement,s=N(":scope > :first-child",e),a=N(":scope > :last-child",e);We("search").subscribe(l=>a.setAttribute("role",l?"list":"presentation")),o.pipe(ne(r),$r(t.pipe($e(Mt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:s.textContent=f.length?be("search.result.none"):be("search.result.placeholder");break;case 1:s.textContent=be("search.result.one");break;default:let u=tr(l.length);s.textContent=be("search.result.other",u)}});let c=o.pipe(w(()=>a.innerHTML=""),E(({items:l})=>_(j(...l.slice(0,10)),j(...l.slice(10)).pipe(Le(4),Ir(n),E(([f])=>f)))),m(fn),le());return c.subscribe(l=>a.appendChild(l)),c.pipe(ce(l=>{let f=se("details",l);return typeof f=="undefined"?L:h(f,"toggle").pipe(Y(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(M(pr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),A(()=>o.complete()),m(l=>R({ref:e},l)))}function Ia(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=pe();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function Yn(e,t){let r=new x,o=r.pipe(Z(),re(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(Y(o)).subscribe(n=>n.preventDefault()),Ia(e,t).pipe(w(n=>r.next(n)),A(()=>r.complete()),m(n=>R({ref:e},n)))}function Bn(e,{worker$:t,keyboard$:r}){let o=new x,n=Ee("search-query"),i=_(h(n,"keydown"),h(n,"focus")).pipe(Se(ae),m(()=>n.value),X());return o.pipe(Ge(i),m(([{suggest:a},c])=>{let p=c.split(/([\s-]+)/);if(a!=null&&a.length&&p[p.length-1]){let l=a[a.length-1];l.startsWith(p[p.length-1])&&(p[p.length-1]=l)}else p.length=0;return p})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(M(({mode:a})=>a==="search")).subscribe(a=>{switch(a.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(M(pr),m(({data:a})=>a)).pipe(w(a=>o.next(a)),A(()=>o.complete()),m(()=>({ref:e})))}function Gn(e,{index$:t,keyboard$:r}){let o=me();try{let n=zn(o.search,t),i=Ee("search-query",e),s=Ee("search-result",e);h(e,"click").pipe(M(({target:c})=>c instanceof Element&&!!c.closest("a"))).subscribe(()=>Ke("search",!1)),r.pipe(M(({mode:c})=>c==="search")).subscribe(c=>{let p=Re();switch(c.type){case"Enter":if(p===i){let l=new Map;for(let f of q(":first-child [href]",s)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}c.claim()}break;case"Escape":case"Tab":Ke("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof p=="undefined")i.focus();else{let l=[i,...q(":not(details) > [href], summary, details[open] [href]",s)],f=Math.max(0,(Math.max(0,l.indexOf(p))+l.length+(c.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}c.claim();break;default:i!==Re()&&i.focus()}}),r.pipe(M(({mode:c})=>c==="global")).subscribe(c=>{switch(c.type){case"f":case"s":case"/":i.focus(),i.select(),c.claim();break}});let a=Kn(i,{worker$:n});return _(a,Qn(s,{worker$:n,query$:a})).pipe(qe(...oe("search-share",e).map(c=>Yn(c,{query$:a})),...oe("search-suggest",e).map(c=>Bn(c,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ve}}function Jn(e,{index$:t,location$:r}){return B([t,r.pipe(V(pe()),M(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>Vn(o.config)(n.searchParams.get("h"))),m(o=>{var s;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,p=o(c);p.length>c.length&&n.set(a,p)}for(let[a,c]of n){let{childNodes:p}=T("span",null,c);a.replaceWith(...Array.from(p))}return{ref:e,nodes:n}}))}function Fa(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return B([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(n,Math.max(0,a-i))-n,{height:s,locked:a>=i+n})),X((i,s)=>i.height===s.height&&i.locked===s.locked))}function Kr(e,o){var n=o,{header$:t}=n,r=eo(n,["header$"]);let i=N(".md-sidebar__scrollwrap",e),{y:s}=Je(i);return H(()=>{let a=new x,c=a.pipe(Z(),re(!0)),p=a.pipe(Ce(0,Oe));return p.pipe(ne(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),p.pipe($e()).subscribe(()=>{for(let l of q(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=he(f);f.scrollTo({top:u-d/2})}}}),ge(q("label[tabindex]",e)).pipe(ce(l=>h(l,"click").pipe(Se(ae),m(()=>l),Y(c)))).subscribe(l=>{let f=N(`[id="${l.htmlFor}"]`);N(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),Fa(e,r).pipe(w(l=>a.next(l)),A(()=>a.complete()),m(l=>R({ref:e},l)))})}function Xn(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return St(Ue(`${r}/releases/latest`).pipe(de(()=>L),m(o=>({version:o.tag_name})),He({})),Ue(r).pipe(de(()=>L),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),He({}))).pipe(m(([o,n])=>R(R({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return Ue(r).pipe(m(o=>({repositories:o.public_repos})),He({}))}}function Zn(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return Ue(r).pipe(de(()=>L),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),He({}))}function ei(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return Xn(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return Zn(r,o)}return L}var ja;function Wa(e){return ja||(ja=H(()=>{let t=__md_get("__source",sessionStorage);if(t)return j(t);if(oe("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return L}return ei(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>L),M(t=>Object.keys(t).length>0),m(t=>({facts:t})),J(1)))}function ti(e){let t=N(":scope > :last-child",e);return H(()=>{let r=new x;return r.subscribe(({facts:o})=>{t.appendChild(un(o)),t.classList.add("md-source__repository--active")}),Wa(e).pipe(w(o=>r.next(o)),A(()=>r.complete()),m(o=>R({ref:e},o)))})}function Ua(e,{viewport$:t,header$:r}){return ye(document.body).pipe(E(()=>ar(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ee("hidden"))}function ri(e,t){return H(()=>{let r=new x;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(te("navigation.tabs.sticky")?j({hidden:!1}):Ua(e,t)).pipe(w(o=>r.next(o)),A(()=>r.complete()),m(o=>R({ref:e},o)))})}function Na(e,{viewport$:t,header$:r}){let o=new Map,n=q("[href^=\\#]",e);for(let a of n){let c=decodeURIComponent(a.hash.substring(1)),p=se(`[id="${c}"]`);typeof p!="undefined"&&o.set(a,p)}let i=r.pipe(ee("height"),m(({height:a})=>{let c=Ee("main"),p=N(":scope > :first-child",c);return a+.8*(p.offsetTop-c.offsetTop)}),le());return ye(document.body).pipe(ee("height"),E(a=>H(()=>{let c=[];return j([...o].reduce((p,[l,f])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=f.tagName;)c.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return p.set([...c=[...c,l]].reverse(),u)},new Map))}).pipe(m(c=>new Map([...c].sort(([,p],[,l])=>p-l))),Ge(i),E(([c,p])=>t.pipe(kr(([l,f],{offset:{y:u},size:d})=>{let v=u+d.height>=Math.floor(a.height);for(;f.length;){let[,b]=f[0];if(b-p=u&&!v)f=[l.pop(),...f];else break}return[l,f]},[[],[...c]]),X((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([a,c])=>({prev:a.map(([p])=>p),next:c.map(([p])=>p)})),V({prev:[],next:[]}),Le(2,1),m(([a,c])=>a.prev.length{let i=new x,s=i.pipe(Z(),re(!0));if(i.subscribe(({prev:a,next:c})=>{for(let[p]of c)p.classList.remove("md-nav__link--passed"),p.classList.remove("md-nav__link--active");for(let[p,[l]]of a.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",p===a.length-1)}),te("toc.follow")){let a=_(t.pipe(ke(1),m(()=>{})),t.pipe(ke(250),m(()=>"smooth")));i.pipe(M(({prev:c})=>c.length>0),Ge(o.pipe(Se(ae))),ne(a)).subscribe(([[{prev:c}],p])=>{let[l]=c[c.length-1];if(l.offsetHeight){let f=zo(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=he(f);f.scrollTo({top:u-d/2,behavior:p})}}})}return te("navigation.tracking")&&t.pipe(Y(s),ee("offset"),ke(250),je(1),Y(n.pipe(je(1))),Tt({delay:250}),ne(i)).subscribe(([,{prev:a}])=>{let c=pe(),p=a[a.length-1];if(p&&p.length){let[l]=p,{hash:f}=new URL(l.href);c.hash!==f&&(c.hash=f,history.replaceState({},"",`${c}`))}else c.hash="",history.replaceState({},"",`${c}`)}),Na(e,{viewport$:t,header$:r}).pipe(w(a=>i.next(a)),A(()=>i.complete()),m(a=>R({ref:e},a)))})}function Da(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:s}})=>s),Le(2,1),m(([s,a])=>s>a&&a>0),X()),i=r.pipe(m(({active:s})=>s));return B([i,n]).pipe(m(([s,a])=>!(s&&a)),X(),Y(o.pipe(je(1))),re(!0),Tt({delay:250}),m(s=>({hidden:s})))}function ni(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new x,s=i.pipe(Z(),re(!0));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(Y(s),ee("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),h(e,"click").subscribe(a=>{a.preventDefault(),window.scrollTo({top:0})}),Da(e,{viewport$:t,main$:o,target$:n}).pipe(w(a=>i.next(a)),A(()=>i.complete()),m(a=>R({ref:e},a)))}function ii({document$:e,tablet$:t}){e.pipe(E(()=>q(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ce(r=>h(r,"change").pipe(Rr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ne(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function Va(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function ai({document$:e}){e.pipe(E(()=>q("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),M(Va),ce(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function si({viewport$:e,tablet$:t}){B([We("search"),t]).pipe(m(([r,o])=>r&&!o),E(r=>j(r).pipe(ze(r?400:100))),ne(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function za(){return location.protocol==="file:"?ht(`${new URL("search/search_index.js",Qr.base)}`).pipe(m(()=>__index),J(1)):Ue(new URL("search/search_index.json",Qr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var nt=Uo(),_t=Bo(),gt=Jo(_t),Yr=Yo(),Te=nn(),lr=Fr("(min-width: 960px)"),pi=Fr("(min-width: 1220px)"),li=Xo(),Qr=me(),mi=document.forms.namedItem("search")?za():Ve,Br=new x;Fn({alert$:Br});var Gr=new x;te("navigation.instant")&&Wn({location$:_t,viewport$:Te,progress$:Gr}).subscribe(nt);var ci;((ci=Qr.version)==null?void 0:ci.provider)==="mike"&&qn({document$:nt});_(_t,gt).pipe(ze(125)).subscribe(()=>{Ke("drawer",!1),Ke("search",!1)});Yr.pipe(M(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=se("link[rel=prev]");typeof t!="undefined"&&ot(t);break;case"n":case".":let r=se("link[rel=next]");typeof r!="undefined"&&ot(r);break;case"Enter":let o=Re();o instanceof HTMLLabelElement&&o.click()}});ii({document$:nt,tablet$:lr});ai({document$:nt});si({viewport$:Te,tablet$:lr});var Xe=kn(Ee("header"),{viewport$:Te}),Lt=nt.pipe(m(()=>Ee("main")),E(e=>Rn(e,{viewport$:Te,header$:Xe})),J(1)),qa=_(...oe("consent").map(e=>cn(e,{target$:gt})),...oe("dialog").map(e=>Cn(e,{alert$:Br})),...oe("header").map(e=>Hn(e,{viewport$:Te,header$:Xe,main$:Lt})),...oe("palette").map(e=>Pn(e)),...oe("progress").map(e=>In(e,{progress$:Gr})),...oe("search").map(e=>Gn(e,{index$:mi,keyboard$:Yr})),...oe("source").map(e=>ti(e))),Ka=H(()=>_(...oe("announce").map(e=>sn(e)),...oe("content").map(e=>An(e,{viewport$:Te,target$:gt,print$:li})),...oe("content").map(e=>te("search.highlight")?Jn(e,{index$:mi,location$:_t}):L),...oe("header-title").map(e=>$n(e,{viewport$:Te,header$:Xe})),...oe("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?jr(pi,()=>Kr(e,{viewport$:Te,header$:Xe,main$:Lt})):jr(lr,()=>Kr(e,{viewport$:Te,header$:Xe,main$:Lt}))),...oe("tabs").map(e=>ri(e,{viewport$:Te,header$:Xe})),...oe("toc").map(e=>oi(e,{viewport$:Te,header$:Xe,main$:Lt,target$:gt})),...oe("top").map(e=>ni(e,{viewport$:Te,header$:Xe,main$:Lt,target$:gt})))),fi=nt.pipe(E(()=>Ka),qe(qa),J(1));fi.subscribe();window.document$=nt;window.location$=_t;window.target$=gt;window.keyboard$=Yr;window.viewport$=Te;window.tablet$=lr;window.screen$=pi;window.print$=li;window.alert$=Br;window.progress$=Gr;window.component$=fi;})(); +//# sourceMappingURL=bundle.81fa17fe.min.js.map + diff --git a/assets/javascripts/bundle.81fa17fe.min.js.map b/assets/javascripts/bundle.81fa17fe.min.js.map new file mode 100644 index 00000000..582e5255 --- /dev/null +++ b/assets/javascripts/bundle.81fa17fe.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2023 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:

\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an