Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
Le type de données SIMD.Bool8x16
est un vecteur sur 128 bits, divisé en 16 voies qui stockent chacune une valeur booléenne.
Syntaxe
SIMD.Bool8x16(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);
Paramètres
s[0-15]
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.Bool8x16.splat()
- Cette fonction permet de créer un vecteur
Bool8x16
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.Bool8x16(true,true,true,true,true,true,true,true,false,false,false,false,false,false,false.false); // TypeError: SIMD.Bool8x16 is not a constructor var w = new SIMD.Bool8x16.splat(true); // TypeError: SIMD.Bool8x16.splat is not a constructor
On écrira plutôt :
var v = SIMD.Bool8x16(true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false); var w = SIMD.Bool8x16.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.Bool8x16.check()
- Renvoie un nouveau tableau
Bool8x16
si la valeur passée en paramètre est un type de donnéesBool8x16
valide, sinon, cette méthode lève une exceptionTypeError
.
Accéder aux voies et les modifier
SIMD.Bool8x16.extractLane()
- Renvoie la valeur d'une voie donnée.
SIMD.Bool8x16.replaceLane()
- Renvoie un nouveau vecteur
Bool8x16
dont la valeur d'une voie donnée a été remplacée.
-
Opérations booléennes
SIMD.Bool8x16.allTrue()
- Vérifie si toutes les voies contiennent une valeur
true
. SIMD.Bool8x16.anyTrue()
- Vérifie si une voie contient la valeur
true
.
Opérations binaires logiques
SIMD.Bool8x16.and()
- Renvoie un nouveau vecteur
Bool8x16
dont les voies contiennent les résultats respectifs d'un ET logique appliqué sur les voies des arguments (a & b
). SIMD.Bool8x16.or()
- Renvoie un nouveau vecteur
Bool8x16
dont les voies contiennent les résultats respectifs d'un OU logique appliqué sur les voies des arguments (a | b
). SIMD.Bool8x16.xor()
- Renvoie un nouveau vecteur
Bool8x16
dont les voies contiennent les résultats respectifs d'un OU exclusif (XOR) logique appliqué sur les voies des arguments (a ^ b
). SIMD.Bool8x16.not()
- Renvoie un nouveau vecteur
Bool8x16
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.Bool8x16.prototype
.
SIMD.Bool8x16.prototype.constructor
- Définit la fonction qui crée le prototype d'un objet SIMD.
SIMD.Bool8x16.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.Bool8x16.prototype.toString()
- Renvoie une chaîne représentant le type SIMD et ses éléments. Elle surcharge la méthode
Object.prototype.toString()
. SIMD.Bool8x16.prototype.valueOf()
- Renvoie la valeur primitive de l'objet SIMD.
SIMD.Bool8x16.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 Bool8x16
SIMD.Bool8x16(true,true,true,true,true,true,true,true,false,false,false,false,false,false,false, false); // Bool8x16[true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false] SIMD.Bool8x16(true,false); // Bool8x16[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false] SIMD.Bool8x16(); // Bool8x16[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]
Spécifications
Spécification | Statut | Commentaires |
---|---|---|
SIMD La définition de 'Bool8x16' dans cette spécification. |
Projet | Définition initiale. |
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 |