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
x
Facultatif- Un double définissant la valeur à utiliser pour la première voie, la valeur par défaut est
NaN
. y
Facultatif- 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
Float64x2
dont 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
Float64x2
si 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
Float64x2
dont 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
Float64x2
dont les voies sont chargées avec les valeurs d'un tableau typé. SIMD.Float64x2.store()
SIMD.Float64x2.store1()
- Enregistre un
Float64x2
dans un tableau typé.
Opérations arithmétiques
SIMD.Float64x2.abs()
- Renvoie un nouveau
Float64x2
avec les valeurs absolues des voies. SIMD.Float64x2.add()
- Renvoie un nouveau
Float64x2
avec la somme des voies (a + b
). SIMD.Float64x2.div()
- Renvoie un nouveau
Float64x2
dont les valeurs des voies sont les résultats de la division des voies (a / b
). SIMD.Float64x2.mul()
- Renvoieun nouveau
Float64x2
avec la multiplication des voies (a * b
). SIMD.Float64x2.neg()
- Renvoieun nouveau
Float64x2
avec les valeurs opposées des voies. SIMD.Float64x2.reciprocalApproximation()
- Renvoie un nouveau
Float64x2
avec une approximation des inverses des valeurs des voies. SIMD.Float64x2.reciprocalSqrtApproximation()
- Renvoie un nouveau
Float64x2
avec une approximation des inverses des racines carrées des valeurs des voies. SIMD.Float64x2.sub()
- Renvoie un nouveau
Float64x2
avec la soustraction des voies (a - b
). SIMD.Float64x2.sqrt()
- Renvoie un nouveau
Float64x2
avec la racine carrée des valeurs des voies. -
Mélange et permutation
SIMD.Float64x2.shuffle()
- Renvoie un nouveau
Float64x2
dont les valeurs des voies ont été mélangées à partir de deux vecteurs. SIMD.Float64x2.swizzle()
- Renvoie un nouveau
Float64x2
dont les valeurs des voies ont été permutées.
Minimum, maximum et encadrement
SIMD.Float64x2.max()
- Renvoie un nouveau
Float64x2
qui contient les maximums des valeurs des voies. SIMD.Float64x2.maxNum()
- Renvoie un nouveau
Float64x2
qui contient les maximums des valeurs des voies et qui privilégie les nombres par rapport àNaN
. SIMD.Float64x2.min()
- Renvoie un nouveau
Float64x2
avec les minimums des valeurs des voies. SIMD.Float64x2.minNum()
- Renvoie un nouveau
Float64x2
qui 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
Float64x2
avec une copie binaire à partir d'unInt32x4
. SIMD.Float64x2.fromInt32x4Bits()
- Crée un nouveau type de donnée
Float64x2
avec une copie binaire à partir d'unInt32x4
. SIMD.Float64x2.fromInt16x8Bits()
- Crée un nouveau type de donnée
Float64x2
avec une copie binaire à partir d'unInt16x8
. SIMD.Float64x2.fromInt8x16Bits()
- Crée un nouveau type de donnée
Float64x2
avec une copie binaire à partir d'unInt8x16
. SIMD.Float64x2.fromUint32x4Bits()
- Crée un nouveau type de donnée
Float64x2
avec une copie binaire à partir d'unUint32x4
. SIMD.Float64x2.fromUint16x8Bits()
- Crée un nouveau type de donnée
Float64x2
avec une copie binaire à partir d'unUint16x8
. SIMD.Float64x2.fromUint8x16Bits()
- Crée un nouveau type de donnée
Float64x2
avec 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 |