hub::calc namespace

Contents

Documentation for hub

Functions

template<typename... Args>
auto add(Args && ... args) -> auto constexpr
Calculate the sum of variables.
template<typename... Args>
auto mul(Args && ... args) -> auto constexpr
Calculate the product of variables.
template<typename... Args>
auto any(Args... args) -> auto constexpr
Calculate the logical or of variables.
template<typename... Args>
auto all(Args... args) -> auto constexpr
Calculate the logical and of variables.
template<typename Array>
void array_set_zero(Array& array)
Set all elements of a std::ranges(Container) to 0.
template<typename... Args>
void set_arrays_zero(Args&... args)
Set all elements of std::ranges(Containers) to 0.
template<typename Array, typename Array2, typename... Args>
auto array_dot(Array const& a, Array2 const& b, Args const&... args) -> auto
Calculate the (general)dot product of arrays.
template<typename Array, typename... Args>
void array_add(Array& dst, Args const&... args)
Element wise addition of arrays.
template<typename Array1, typename Array2, typename Scalar>
void array_scale(Array1& dst, Array2 const& a, Scalar scale)
Element wise scale.
template<typename Array, typename... Args>
void array_mul(Array& dst, Args const&... args)
Element wise multiplication of arrays.
template<typename ScalarArray, typename VectorArray>
auto calc_fall_free_time(ScalarArray const& mass, VectorArray const& position) -> auto
Calculate the minimal fall free time of two particles.
template<typename Particles>
auto calc_step_scale(Particles const& particles) -> auto

Function documentation

template<typename... Args>
auto hub::calc::add(Args && ... args) constexpr

Calculate the sum of variables.

Template parameters
Args The types of variables
Parameters
args in Variables.
Returns constexpr auto The sum.

template<typename... Args>
auto hub::calc::mul(Args && ... args) constexpr

Calculate the product of variables.

Template parameters
Args The types of variables.
Parameters
args in Variables.
Returns constexpr auto The product.

template<typename... Args>
auto hub::calc::any(Args... args) constexpr

Calculate the logical or of variables.

Template parameters
Args The types of variables.
Parameters
args in Variables.
Returns constexpr auto The result.

template<typename... Args>
auto hub::calc::all(Args... args) constexpr

Calculate the logical and of variables.

Template parameters
Args The types of variables.
Parameters
args in Variables.
Returns constexpr auto The results.

template<typename Array>
void hub::calc::array_set_zero(Array& array)

Set all elements of a std::ranges(Container) to 0.

Template parameters
Array Type of container.
Parameters
array in/out Container.

template<typename... Args>
void hub::calc::set_arrays_zero(Args&... args)

Set all elements of std::ranges(Containers) to 0.

Template parameters
Args The types of containers
Parameters
args in/out Containers.

template<typename Array, typename Array2, typename... Args>
auto hub::calc::array_dot(Array const& a, Array2 const& b, Args const&... args)

Calculate the (general)dot product of arrays.

Template parameters
Array The type of the first two arrays.
Array2
Args The types of the arrays.
Parameters
in The first array.
in The second array.
args in The rest arrays.
Returns auto The dot product.

$ \Sigma_{i=0}^n a_ib_ic_i...$

template<typename Array, typename... Args>
void hub::calc::array_add(Array& dst, Args const&... args)

Element wise addition of arrays.

Template parameters
Array The type of the first array.
Args The type of the arrays.
Parameters
dst out The destination array to store the result.
args in The rest arrays.

$ dst[i] = a[i] + b[i] + c[i] + ...$

template<typename Array1, typename Array2, typename Scalar>
void hub::calc::array_scale(Array1& dst, Array2 const& a, Scalar scale)

Element wise scale.

Template parameters
Array1
Array2
Scalar The type of the scale factor.
Parameters
dst out The destination array to store the result.
in The input array.
scale in Scale factor.

$ dst[i] = scale * a[i]$

template<typename Array, typename... Args>
void hub::calc::array_mul(Array& dst, Args const&... args)

Element wise multiplication of arrays.

Template parameters
Array The type of the first array.
Args The type of the arrays.
Parameters
dst out The destination array to store the result.
args in The rest arrays.

$ dst[i] = a[i] * b[i] * c[i] * ...$

template<typename ScalarArray, typename VectorArray>
auto hub::calc::calc_fall_free_time(ScalarArray const& mass, VectorArray const& position)

Calculate the minimal fall free time of two particles.

Parameters
mass mass array of particle.
position position array of particle.
Returns The minimal fall free time of the two particles

template<typename Particles>
auto hub::calc::calc_step_scale(Particles const& particles)

Template parameters
Particles
Parameters
particles