Algorithme générique de partitionnement d'une liste. Plus de détails...
#include <arcane/accelerator/GenericPartitioner.h>
Fonctions membres privées | |
void | _setCalled () |
Fonctions membres privées hérités de Arcane::Accelerator::impl::GenericPartitionerBase | |
GenericPartitionerBase (const RunQueue &queue) | |
Int32 | _nbFirstPart () const |
SmallSpan< const Int32 > | _nbParts () const |
void | _allocate () |
Attributs privés | |
bool | m_is_already_called = false |
Attributs privés hérités de Arcane::Accelerator::impl::GenericPartitionerBase | |
RunQueue | m_queue |
GenericDeviceStorage | m_algo_storage |
DeviceStorage< int, 2 > | m_device_nb_list1_storage |
NumArray< Int32, MDDim1 > | m_host_nb_list1_storage |
Algorithme générique de partitionnement d'une liste.
Cette classe fournit des algorithmes pour partitionner une liste en deux ou trois parties selon un critère fixé par l'utilisateur.
Définition à la ligne 331 du fichier GenericPartitioner.h.
|
inlineexplicit |
Définition à la ligne 336 du fichier GenericPartitioner.h.
|
inlineprivate |
Définition à la ligne 507 du fichier GenericPartitioner.h.
|
inline |
Effectue un partitionnement d'une liste en trois parties.
Le nombre de valeurs de la liste est donné par nb_value. Les deux fonctions lambda select1_lambda et select2_lambda permettent de partitionner la liste avec l'algorithme suivant:
Les listes en sortie sont dans le même ordre qu'en entrée.
Après exécution, il est possible de récupérer le nombre d'éléments de la première et de la deuxième liste la méthode nbParts().
Définition à la ligne 459 du fichier GenericPartitioner.h.
|
inline |
Effectue un partitionnement d'une liste en deux parties.
Le nombre de valeurs de la liste est donné par nb_value. Les valeurs en entrée sont fournies par l'itérateur input_iter et les valeurs en sorties par l'itérateur output_iterator. La fonction lambda select_lambda permet de sélectionner la partition utilisée : si le retour est true, la valeur sera dans la première partie de la liste, sinon elle sera dans la seconde. En sortie les valeurs de la deuxième partie sont rangées en ordre inverse de la liste d'entrée.
Après exécution, il est possible de récupérer le nombre d'éléments de la première partie de la liste via la méthode nbFirstPart().
Définition à la ligne 388 du fichier GenericPartitioner.h.
|
inline |
Effectue un partitionnement d'une liste en trois parties.
Le nombre de valeurs de la liste est donné par nb_value. Les deux fonctions lambda select1_lambda et select2_lambda permettent de partitionner la liste avec l'algorithme suivant:
Les listes en sortie sont dans le même ordre qu'en entrée.
Après exécution, il est possible de récupérer le nombre d'éléments de la première et de la deuxième liste la méthode nbParts().
Définition à la ligne 418 du fichier GenericPartitioner.h.
|
inline |
Effectue un partitionnement d'une liste en deux parties.
Le nombre de valeurs de la liste est donné par nb_value. Les deux fonctions lambda select_lambda et setter_lambda permettent de partitionner et de positionner les valeurs de la liste.
Après exécution, il est possible de récupérer le nombre d'éléments de la première partie de la liste via la méthode nbFirstPart().
Définition à la ligne 357 du fichier GenericPartitioner.h.
|
inline |
Nombre d'éléments de la première partie de la liste.
Définition à la ligne 479 du fichier GenericPartitioner.h.
|
inline |
Nombre d'éléments de la première et deuxième partie de la liste.
Retourne une vue de deux valeurs. La première valeur contient le nombre d'éléments de la première liste et la seconde valeur le nombre d'éléments de la deuxième liste.
Cette méthode n'est valide qu'après avoir appelé une méthode de partitionnement en trois parties.
Définition à la ligne 495 du fichier GenericPartitioner.h.
Définition à la ligne 503 du fichier GenericPartitioner.h.