Note : Le type Float64x2 ne fait actuellement pas partie du brouillon de la spécification SIMD.
Le type de donnée SIMD.Float64x2 représente un vecteur sur 128 bits qui est divisé en 2 voies qui stockent chacune des valeurs flottantes à précision double.
SIMD.Float64x2 dans un registre SIMD sur 128 bits.
Syntaxe
SIMD.Float64x2(x, y);
Paramètres
xFacultatif- Un double définissant la valeur à utiliser pour la première voie, la valeur par défaut est
NaN. yFacultatif- Un double définissant la valeur à utiliser pour la première voie, la valeur par défaut est
NaN.
Constructeurs
En plus des constructeurs simples, l'API SIMD fournit les constructeurs suivants.
SIMD.Float64x2.splat()- Crée un
Float64x2dont toutes les voies reçoivent une valeur donnée.
On notera qu'il est possible de convertir des données depuis un autre type SIMD vers Float64x2.
Note : Les types SIMD ne fonctionnent pas avec l'opérateur 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.Float64x2(1,2); // TypeError: SIMD.Float64x2 is not a constructor var w = new SIMD.Float64x2.splat(3); // TypeError: SIMD.Float64x2.splat is not a constructor
Il faut écrire :
var v = SIMD.Float64x4(1,2); var w = SIMD.Float64x4.splat(3);
Opérations
Pour réaliser des opérations avec des types de données SIMD, il est nécessaire d'utiliser des opération SIMD.
Vérification des types SIMD
SIMD.Float64x2.check()- Renvoie un nouveau
Float64x2si le paramètre passé est un type de donnée SIMD valide et si c'est le même queFloat64x2. Sinon, cette méthode lèvera une exceptionTypeError.
Accéder aux voies et les modifier
SIMD.Float64x2.extractLane()- Renvoie la valeur d'une voie donnée.
SIMD.Float64x2.replaceLane()- Renvoie un nouveau vecteur
Float64x2dont la voie donnée a été remplacée par la valeur fournie.
Chargement et enregistrement depuis les tableaux typés
SIMD.Float64x2.load()SIMD.Float64x2.load1()- Renvoie une nouvelle instance
Float64x2dont les voies sont chargées avec les valeurs d'un tableau typé. SIMD.Float64x2.store()
SIMD.Float64x2.store1()- Enregistre un
Float64x2dans un tableau typé.
Opérations arithmétiques
SIMD.Float64x2.abs()- Renvoie un nouveau
Float64x2avec les valeurs absolues des voies. SIMD.Float64x2.add()- Renvoie un nouveau
Float64x2avec la somme des voies (a + b). SIMD.Float64x2.div()- Renvoie un nouveau
Float64x2dont les valeurs des voies sont les résultats de la division des voies (a / b). SIMD.Float64x2.mul()- Renvoieun nouveau
Float64x2avec la multiplication des voies (a * b). SIMD.Float64x2.neg()- Renvoieun nouveau
Float64x2avec les valeurs opposées des voies. SIMD.Float64x2.reciprocalApproximation()- Renvoie un nouveau
Float64x2avec une approximation des inverses des valeurs des voies. SIMD.Float64x2.reciprocalSqrtApproximation()- Renvoie un nouveau
Float64x2avec une approximation des inverses des racines carrées des valeurs des voies. SIMD.Float64x2.sub()- Renvoie un nouveau
Float64x2avec la soustraction des voies (a - b). SIMD.Float64x2.sqrt()- Renvoie un nouveau
Float64x2avec la racine carrée des valeurs des voies. -
Mélange et permutation
SIMD.Float64x2.shuffle()- Renvoie un nouveau
Float64x2dont les valeurs des voies ont été mélangées à partir de deux vecteurs. SIMD.Float64x2.swizzle()- Renvoie un nouveau
Float64x2dont les valeurs des voies ont été permutées.
Minimum, maximum et encadrement
SIMD.Float64x2.max()- Renvoie un nouveau
Float64x2qui contient les maximums des valeurs des voies. SIMD.Float64x2.maxNum()- Renvoie un nouveau
Float64x2qui contient les maximums des valeurs des voies et qui privilégie les nombres par rapport àNaN. SIMD.Float64x2.min()- Renvoie un nouveau
Float64x2avec les minimums des valeurs des voies. SIMD.Float64x2.minNum()- Renvoie un nouveau
Float64x2qui contient les minimums des valeurs des voies et qui privilégie les nombres par rapport àNaN.
Sélections
SIMD.Float64x2.select()- Renvoie une nouvelle instance dont les valeurs des voies sont un mélange des différentes voies en fonction d'un masque de sélection.
Comparaisons
SIMD.Float64x2.equal()- Renvoie un nouveau masque de sélection selon le résultat de
a == b. SIMD.Float64x2.notEqual()- Renvoie un nouveau masque de sélection selon le résultat de
a != b. SIMD.Float64x2.lessThan()- Renvoie un nouveau masque de sélection selon le résultat de
a < b. SIMD.Float64x2.lessThanOrEqual()- Renvoie un nouveau masque de sélection selon le résultat de
a <= b. SIMD.Float64x2.greaterThan()- Renvoie un nouveau masque de sélection selon le résultat de
a > b. SIMD.Float64x2.greaterThanOrEqual()- Renvoie un nouveau masque de sélection selon le résultat de
a >= b.
Conversion
SIMD.Float64x2.fromInt32x4Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unInt32x4. SIMD.Float64x2.fromInt32x4Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unInt32x4. SIMD.Float64x2.fromInt16x8Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unInt16x8. SIMD.Float64x2.fromInt8x16Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unInt8x16. SIMD.Float64x2.fromUint32x4Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unUint32x4. SIMD.Float64x2.fromUint16x8Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unUint16x8. SIMD.Float64x2.fromUint8x16Bits()- Crée un nouveau type de donnée
Float64x2avec une copie binaire à partir d'unUint8x16.
Prototype du SIMD
Les méthodes et propriétés suivantes sont rattachées à SIMD.Float64x2.prototype.
SIMD.Float64x2.prototype.constructor- Définit la fonction qui crée le prototype de l'objet SIMD
SIMD.Float64x2.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.Float64x2.prototype.toString()- Renvoie une chaîne représentant le type SIMD et ses éléments. Elle surcharge la méthode
Object.prototype.toString(). SIMD.Float64x2.prototype.valueOf()- Renvoie la valeur primitive de l'objet SIMD.
SIMD.Float64x2.prototype.toSource()- Renvoie une chaîne de caractère représentant le code source. Elle surcharge la méthode
Object.prototype.toSource().
Exemples
SIMD.Float64x2(1, 2); // Float64x2[1, 2] SIMD.Float64x2(1); // Float64x2[1, NaN] SIMD.Float64x2(); // Float64x2[NaN, NaN]
Spécifications
Le type Float64x2 ne fait actuellement 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 |