XMLIOSERVER 0.4
Serveur d'Entrées/Sorties parallèles
|
Classe regroupant quelques méthodes pratiques pour travailler avec les tableaux multi-dimensionnels de la bibliothèque Boost (ie boost::multi_array). Plus de détails...
#include <array_util.hpp>
Fonctions membres publiques statiques | |
template<typename ODataType , typename IDataType , std::size_t Size> | |
static void | Convert (const boost::multi_array< IDataType, Size > &_array_in, boost::multi_array< ODataType, Size > &_array_out) |
Convertit un tableau de données d'un certain type vers un autre. | |
template<typename DataType , std::size_t Size> | |
static void | Apply1 (const boost::multi_array< DataType, Size > &_input_array1, const boost::multi_array< DataType, Size > &_input_array2, boost::multi_array< DataType, Size > &_output_array, DataType(*_function)(DataType, DataType)) |
Applique une opération binaire à des tableaux (tableau et tableau). | |
template<typename DataType , typename ScalDataType , std::size_t Size> | |
static void | Apply2 (const boost::multi_array< DataType, Size > &_input_array, boost::multi_array< DataType, Size > &_output_array, ScalDataType _scalar, DataType(*_function)(DataType, ScalDataType)) |
Applique une opération binaire à un tableau (tableau et scalaire). | |
template<typename ODataType , typename IDataType , std::size_t Size> | |
static void | SameShape (const boost::multi_array< IDataType, Size > &_array_in, boost::multi_array< ODataType, Size > &_array_out) |
Associe au tableau de sortie le même profil que le tableau d'entrée. |
Classe regroupant quelques méthodes pratiques pour travailler avec les tableaux multi-dimensionnels de la bibliothèque Boost (ie boost::multi_array).
Définition à la ligne 32 du fichier array_util.hpp.
void xmlioserver::CArrayUtil::Apply1 | ( | const boost::multi_array< DataType, Size > & | _input_array1, |
const boost::multi_array< DataType, Size > & | _input_array2, | ||
boost::multi_array< DataType, Size > & | _output_array, | ||
DataType(*)(DataType, DataType) | _function | ||
) | [inline, static] |
Applique une opération binaire à des tableaux (tableau et tableau).
DataType | : type de données des tableaux. |
Size | : dimension des tableaux. |
_input_array1 | : premier tableau multidimensionnel d'entrée. |
_input_array2 | : second tableau multidimensionnel d'entrée. |
_output_array | : tableau multidimensionnel de sortie. |
_function | : opération binaire à appliquer. |
Exemple de somme des éléments de deux tableaux
boost::multi_array<double, 2> input1(boost::extents[10][12]), input2(boost::extents[10][12]), output(boost::extents[10][12]); xios::CArrayUtil::Apply1(input1, input2, output, &xios::AUSum);
Définition à la ligne 34 du fichier array_util_impl.hpp.
void xmlioserver::CArrayUtil::Apply2 | ( | const boost::multi_array< DataType, Size > & | _input_array, |
boost::multi_array< DataType, Size > & | _output_array, | ||
ScalDataType | _scalar, | ||
DataType(*)(DataType, ScalDataType) | _function | ||
) | [inline, static] |
Applique une opération binaire à un tableau (tableau et scalaire).
DataType | : type de données du tableau. |
ScalDataType | : type de données du scalaire. |
Size | : dimension des tableaux. |
_input_array | : tableau multidimensionnel d'entrée. |
_output_array | : tableau multidimensionnel de sortie. |
_scalar | : scalaire de type ScalDataType |
_function | : opération binaire à appliquer. |
Exemple de somme des éléments de tableaux avec les scalaire 3.
boost::multi_array<double, 2> input(boost::extents[10][12]), output(boost::extents[10][12]); xios::CArrayUtil::Apply2(input, output, 3., &xios::AUSum<double, double>);
Définition à la ligne 48 du fichier array_util_impl.hpp.
void xmlioserver::CArrayUtil::Convert | ( | const boost::multi_array< IDataType, Size > & | _array_in, |
boost::multi_array< ODataType, Size > & | _array_out | ||
) | [inline, static] |
Convertit un tableau de données d'un certain type vers un autre.
ODataType | : type du tableau d'entrée. |
IDataType | : type du tableau de sortie. |
Size | : dimension des tableaux. |
_array_in | : un tableau d'entrée de type ODataType. |
_array_out | : un tableau de sortie de type IDataType. |
Exemple de conversion d'un tableau de rééls en double précision en tableau de rééls en simple précision:
// Conversion de tableau const boost::multi_array<double, 3> input(boost::extents[10][12][3]); boost::multi_array<float, 3> output; xios::CArrayUtil::SameShape(input, output); xios::CArrayUtil::Convert(input, output);
Définition à la ligne 24 du fichier array_util_impl.hpp.
void xmlioserver::CArrayUtil::SameShape | ( | const boost::multi_array< IDataType, Size > & | _array_in, |
boost::multi_array< ODataType, Size > & | _array_out | ||
) | [inline, static] |
Associe au tableau de sortie le même profil que le tableau d'entrée.
ODataType | : type du tableau d'entrée. |
IDataType | : type du tableau de sortie. |
Size | : dimension des tableaux. |
_array_in | : un tableau d'entrée de type ODataType. |
_array_out | : un tableau de sortie de type IDataType. |
Définition à la ligne 63 du fichier array_util_impl.hpp.