SIMD.js has been taken out of active development in TC39 and removed from Stage 3. It is not being pursued by web browsers for implementation anymore. SIMD operations exposed to the web are under active development within WebAssembly, with operations based on the SIMD.js operations.
Note: The Float64x2 type is currently not part of the SIMD specification draft.
The SIMD.Float64x2
data type is a 128-bit vector divided into 2 lanes storing double precision floating point values.
Figure 1: SIMD.Float64x2 in a 128-bit SIMD register.
SIMD.Float64x2(x, y);
x
Optional
NaN
.y
Optional
NaN
.In addition to the simple creator functions, the SIMD API provides the following constructor functions:
SIMD.Float64x2.splat()
Note that you can also convert from another SIMD data type to Float64x2.
Note: SIMD types don't work with new
, as SIMD values are no "boxed" objects (comparable to String(s)
vs. new String(s)
, which creates a String object).
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
Instead, you just write:
var v = SIMD.Float64x2(1, 2); var w = SIMD.Float64x2.splat(3);
To actually do something with SIMD types, SIMD operations are needed that work on SIMD data types.
SIMD.Float64x2.check()
TypeError
otherwise.SIMD.Float64x2.extractLane()
SIMD.Float64x2.replaceLane()
SIMD.Float64x2.load()
SIMD.Float64x2.load1()
SIMD.Float64x2.store()
SIMD.Float64x2.store1()
SIMD.Float64x2.abs()
SIMD.Float64x2.add()
a + b
).SIMD.Float64x2.div()
a / b
).SIMD.Float64x2.mul()
a * b
).SIMD.Float64x2.neg()
SIMD.Float64x2.reciprocalApproximation()
SIMD.Float64x2.reciprocalSqrtApproximation()
SIMD.Float64x2.sub()
a - b
).SIMD.Float64x2.sqrt()
SIMD.Float64x2.shuffle()
SIMD.Float64x2.swizzle()
SIMD.Float64x2.max()
SIMD.Float64x2.maxNum()
NaN
.SIMD.Float64x2.min()
SIMD.Float64x2.minNum()
NaN
.SIMD.Float64x2.select()
SIMD.Float64x2.equal()
a == b
.SIMD.Float64x2.notEqual()
a != b
.SIMD.Float64x2.lessThan()
a < b
.SIMD.Float64x2.lessThanOrEqual()
a <= b
.SIMD.Float64x2.greaterThan()
a > b
.SIMD.Float64x2.greaterThanOrEqual()
a >= b
.SIMD.Float64x2.fromFloat32x4Bits()
SIMD.Float64x2.fromInt32x4Bits()
SIMD.Float64x2.fromInt16x8Bits()
SIMD.Float64x2.fromInt8x16Bits()
SIMD.Float64x2.fromUint32x4Bits()
SIMD.Float64x2.fromUint16x8Bits()
SIMD.Float64x2.fromUint8x16Bits()
The following methods and properties are installed on the SIMD.Float64x2.prototype
.
SIMD.Float64x2.prototype.constructor
SIMD.Float64x2.prototype.toLocaleString()
Object.prototype.toLocaleString()
method.SIMD.Float64x2.prototype.toString()
Object.prototype.toString()
method.SIMD.Float64x2.prototype.valueOf()
SIMD.Float64x2.prototype.toSource()
Object.prototype.toSource()
method.SIMD.Float64x2(1, 2); // Float64x2[1, 2] SIMD.Float64x2(1); // Float64x2[1, NaN] SIMD.Float64x2(); // Float64x2[NaN, NaN]
The Float64x2 type is currently not part of the SIMD specification draft.
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | No support | Nightly build | No support | No support | No support |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | No support | Nightly build | No support | No support | No support |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64x2