Les patrons variables du C++11 : 3 – Cas concret : champs de bits compacts

Magazine
Marque
GNU/Linux Magazine
Numéro
161
Mois de parution
juin 2013
Domaines


Résumé
Les deux articles précédents de cette série ont décrit ce que sont les patrons variables, ainsi que les techniques usuelles à utiliser lorsque l'on doit les manipuler. Nous allons voir ici un exemple concret d'utilisation, qui pourrait être utilisé dans une programmation très bas niveau malgré les abstractions mises en œuvre.

Lorsque l'on est amené à interagir assez directement avec le matériel, ou que l'on doit conserver des attributs pour de grandes quantités de données dans un espace mémoire limité, il est fréquent de stocker dans des registres ou des zones mémoire des ensembles de valeurs structurées au niveau du bit – ce que l'on nomme usuellement des champs de bits (bit fields). Par exemple, dans le cadre d'une application 3D affichant des modèles triangulés comme Blender [1] ou MeshLab [2], chaque triangle peut être qualifié par des options, comme est-il affiché ou masqué, est-il sélectionné ou non, etc. Comme de telles applications peuvent devoir rapidement manipuler des millions de triangles, il est préférable d'éviter que ces attributs n'occupent trop de place en mémoire. Rappelons qu'un booléen occupe au minimum 1 octet en mémoire, voire bien davantage du fait de l'alignement appliqué aux champs d'une structure pour des raisons de performances. Ainsi, si on se donne...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Découvrez la programmation différentiable

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

La programmation différentiable est une nouvelle façon de penser la programmation. Le principe consiste à considérer tout un programme comme une fonction qu’on puisse différentier, et donc optimiser. Nous allons construire dans cet article les outils de base pour ce faire, et présenter la librairie JAX, qui facilite la tâche.

Concevoir des tableaux en LaTeX

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Il n'est pas rare de vouloir intégrer de petits tableaux dans ses documents. LaTeX permet de créer rapidement et simplement une telle représentation d'informations. Il est également possible, avec un peu d'huile de coude, de créer des tableaux très complexes ! Ce n'est pas si compliqué... à condition de savoir comment faire !

De l'usage de l'underscore en Python

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Un underscore avant le nom d'un attribut ou deux, est-ce un caprice de développeur ? Et si je veux utiliser des underscores après le nom de mes variables, est-ce que cela a une signification ? Tout, tout, tout, vous saurez tout sur l'usage des underscores en Python !

Parler à un RADAR spatioporté : traitement et analyse des données de Sentinel-1

Magazine
Marque
GNU/Linux Magazine
Numéro
246
Mois de parution
mars 2021
Domaines
Résumé

Nous avions étudié comment fonctionne un RADAR pour la mesure de distance, puis d’azimut et finalement interférométrique, lors d’un déploiement depuis le sol. Nous allons appliquer ces connaissances aux données acquises par les RADAR transportés par les satellites de l’ESA Sentinel-1, librement disponibles sur le Web. Nous conclurons en installant au sol une cible coopérative qui sera parfaitement visible depuis l’espace.