src/lib-gmapkernel/g-map/kernel-types.hh File Reference

#include "attributes-id.hh"
#include "alt-stdint.hh"
#include <bitset>
#include <string>

Include dependency graph for kernel-types.hh:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

Définition des types de base du noyau (orbites, involutions et
masques)

Author:
MOKA TEAM


#define NB_MARKS   (32)
#define NB_DIRECT_INFO   (4)
Opérations sur les orbites.
Les différents identifiants des attributs sont définis dans le fichier attributes-id.hh

Une orbite est définie par un ensemble d'involutions. Une orbite peut donc être manipulée comme un ensemble.

#define NEG_ORBIT(O1)   (static_cast<TOrbit> (0xF ^ (static_cast<unsigned int>(O1))))
#define ADD_ORBIT(O1, O2)
#define AND_ORBIT(O1, O2)
#define SUB_ORBIT(O1, O2)
#define IS_ORBIT_INCLUDED(O1, O2)

Typedefs

typedef int8_t TOrbit
typedef int TAttributeId

Enumerations

enum  {
  ORBIT_NONE = -1, ORBIT_SELF, ORBIT_0, ORBIT_1,
  ORBIT_01, ORBIT_2, ORBIT_02, ORBIT_12,
  ORBIT_012, ORBIT_3, ORBIT_03, ORBIT_13,
  ORBIT_013, ORBIT_23, ORBIT_023, ORBIT_123,
  ORBIT_0123, ORBIT_BORDER_0, ORBIT_BORDER_1, ORBIT_BORDER_2,
  ORBIT_BORDER_3
}

Variables

const TOrbit ORBIT_VERTEX = ORBIT_123
const TOrbit ORBIT_EDGE = ORBIT_023
const TOrbit ORBIT_FACE = ORBIT_013
const TOrbit ORBIT_VOLUME = ORBIT_012
const TOrbit ORBIT_CC = ORBIT_0123
const TOrbit ORBIT_INF [4]
const TOrbit ORBIT_CELL [5]
const TOrbit ORBIT_BORDER [4]
const TOrbit ORBIT_I_IM1 [4]
const TOrbit ORBIT_I_IP1 [4]
const TOrbit ORBIT_INVO [4]
const TOrbit ORBIT_SEWS [4]
const TOrbit ORBIT_DIM [4]
enum  {
  OP_NONE = -1, OP_ALPHA0, OP_ALPHA1, OP_ALPHA2,
  OP_ALPHA3, OP_ALPHAI, OP_ALPHAJ, OP_ALPHAK,
  OP_JUMP, OP_TURN_AROUND, OP_END, OP_UNKNOWN
}
typedef int8_t TOperationState

Type d'affichage éclaté.

enum  { FIRST_BURST_METHOD = 0, BURST_METHOD_SCALE = FIRST_BURST_METHOD, BURST_METHOD_SHIFT, LAST_BURST_METHOD }
typedef int8_t TBurstMethod

Les masques

Les masques sont des tableaux de bits interprétés comme en valeur booléenne. L'indice du tableau correspond à l'indice de l'involution associée au booléen.

typedef std::bitset< 16 > TMask16
const TMask16 MASK_FALSE ((unsigned int) 0x0000)
const TMask16 MASK_TRUE ((unsigned int) 0xFFFF)
const TMask16 MASK0 ((unsigned int) 0xAAAA)
const TMask16 MASK1 ((unsigned int) 0xCCCC)
const TMask16 MASK2 ((unsigned int) 0xF0F0)
const TMask16 MASK3 ((unsigned int) 0xFF00)
const TMask16 MASK0M2 (MASK0 &~MASK2)
const TMask16 MASK0M3 (MASK0 &~MASK3)
const TMask16 MASK1M3 (MASK1 &~MASK3)
const TMask16 MASK2M0 (MASK2 &~MASK0)
const TMask16 MASK3M0 (MASK3 &~MASK0)
const TMask16 MASK3M1 (MASK3 &~MASK1)


Define Documentation

#define ADD_ORBIT ( O1,
O2   ) 

Value:

(static_cast<TOrbit>( \
         static_cast<unsigned int>(O1) | \
         static_cast<unsigned int>(O2)))
Union de 2 orbites.

Parameters:
O1 Une orbite.
O2 Une orbite.
Returns:
L'orbite définie par l'union des ensembles d'involutions définissant O1 et O2.

Definition at line 126 of file kernel-types.hh.

#define AND_ORBIT ( O1,
O2   ) 

Value:

(static_cast<TOrbit>( \
         static_cast<unsigned int>(O1) & \
         static_cast<unsigned int>(O2)))
Intersection de 2 orbites.

Parameters:
O1 Une orbite.
O2 Une orbite.
Returns:
L'orbite définie par l'intersection des ensembles d'involutions définissant O1 et O2.

Definition at line 139 of file kernel-types.hh.

#define IS_ORBIT_INCLUDED ( O1,
O2   ) 

Value:

(static_cast<TOrbit>( \
         static_cast<unsigned int>(O1) & \
         static_cast<unsigned int>(O2)) == O1)
Test d'inclusion d'orbites.

Parameters:
O1 Une orbite.
O2 Une orbite.
Returns:
Un booléen indiquant si l'orbite O1 est incluse dans l'orbite O2.

Definition at line 164 of file kernel-types.hh.

#define NB_DIRECT_INFO   (4)

Nombre de champs direct-info associés aux brins.

Definition at line 53 of file kernel-types.hh.

#define NB_MARKS   (32)

Nombre de marques associées aux brins.

Definition at line 48 of file kernel-types.hh.

#define NEG_ORBIT ( O1   )     (static_cast<TOrbit> (0xF ^ (static_cast<unsigned int>(O1))))

Complémentaire d'une orbite.

Parameters:
O1 Une orbite.
Returns:
L'orbite définie par le complémentaire de l'ensemble d'involutions définissant O1.

Definition at line 115 of file kernel-types.hh.

#define SUB_ORBIT ( O1,
O2   ) 

Value:

(static_cast<TOrbit>( \
         static_cast<unsigned int>(O1) & \
         static_cast<unsigned int>(NEG_ORBIT(O2))))
Soustraction d'orbites.

Parameters:
O1 Une orbite.
O2 Une orbite.
Returns:
L'orbite définie par l'ensemble d'involutions définissant O1 privé de l'ensemble d'involutions définissant O2.

Definition at line 152 of file kernel-types.hh.


Typedef Documentation

typedef int TAttributeId

Definition at line 94 of file kernel-types.hh.

Ce type permet de spécifier quel type d'affichage éclatée on utilise.

Definition at line 341 of file kernel-types.hh.

typedef std::bitset<16> TMask16

Définition du type TMask16 pour les 16 orbites possibles.

Definition at line 296 of file kernel-types.hh.

Ce type permet, lors d'un parcours, de connaître quel est le type de la dernière opération

Definition at line 247 of file kernel-types.hh.

typedef int8_t TOrbit

Type Orbite.

Definition at line 59 of file kernel-types.hh.


Enumeration Type Documentation

anonymous enum

Enumerator:
ORBIT_NONE 
ORBIT_SELF 
ORBIT_0 
ORBIT_1 
ORBIT_01 
ORBIT_2 
ORBIT_02 
ORBIT_12 
ORBIT_012 
ORBIT_3 
ORBIT_03 
ORBIT_13 
ORBIT_013 
ORBIT_23 
ORBIT_023 
ORBIT_123 
ORBIT_0123 
ORBIT_BORDER_0 
ORBIT_BORDER_1 
ORBIT_BORDER_2 
ORBIT_BORDER_3 

Definition at line 63 of file kernel-types.hh.

anonymous enum

Enumerator:
OP_NONE  Le parcours débute et il n'y a pas d'opération précédente (operator++).
OP_ALPHA0  L'opération précédente était un operator++ de type alpha0.
OP_ALPHA1  L'opération précédente était un operator++ de type alpha1.
OP_ALPHA2  L'opération précédente était un operator++ de type alpha2.
OP_ALPHA3  L'opération précédente était un operator++ de type alpha3.
OP_ALPHAI  Pour les templates de parcours, les alpha relatifs utilisés sont alphai pour le premier,
OP_ALPHAJ  alphaj pour le second.
OP_ALPHAK  et alphak pour le troisième.
OP_JUMP  Opération de saut (pour les parcours qui utilisent une pile).
OP_TURN_AROUND  Pour un parcours de bord de dimension i, étape qui consiste à "tourner" autour d'une cellule à l'aide de l'involution alpha(i).alpha(i-1).
OP_END  End of op ???....
OP_UNKNOWN 

Definition at line 249 of file kernel-types.hh.

anonymous enum

Enumerator:
FIRST_BURST_METHOD 
BURST_METHOD_SCALE 
BURST_METHOD_SHIFT 
LAST_BURST_METHOD 

Definition at line 343 of file kernel-types.hh.


Function Documentation

const TMask16 MASK0 ( (unsigned int)  0xAAAA  ) 

Masque de toutes les orbites contenant l'involution alpha0 dans leur ensemble définition.

const TMask16 MASK0M2 ( MASK0 &~  MASK2  ) 

Masques de toutes les orbites contenant alphai et pas alphaj :.

const TMask16 MASK0M3 ( MASK0 &~  MASK3  ) 

const TMask16 MASK1 ( (unsigned int)  0xCCCC  ) 

Masque de toutes les orbites contenant l'involution alpha1 dans leur ensemble définition.

const TMask16 MASK1M3 ( MASK1 &~  MASK3  ) 

const TMask16 MASK2 ( (unsigned int)  0xF0F0  ) 

Masque de toutes les orbites contenant l'involution alpha2 dans leur ensemble définition.

const TMask16 MASK2M0 ( MASK2 &~  MASK0  ) 

const TMask16 MASK3 ( (unsigned int)  0xFF00  ) 

Masque de toutes les orbites contenant l'involution alpha3 dans leur ensemble définition.

const TMask16 MASK3M0 ( MASK3 &~  MASK0  ) 

const TMask16 MASK3M1 ( MASK3 &~  MASK1  ) 

const TMask16 MASK_FALSE ( (unsigned int)  0x0000  ) 

Attention, les bits de poids fort sont à gauche.

Un masque est un tableau de 16 booléens utilisé principalement pour la mise à jour des plongements. En effet, lors d'une couture ou d'une décousure de dimension i, toutes les orbites ne contenant pas l'involution alphai peuvent nécessiter une modification de leurs plongements. Masque 'faux'.

const TMask16 MASK_TRUE ( (unsigned int)  0xFFFF  ) 

Mask 'vrai'.


Variable Documentation

const TOrbit ORBIT_BORDER[4]

Initial value:

Orbite bord de dimension l'indice du tableau.

Definition at line 200 of file kernel-types.hh.

const TOrbit ORBIT_CC = ORBIT_0123

Definition at line 178 of file kernel-types.hh.

const TOrbit ORBIT_CELL[5]

Initial value:

Orbite cellule de dimension l'indice du tableau.

Definition at line 194 of file kernel-types.hh.

const TOrbit ORBIT_DIM[4]

Initial value:

Orbite par l'involution d'indice celui du tableau.

Definition at line 233 of file kernel-types.hh.

const TOrbit ORBIT_EDGE = ORBIT_023

Definition at line 175 of file kernel-types.hh.

const TOrbit ORBIT_FACE = ORBIT_013

Definition at line 176 of file kernel-types.hh.

const TOrbit ORBIT_I_IM1[4]

Initial value:

Orbite des deux involutions d'indice égal et immédiatement inférieur à l'indice du tableau.

Definition at line 207 of file kernel-types.hh.

const TOrbit ORBIT_I_IP1[4]

Initial value:

Orbite des deux involutions d'indice égal et immédiatement supérieur à l'indice du tableau.

Definition at line 214 of file kernel-types.hh.

const TOrbit ORBIT_INF[4]

Initial value:

Orbite de l'ensemble des involutions d'indice inférieur strict à l'indice du tableau.

Definition at line 188 of file kernel-types.hh.

const TOrbit ORBIT_INVO[4]

Initial value:

Orbite qui résulte en une involution lorsqu'elle est composée avec l'involution d'indice celui du tableau.

Definition at line 221 of file kernel-types.hh.

const TOrbit ORBIT_SEWS[4]

Initial value:

Orbite qui est modifiée lors d'une couture par l'indice du tableau.

Definition at line 227 of file kernel-types.hh.

const TOrbit ORBIT_VERTEX = ORBIT_123

Definition at line 174 of file kernel-types.hh.

const TOrbit ORBIT_VOLUME = ORBIT_012

Definition at line 177 of file kernel-types.hh.


Generated on Tue Jul 7 15:20:24 2009 for Moka gmapkernel by  doxygen 1.5.8