MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

SIMD.%type%.store()

この翻訳は不完全です。英語から この記事を翻訳 してください。

This is an experimental technology, part of the Harmony (ECMAScript 7) proposal.
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.

静的なSIMD.%type%.store() メソッドはSIMDデータ型をtyped arrayに設定します。

構文は

SIMD.float32x4.store(tarray, index, value)
SIMD.float32x4.store1(tarray, index, value)
SIMD.float32x4.store2(tarray, index, value)
SIMD.float32x4.store3(tarray, index, value)

SIMD.int32x4.store(tarray, index, value)
SIMD.int32x4.store1(tarray, index, value)
SIMD.int32x4.store2(tarray, index, value)
SIMD.int32x4.store3(tarray, index, value)

SIMD.float64x2.store(tarray, index, value)
SIMD.float64x2.store1(tarray, index, value)

SIMD.int8x16.store(tarray, index, value)
SIMD.int16x8.store(tarray, index, value)

引数

tarray
typed arrayのインスタンス. これは下記のうちの1つです。:
index
typed arrayに設定し始めるインデックスの数値
value
typed arrayに設定するSIMDデータ型のインスタンス

エラースロー

  • indexが範囲外でしたら、例えば、SIMD.int32x4.store(tarray, -1, value) または tarrayのサイズより大きい場合、RangeErrorがスローされます。
  • tarrayがtyped array型の1つでないなら、例えば、SIMD.int32x4.store(tarray.buffer, 0) (配列バッファが有効ではありません)なら、TypeErrorがスローされます。

戻り値

設定されたvalue(SIMDデータ型)

説明

SIMDのloadメソッドとstore メソッドはtyped arraysと混在します。loadメソッドで、typed arraysをSIMD型に渡すことができ、store,メソッドで、SIMDデータ型はtyped arraysに設定されます。

store()を使用してすべてのレーン値を設定するか、store1()store2()store3()メソッドで1、2、3番目のレーン値のみを設定することができます。

次の例では、Int32Arrayに設定されたSIMD.int32x4 data型を使用します。

すべての値を設定する

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store(tarray, 0, value);
// tarray = Int32Array[1, 2, 3, 4, 0, 0, 0, 0]

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store(tarray, 2, value);
// tarray = Int32Array[0, 0, 1, 2, 3, 4, 0, 0]

1つの値を設定する

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store1(tarray, 0, value);
// tarray = Int32Array[1, 0, 0, 0, 0, 0, 0, 0]

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store1(tarray, 2, value);
// tarray = Int32Array[0, 0, 1, 0, 0, 0, 0, 0]

2つの値を設定する

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store2(tarray, 0, value);
// tarray = Int32Array[1, 2, 0, 0, 0, 0, 0, 0]

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store2(tarray, 2, value);
// tarray = Int32Array[0, 0, 1, 2, 0, 0, 0, 0]

3つの値を設定する

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store3(tarray, 0, value);
// tarray = Int32Array[1, 2, 3, 0, 0, 0, 0, 0]

var tarray = new Int32Array(8);
var value = SIMD.int32x4(1, 2, 3, 4);
SIMD.int32x4.store3(tarray, 2, value);
// tarray = Int32Array[0, 0, 1, 2, 3, 0, 0, 0]

仕様

SIMDはまだ公式規格文書やドラフトでサポートされていません。typed arraysに基づいた標準化作業や互換性実装のために、ecmascript_simd GitHub リポジトリを確かめて下さい。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 未サポート Nightly build 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 未サポート Nightly build 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: shide55
 最終更新者: shide55,