dataflow#

class dataflow#

Main dataflow interface.

Public Functions

inline dataflow()#

Default constructor.

template<typename Kwd1, typename Kwd2, typename Kwd3>
dataflow(Kwd1 &&kwarg1, Kwd2 &&kwarg2, Kwd3 &&kwarg3)#

Constructor with (up to) three keyword arguments.

Each keyword argument should be one of the following:

  • queryosity::multithread::enable(unsigned int)

  • queryosity::multithread::disable()

  • queryosity::dataset::head(unsigned int)

  • queryosity::dataset::weight(float)

template<typename DS>
auto load(dataset::input<DS> &&in) -> dataflow::input<DS>#

Load a dataset input.

Warning

A dataset should not be loaded in more than once. Doing so incurs an I/O overhead at best, and a potential thread-unsafe data race at worst(as an entry will be read out multiple times concurrently).

Template Parameters:
  • DSdataset::reader<Self> implementation.

  • Args... – Constructor arguments.

Returns:

Loaded dataset.

template<typename DS, typename Val>
auto read(dataset::input<DS> in, dataset::column<Val> const &col)#

Read a column from an input dataset.

Attention

A dataset should be loaded-in once. Use this method only if you are interested in the requested column, as other columns will not be readable.

Template Parameters:
  • DSdataset::reader<Self> implementation.

  • Val – Column data type.

Parameters:

Column[in] name.

Returns:

Column read from the loaded dataset.

template<typename DS, typename ...Vals>
auto read(dataset::input<DS> in, dataset::column<Vals> const&... cols)#

Read columns from an input dataset.

Attention

A dataset should be loaded-in once. Use this method only if you are interested in the requested columns, as other columns will not be readable.

Template Parameters:
  • DSdataset::reader<Self> implementation.

  • Vals – Column data types.

Parameters:

cols[in] Column names.

Returns:

Columns read from the loaded dataset.

template<typename Val>
auto define(column::constant<Val> const &cnst) -> lazy<column::valued<Val>>#

Define a constant column.

Template Parameters:

Val – Column data type.

Parameters:

cnst[in] Constant value.

template<typename Fn>
auto define(column::expression<Fn> const &expr) -> todo<column::evaluator<column::equation_t<Fn>>>#

Define a column using an expression.

Template Parameters:

Fn – Callable type.

Parameters:

expr[in] C++ function, functor, lambda, or any other callable.

Returns:

Evaluator.

template<typename Def>
auto define(column::definition<Def> const &defn) -> todo<column::evaluator<Def>>#

Define a column using an expression.

Template Parameters:

Def – Custom definition.

Parameters:

defn[in] Definition type and constructor arguments.

Returns:

Evaluator.

template<typename Col>
auto filter(lazy<Col> const &column) -> lazy<selection::node>#

Initiate a cutflow.

Template Parameters:

Col – Column type.

Parameters:

column[in] Input column used as cut decision.

Returns:

Lazy selection.

template<typename Col>
auto weight(lazy<Col> const &column) -> lazy<selection::node>#

Initiate a cutflow.

Template Parameters:

Col – Column type.

Parameters:

column[in] Input column used as weight decision.

Returns:

Lazy selection.

template<typename Lzy>
auto filter(varied<Lzy> const &col)#

Initiate a cutflow.

Template Parameters:

Col – Lazy varied column.

Parameters:

column[in] Input column used as cut decision.

Returns:

Lazy varied selection.

template<typename Lzy>
auto weight(varied<Lzy> const &col)#

Initiate a cutflow.

Template Parameters:

Col – Lazy varied column.

Parameters:

column[in] Input column used as weight decision.

Returns:

Lazy varied selection.

template<typename Fn, typename ...Cols>
auto filter(column::constant<Fn> const &cnst) -> lazy<selection::node>#

Initiate a cutflow.

Template Parameters:
  • Fn – C++ Callable object.

  • Cols – Column types.

Parameters:

Input[in] (varied) columns used to evaluate cut decision.

Returns:

Lazy (varied) selection.

template<typename Val>
auto weight(column::constant<Val> const &expr) -> lazy<selection::node>#

Initiate a cutflow.

Template Parameters:
  • Fn – C++ Callable object.

  • Cols – Column types.

Parameters:

Input[in] (varied) columns used to evaluate cut decision.

Returns:

Lazy (varied) selection.

template<typename Fn>
auto filter(column::expression<Fn> const &expr) -> todo<selection::applicator<selection::cut, column::equation_t<Fn>>>#

Initiate a cutflow.

Template Parameters:
  • Fn – C++ Callable object.

  • Cols – Column types.

Parameters:

Input[in] (varied) columns used to evaluate cut decision.

Returns:

Lazy (varied) selection.

template<typename Fn>
auto weight(column::expression<Fn> const &expr) -> todo<selection::applicator<selection::weight, column::equation_t<Fn>>>#

Initiate a cutflow.

Template Parameters:
  • Fn – C++ Callable object.

  • Cols – Column types.

Parameters:

Input[in] (varied) columns used to evaluate weight decision.

Returns:

Lazy (varied) selection.

template<typename Def>
auto filter(column::definition<Def> const &defn) -> todo<selection::applicator<selection::cut, Def>>#

Initiate a cutflow.

Template Parameters:
  • Def – Column definition type.

  • Cols – Column types.

Parameters:

Input[in] (varied) columns used to evaluate cut decision.

Returns:

Lazy selection.

template<typename Def>
auto weight(column::definition<Def> const &defn) -> todo<selection::applicator<selection::weight, Def>>#

Initiate a cutflow.

Template Parameters:
  • Def – Column definition type.

  • Cols – Column types.

Parameters:

Input[in] (varied) columns used to evaluate weight decision.

Returns:

Lazy (varied) selection.

template<typename Qry>
auto get(query::output<Qry> const &output) -> todo<query::booker<Qry>>#

Plan a query.

Template Parameters:

Qry – Concrete queryosity::query::definition implementation.

Parameters:

output[in] Query output (constructor arguments).

Returns:

queryosity::todo query booker.

template<typename Val>
auto vary(column::constant<Val> const &cnst, std::map<std::string, Val> vars) -> varied<lazy<column::valued<Val>>>#

Vary a column constant.

Template Parameters:

Val – Constant value type.

Parameters:
  • cnst[in] Column constant.

  • vars[in] Map of variation to value.

Returns:

Varied lazy column.

template<typename Fn>
auto vary(column::expression<Fn> const &expr, std::map<std::string, typename column::expression<Fn>::function_type> const &vars) -> varied<todo<column::evaluator<column::equation_t<Fn>>>>#

Vary a column expression.

Template Parameters:

Fn – Expression function type.

Parameters:
  • expr[in] Column expression.

  • vars[in] Map of variation to expression.

Returns:

Varied todo column evaluator.

template<typename Def>
auto vary(column::definition<Def> const &defn, std::map<std::string, column::definition<Def>> const &vars) -> varied<todo<column::evaluator<Def>>>#

Vary a column definition.

Template Parameters:

Def – Definition type.

Parameters:
  • defn[in] Column definition.

  • vars[in] Map of variation to definition.

Returns:

Varied todo column evaluator.

template<typename Col>
auto vary(column::nominal<Col> const &nom, std::map<std::string, column::variation<column::value_t<Col>>> const &vars) -> varied<lazy<column::valued<column::value_t<Col>>>>#

Vary a column.

Template Parameters:

Col – Column type.

Parameters:
  • nom[in] Nominal lazy column.

  • vars[in] Map of variation to lazy column.

Returns:

Varied lazy column.

template<typename DS>
class input#
class node#

Subclassed by queryosity::lazy< valued< value_t< Col > > >, queryosity::lazy< valued< Val > >, queryosity::lazy< Act >, queryosity::lazy< Action >, queryosity::todo< Helper >, queryosity::varied< lazy< Act > >, queryosity::varied< todo< Helper > >