double 配列減算 (out = a - b)
simd_sub_d a, b, out, n
a, b, out : double 配列 n : 要素数
(プラグイン / モジュール : hspmathex.dll)
要素ごとに a(i) - b(i) を out(i) に格納します。
#include "hspmathex.as" stop
| simd_add_d | double 配列加算 (out = a + b) | (hspmathex.dll) |
| プラグイン / モジュール | hspmathex.dll |
| バージョン | 3.8 |
| 作成日 | 2026/04/18 |
| 著作者 | IronHSP |
| URL | https://github.com/inovia/IronHSP |
| 備考 | hspmathex.dll は次の 3 種類の API を 1 つの DLL で提供します。
------------------------------------------------------------ (1) HSPVAR 拡張型 - 通常の変数と同じ感覚で扱える任意精度数値型 ------------------------------------------------------------ #include "hspmathex.as" 追加される変数型: bigint ... 任意精度整数 (Java の BigInteger 相当) bigdec ... 任意精度10進固定小数 (Java の BigDecimal 相当) これらの型の変数は + - * / \ & | ^ == != < > <= >= 等の演算子で 自然に書けます。文字列化は str()、型名は vartype() で取得できます。 変数の寿命管理 (メモリ解放) は HSPVAR 機構が自動で行うため、 ハンドルを明示的に解放する必要はありません。 ------------------------------------------------------------ (2) ハンドルベース API - 高速・低オーバーヘッドのスタイル ------------------------------------------------------------ bi_* : BigInt 操作 (bi_create_str / bi_add / bi_mul / ...) bigdec_* : BigDec 操作 (bigdec_create / bigdec_div / bigdec_sqrt / ...) 整数や文字列からハンドル (int) を生成し、各演算関数はハンドルを 受け取って結果ハンドルを返します。不要になったハンドルは必ず bi_free / bigdec_free で解放してください。忘れるとリークします。 ハンドル 0 は常に無効値です (失敗時に返されます)。 ------------------------------------------------------------ (3) SIMD API - SSE/AVX/AVX2 ベクトル演算 ------------------------------------------------------------ simd_has_* : 実行 CPU の SIMD 対応判定 (CPUID + XGETBV) simd_cpu_name : CPU ブランド名取得 simd_*_d : double 配列演算 (AVX 優先、SSE2 フォールバック) simd_*_i : int32 配列演算 (AVX2 優先、SSE2 フォールバック) simd_*_f : float 配列演算 (AVX 優先、SSE フォールバック) simd_matmul_* : 行列積 (row-major, f/d 両対応) simd_pixel_* : 画像処理 (alpha ブレンド / グレースケール) SIMD 関数群は C ABI の __cdecl としてエクスポートされているため、 通常は iron_simd.hsp のラッパを介して呼び出すのが簡単です。 #uselib で直接呼ぶこともできます。 ------------------------------------------------------------ 依存: hspmathex.dll (x64 では hspmathex_64.dll) を実行ファイルと 同じディレクトリに配置してください。 サンプル: #include "hspmathex.as" a = bigint("12345678901234567890") b = bigint("99999999999999999999") c = a + b mes str(c) mes vartype(a) stop |
| タイプ | 拡張命令 |
| グループ | hspmathex |
| 対応環境 |
|
| hs ファイル | hsphelp\hspmathex.hs |