Alexandria 2.31.2
SDC-CH common library for the Euclid project
Loading...
Searching...
No Matches
Euclid::GridContainer::GridToFitsHelper< 0, GridCellManager, Axes... > Struct Template Reference

Static Public Member Functions

static void addColumnDescriptions (const GridContainer< GridCellManager, Axes... > &, std::vector< Table::ColumnDescription > &)
 
template<typename... Args>
static void unfold (const GridContainer< GridCellManager, Axes... > &grid, const std::shared_ptr< Table::ColumnInfo > &column_info, std::vector< Table::Row > &rows, std::pair< size_t, Args >... axes)
 
static void addColumnDescriptions (const GridContainer< GridCellManager, Axes... > &grid, std::vector< Table::ColumnDescription > &description)
 
static void unfold (const GridContainer< GridCellManager, Axes... > &grid, const std::shared_ptr< Table::ColumnInfo > &column_info, std::vector< Table::Row > &rows, std::pair< size_t, Args >... axes)
 
static void unfold (const GridContainer< GridCellManager, Axes... > &grid, const std::shared_ptr< Table::ColumnInfo > &column_info, std::vector< Table::Row > &rows)
 

Detailed Description

template<typename GridCellManager, typename... Axes>
struct Euclid::GridContainer::GridToFitsHelper< 0, GridCellManager, Axes... >

Base class for the recursive traversal of the grid

Definition at line 91 of file GridContainerToTable.icpp.

Member Function Documentation

◆ addColumnDescriptions() [1/2]

template<typename GridCellManager, typename... Axes>
static void Euclid::GridContainer::GridToFitsHelper< 0, GridCellManager, Axes... >::addColumnDescriptions ( const GridContainer< GridCellManager, Axes... > & ,
std::vector< Table::ColumnDescription > &  )
inlinestatic

There are no more axis, so do nothing for the columns

Definition at line 95 of file GridContainerToTable.icpp.

◆ addColumnDescriptions() [2/2]

static void Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::addColumnDescriptions ( const GridContainer< GridCellManager, Axes... > & grid,
std::vector< Table::ColumnDescription > & description )
inlinestatic

Generate recursively the column description for each knot on the grid. The order on the tuples is reversed, so the 0th tuple element is inserted on the last position.

Parameters
gridAn instance of a grid
descriptionA vector where to emplace the description

Definition at line 42 of file GridContainerToTable.icpp.

◆ unfold() [1/3]

static void Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::unfold ( const GridContainer< GridCellManager, Axes... > & grid,
const std::shared_ptr< Table::ColumnInfo > & column_info,
std::vector< Table::Row > & rows )
inlinestatic

Same as before, but without the book-keeping data, since this is the entry point

Definition at line 78 of file GridContainerToTable.icpp.

◆ unfold() [2/3]

static void Euclid::GridContainer::GridToFitsHelper< I, GridCellManager, Axes >::unfold ( const GridContainer< GridCellManager, Axes... > & grid,
const std::shared_ptr< Table::ColumnInfo > & column_info,
std::vector< Table::Row > & rows,
std::pair< size_t, Args >... axes )
inlinestatic

Iterate over the elements of the (I-1)th axis, and for each one call recursively unfold on the next axis.

Template Parameters
ArgsUsed to keep track of the types of the knots of the previous axes
Parameters
gridAn instance of a grid
column_infoAs populated by getColumnDescriptions
rowsGrid cells will be inserted on this vector
axesUsed to keep track of the values of the knots of the previous axis

Definition at line 67 of file GridContainerToTable.icpp.

◆ unfold() [3/3]

template<typename GridCellManager, typename... Axes>
template<typename... Args>
static void Euclid::GridContainer::GridToFitsHelper< 0, GridCellManager, Axes... >::unfold ( const GridContainer< GridCellManager, Axes... > & grid,
const std::shared_ptr< Table::ColumnInfo > & column_info,
std::vector< Table::Row > & rows,
std::pair< size_t, Args >... axes )
inlinestatic

Insert into the row vector the cell value plus the axes values that brought us here

Definition at line 101 of file GridContainerToTable.icpp.

References Euclid::GridContainer::GridCellToTable< T, Enable >::addCells(), std::vector< T >::emplace_back(), std::reverse(), and Euclid::GridContainer::GridAxisToTable< T >::serialize().

Here is the call graph for this function:

The documentation for this struct was generated from the following file: