DiFfRG
Loading...
Searching...
No Matches
utils.hh File Reference
#include <future>
#include <memory>
#include <tbb/tbb.h>
#include <tuple>
#include <vector>
#include <DiFfRG/discretization/grid/coordinates.hh>

Go to the source code of this file.

Namespaces

namespace  DiFfRG
 

Functions

template<typename NT , typename FUN , typename Coordinates , typename... T>
requires IsCoordinate<Coordinates>
std::shared_ptr< std::vector< std::future< NT > > > DiFfRG::request_data (FUN &fun, Coordinates &coordinates, const double k, std::tuple< T... > args)
 For a given set of coordinates and arguments, this function will call fun.request(k, coordinates..., args...) for each coordinate in coordinates.
 
template<typename NT , typename FUN , typename Coordinates , typename... T>
requires IsCoordinate<Coordinates>
std::shared_ptr< std::vector< std::future< NT > > > DiFfRG::request_data (FUN &fun, Coordinates &coordinates, const double k, T... args)
 For a given set of coordinates and arguments, this function will call fun.request(k, coordinates..., args...) for each coordinate in coordinates.
 
template<typename NT , typename FUN , typename GRID , typename... T>
requires IsContainer<GRID>
std::shared_ptr< std::vector< std::future< NT > > > DiFfRG::request_data (FUN &fun, const GRID &grid, const double k, std::tuple< T... > args)
 For a given grid and arguments, this function will call fun.request(k, grid[...]..., args...) for each gridpoint in grid.
 
template<typename NT , typename FUN , typename GRID , typename... T>
requires IsContainer<GRID>
std::shared_ptr< std::vector< std::future< NT > > > DiFfRG::request_data (FUN &fun, const GRID &grid, const double k, T... args)
 For a given grid and arguments, this function will call fun.request(k, grid[...]..., args...) for each gridpoint in grid.
 
template<typename NT1 , typename NT2 , typename... T>
void DiFfRG::update_data (std::shared_ptr< std::vector< std::future< NT1 > > > futures, NT2 *destination)
 Obtain data from a vector of futures and store it in a destination array.
 
template<typename NT , typename INT , typename... T>
void DiFfRG::update_interpolator (std::shared_ptr< std::vector< std::future< NT > > > futures, INT &destination)
 Obtain data from a vector of futures and store it in an interpolator.
 
template<typename NT , typename FUN , typename GRID , typename... T>
void DiFfRG::get_data (NT *dest, FUN &fun, const GRID &grid, const double k, std::tuple< T... > args)
 For a given grid and arguments, this function will call fun.request(k, grid[...]..., args...) for each gridpoint in grid.
 
template<typename NT , typename FUN , typename GRID , typename... T>
void DiFfRG::get_data (NT *dest, FUN &fun, const GRID &grid, const double k, T... args)
 For a given grid and arguments, this function will call fun.request(k, grid[...]..., args...) for each gridpoint in grid.