Note : Le type Bool64x2 ne fait, pour le moment, pas partie du brouillon de la spécification pour SIMD.
Le type de données SIMD.Bool64x2
est un vecteur sur 128 bits, divisé en 2 voies qui stockent chacune une valeur booléenne.
Syntaxe
SIMD.Bool64x2(x, y);
Paramètres
x/y
Facultatif- Un booléen qui définit la valeur de la voie. La valeur par défaut est
false
.
Constructeurs
En plus de la fonction de construction classique, l'API SIMD fournit les fonctions suivantes pour construire des vecteurs :
SIMD.Bool64x2.splat()
- Cette fonction permet de créer un vecteur
Bool6x8
dont toutes les voies sont définies avec une valeur donnée.
Note : Les types SIMD ne fonctionne pas avec new
, en effet les valeurs SIMD ne sont pas des valeurs « objectifiées » (à la différence des chaînes qu'on peut créer avec String(s)
et new String(s)
).
var v = new SIMD.Bool64x2(true,false); // TypeError: SIMD.Bool64x2 is not a constructor var w = new SIMD.Bool64x2.splat(true); // TypeError: SIMD.Bool64x2.splat is not a constructor
On écrira plutôt :
var v = SIMD.Bool64x2(true,false); var w = SIMD.Bool64x2.splat(true);
Opérations
Pour manipuler des vecteurs SIMD, on doit utiliser des opérations qui fonctionnent spécifiquement sur ces types de données.
Vérification des types SIMD
SIMD.Bool64x2.check()
- Renvoie un nouveau tableau
Bool64x2
si la valeur passée en paramètre est un type de donnéesBool64x2
valide, sinon, cette méthode lève une exceptionTypeError
.
Accéder aux voies et les modifier
SIMD.Bool64x2.extractLane()
- Renvoie la valeur d'une voie donnée.
SIMD.Bool64x2.replaceLane()
- Renvoie un nouveau vecteur
Bool64x2
dont la valeur d'une voie donnée a été remplacée.
-
Opérations booléennes
SIMD.Bool64x2.allTrue()
- Vérifie si toutes les voies contiennent une valeur
true
. SIMD.Bool64x2.anyTrue()
- Vérifie si une voie contient la valeur
true
.
Opérations binaires logiques
SIMD.Bool64x2.and()
- Renvoie un nouveau vecteur
Bool64x2
dont les voies contiennent les résultats respectifs d'un ET logique appliqué sur les voies des arguments (a & b
). SIMD.Bool64x2.or()
- Renvoie un nouveau vecteur
Bool64x2
dont les voies contiennent les résultats respectifs d'un OU logique appliqué sur les voies des arguments (a | b
). SIMD.Bool64x2.xor()
- Renvoie un nouveau vecteur
Bool64x2
dont les voies contiennent les résultats respectifs d'un OU exclusif (XOR) logique appliqué sur les voies des arguments (a ^ b
). SIMD.Bool64x2.not()
- Renvoie un nouveau vecteur
Bool64x2
dont les voies contiennent les résultats respectifs d'un NON logique appliqué sur les voies des arguments (~a
).
Prototype SIMD
Les méthodes et propriétés suivantes sont rattachées au prototype SIMD.Bool64x2.prototype
.
SIMD.Bool64x2.prototype.constructor
- Définit la fonction qui crée le prototype d'un objet SIMD.
SIMD.Bool64x2.prototype.toLocaleString()
- Renvoie une chaîne localisée représentant le type SIMD et ses éléments. Elle surcharge la méthode
Object.prototype.toLocaleString()
. SIMD.Bool64x2.prototype.toString()
- Renvoie une chaîne représentant le type SIMD et ses éléments. Elle surcharge la méthode
Object.prototype.toString()
. SIMD.Bool64x2.prototype.valueOf()
- Renvoie la valeur primitive de l'objet SIMD.
SIMD.Bool64x2.prototype.toSource()
- Renvoie une chaîne de caractère représentant le code source. Elle surcharge la méthode
Object.prototype.toSource()
.
Exemples
Construire un Bool64x2
SIMD.Bool64x2(true, false); // Bool64x2[true, false] SIMD.Bool64x2(1); // Bool64x2[true, false] SIMD.Bool64x2(); // Bool64x2[false, false]
Spécifications
Le type Bool64x2
ne fait, pour le moment, pas partie du brouillon de la spécification SIMD.
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | Pas de support | Nightly build | Pas de support | Pas de support | Pas de support |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | Pas de support | Pas de support | Nightly build | Pas de support | Pas de support | Pas de support |