リファレンス 214 ドキュメント 7 サンプル 55
標準機能 702 advapi32.dll 419 api-ms-win-core-winrt-string-l1-1-0.dll 1 api-ms-win-dx-d3dkmt-l1-1-0.dll 1 arduino 12 Artlet2D 55 avrt.dll 11 bcrypt.dll 53 com_misc.dll 1238 comctl32.dll 94 comdlg32.dll 2 crypt32.dll 218 d2d1.dll 13 d3d11.dll 5 d3module 29 dbghelp.dll 128 dinput8.dll 1 dwmapi.dll 31 dwrite.dll 1 dxgi.dll 5 DxLibW 2738 encode.as 8 evr.dll 7 form_decode 1 gdi32.dll 384 gdiplus.dll 627 glu32.dll 52 hgimg3 152 hgimg4 166 hsedsdk 36 HSP3Dish 119 hsp3imp 4 hsp3util 17 hspble.dll 13 hspcbcom 11 hspcmp 21 hspcv 31 hspcv4 275 hspd2d 28 hspda 23 hspdb 8 hspdb.dll 14 hspduckdb.dll 10 hspext 59 hspinet 60 hspjson.dll 10 hspllama.dll 11 hspmath 41 hspmathex.dll 81 hspmcp.dll 7 hspmfcam.dll 30 hspmidi.dll 17 hspmucom 17 hspogg 20 hsponnx.dll 13 hsppdf.dll 11 hspprint 6 hspsapi_64.dll 3 hspsock 12 hsptflite.dll 19 hsptv 2 hspusbio 6 hspvcam 10 hspvosk_64.dll 4 hspwasm.dll 10 hspwebsrv.dll 9 hspwebview2.dll 18 hspwgcapture.dll 8 hspwhisper_64.dll 4 hspwinrtocr.dll 5 hspwinrtspeech_64.dll 3 httpapi.dll 42 imm32.dll 63 iphlpapi.dll 194 iron_7z.hsp 6 iron_ai.hsp 9 iron_ai_embeddings.hsp 4 iron_ai_tools.hsp 5 iron_ai_tts.hsp 3 iron_ai_vision.hsp 3 iron_array2.hsp 8 iron_barcode.hsp 1 iron_bigint.hsp 30 iron_bloom.hsp 3 iron_cache.hsp 4 iron_camera.hsp 6 iron_camera_mf.hsp 31 iron_clip.hsp 4 iron_clipboard_net.hsp 6 iron_collection.hsp 7 iron_color.hsp 4 iron_combinatorics.hsp 6 iron_complex.hsp 6 iron_csv.hsp 8 iron_curvefit.hsp 2 iron_dialog.hsp 5 iron_diff.hsp 1 iron_dns.hsp 3 iron_docx.hsp 1 iron_dotenv.hsp 1 iron_download.hsp 2 iron_embedding.hsp 2 iron_event.hsp 2 iron_excel.hsp 9 iron_faker.hsp 5 iron_ffmpeg.hsp 5 iron_fft.hsp 1 iron_filter.hsp 3 iron_ga.hsp 4 iron_geometry.hsp 5 iron_glob.hsp 1 iron_grpc.hsp 2 iron_hash.hsp 12 iron_http.hsp 4 iron_http_net.hsp 6 iron_humanize.hsp 4 iron_image_net.hsp 8 iron_ini.hsp 11 iron_json.hsp 10 iron_kmeans.hsp 1 iron_mcp_client.hsp 9 iron_mcp_server.hsp 6 iron_mediapipe.hsp 13 iron_montecarlo.hsp 2 iron_mqtt.hsp 6 iron_msgpack.hsp 1 iron_nn.hsp 3 iron_ode.hsp 1 iron_office.hsp 6 iron_optimize.hsp 1 iron_perf.hsp 5 iron_ping.hsp 2 iron_pptx.hsp 3 iron_process_net.hsp 5 iron_progress_cl.hsp 1 iron_quaternion.hsp 5 iron_rag.hsp 7 iron_random_dist.hsp 4 iron_rest.hsp 7 iron_retry.hsp 2 iron_scraper.hsp 2 iron_sentiment.hsp 2 iron_serial.hsp 6 iron_serial_net.hsp 5 iron_shell.hsp 6 iron_simd.hsp 34 iron_spectrum.hsp 1 iron_speech.hsp 9 iron_statemachine.hsp 6 iron_str2.hsp 11 iron_summarize.hsp 1 iron_synth.hsp 3 iron_sysinfo.hsp 10 iron_table2.hsp 1 iron_taskdialog.hsp 32 iron_tcp.hsp 6 iron_test.hsp 7 iron_threading.hsp 5 iron_toast.hsp 4 iron_udp.hsp 4 iron_url.hsp 6 iron_video.hsp 10 iron_websocket.hsp 5 iron_wpf.hsp 7 iron_xlsx.hsp 11 iron_zip_net.hsp 5 kernel32.dll 884 layer_fade 5 mf.dll 31 mfplat.dll 122 mfreadwrite.dll 5 mod_fontdlg 1 mod_joystick2 2 mod_menu 3 mod_mmaudio 7 mod_picfont 2 mod_posteffect 7 mod_regexp 4 mod_rss 1 mod_vpad 5 msimg32.dll 3 ncrypt.dll 1 netapi32.dll 45 normaliz.dll 2 obaq 51 obj 4 ole32.dll 143 oleaut32.dll 404 opengl32.dll 353 powrprof.dll 84 propsys.dll 1 psapi.dll 20 secur32.dll 2 shell32.dll 195 shlwapi.dll 15 SQLele 18 urlmon.dll 71 user32.dll 607 userenv.dll 34 uxtheme.dll 77 version.dll 7 wer.dll 20 windowscodecs.dll 9 winhttp.dll 46 wininet.dll 192 winmm.dll 146 wintrust.dll 7 wlanapi.dll 59 wmvcore.dll 11 ws2_32.dll 90 wtsapi32.dll 44 xaudio2_8.dll 4 xmllite.dll 6 ZLibWrap 2

iron_simd.hsp

Version 3.8 Date 2026/04/18 Author IronHSP

目次 (6 グループ / 34 ページ)

iron_simd - CPU機能 7
iron_simd - double配列 11
iron_simd - float配列 3
iron_simd - int配列 9
iron_simd - 画像 2
iron_simd - 行列演算 2

iron_simd - CPU機能

iron_simd_cpu_name
CPU ブランド文字列の取得
CPUID の拡張ブランド文字列を取得します (例: "Intel(R) Core(TM) i7-12700K CPU @ 3.60GHz")。 内部で 128 バイトの sdim を行い CPU 名を格納します。
iron_simd_features
対応 SIMD 機能の文字列取得
対応している SIMD 機能をスペース区切りの文字列で取得します。
iron_simd_has_avx
AVX 対応判定
AVX (256bit 浮動小数点 SIMD) 対応判定。OS レベルの YMM レジスタ 保存対応も XGETBV で確認済み。stat=1 なら AVX 実装を使用します。
iron_simd_has_avx2
AVX2 対応判定
AVX2 (256bit 整数 SIMD) 対応判定。 int 配列系の演算は AVX2 があるとフル速度で動作します。 stat=1 で対応。
iron_simd_has_avx512
AVX-512 対応判定
AVX-512 Foundation + OS ZMM 対応判定 (将来拡張用)。 現バージョンの hspsimd.dll は AVX-512 専用コードは持ちませんが、 情報取得のために提供されています。
iron_simd_has_sse
SSE 対応判定
SSE 命令セットを CPU が対応しているか返します。 x86-64 CPU では事実上常に 1。 stat = 1 なら対応、0 なら非対応。
iron_simd_has_sse2
SSE2 対応判定
SSE2 命令セットを CPU が対応しているか返します。 x64 プロセッサでは常に 1。stat=1 で対応。

iron_simd - double配列

iron_simd_abs_d
double 配列の絶対値
out(i) = |a(i)|。IEEE754 の符号ビットをマスクで落とす実装。
iron_simd_add_d
double 配列の要素加算
out(i) = a(i) + b(i) を n 個まとめて計算します。 AVX があれば 4 個ずつ、SSE2 のみなら 2 個ずつ並列処理し、 残りはスカラで埋めます。in-place (a と out 同一) も可能。
iron_simd_div_d
double 配列の要素除算
out(i) = a(i) / b(i) を n 個まとめて計算。 b(i)=0 の結果は IEEE754 に従い +inf / -inf / NaN となります。
iron_simd_dot_d
double 配列の内積
result = Σ a(i) * b(i) を計算します。 AVX の場合 256bit アキュムレータに積和を蓄積し、最後に水平和。 浮動小数の総和順序は SIMD 内では並列化の都合で保証されず、 厳密に scalar と同じ値にはならない可能性があります (誤差範囲内)。
iron_simd_max_d
double 配列の最大値
result = max a(i)。
iron_simd_min_d
double 配列の最小値
result = min a(i)。AVX の場合 _mm256_min_pd を使用。
iron_simd_mul_d
double 配列の要素乗算
out(i) = a(i) * b(i) を n 個まとめて計算。
iron_simd_scale_d
double 配列のスカラ倍
out(i) = a(i) * scalar を計算します。 スカラはベクトルにブロードキャストされ、AVX で 4 要素並列。
iron_simd_sqrt_d
double 配列の平方根
out(i) = sqrt(a(i))。負値は NaN になります。
iron_simd_sub_d
double 配列の要素減算
out(i) = a(i) - b(i) を n 個まとめて計算。
iron_simd_sum_d
double 配列の総和
result = Σ

iron_simd - float配列

iron_simd_add_f
float 配列の要素加算
32bit float 版。HSP は float 型を持たないため sdim でバイト列 として確保し varptr で渡します。通常は double 版を使う方が 簡便ですが、OpenGL / DirectX / WASM などの相互運用で float 配列が 必要な場合に使用します。
iron_simd_dot_f
float 配列の内積
..
iron_simd_sum_f
float 配列の総和
..

iron_simd - int配列

iron_simd_add_i
int 配列の要素加算
out(i) = a(i) + b(i)。AVX2 で 8 個並列、SSE2 で 4 個並列。 32bit のオーバーフローは切り捨て (ラップアラウンド)。
iron_simd_and_i
int 配列のビット AND
out(i) = a(i) & b(i)。マスク処理やフラグ集合演算に便利。
iron_simd_max_i
int 配列の最大値
..
iron_simd_min_i
int 配列の最小値
..
iron_simd_mul_i
int 配列の要素乗算
out(i) = a(i) * b(i) (下位 32bit)。AVX2 の _mm256_mullo_epi32 使用。
iron_simd_or_i
int 配列のビット OR
out(i) = a(i) |
iron_simd_sub_i
int 配列の要素減算
out(i) = a(i) -
iron_simd_sum_i
int 配列の総和
result = Σ a(i)。内部は 64bit で累積しオーバーフローしても 正しく集計しますが、戻り値 result は int32 にクランプされます。
iron_simd_xor_i
int 配列のビット XOR
out(i) = a(i) ^

iron_simd - 画像

iron_simd_pixel_blend
2 画像のアルファブレンド
out(i) = a(i) * (1 - alpha) + b(i) * alpha を全バイトに適用します。 alpha=0 で a そのまま、alpha=1 で b そのまま。 AVX2 で 8 バイト単位に変換して並列計算。 UI のフェード効果や 2 画像クロスフェードに最適。
iron_simd_pixel_grayscale
RGBA → グレースケール変換
BT.601 輝度係数 (0.299R + 0.587G + 0.114B) で RGBA を単チャネル グレースケールに変換します。out の長さは n/4 バイト。

iron_simd - 行列演算

iron_simd_matmul_d
double 行列積 C = A * B
double 版行列積。AVX で 4 列並列。 ddim で確保した row-major 配列を渡します。
iron_simd_matmul_f
float 行列積 C = A * B
row-major レイアウトで C = A * B を計算します (C は m 行 k 列)。 出力は常にゼロ初期化してから積和されます。 内ループで A の要素をブロードキャストし、B の行ベクトルと積和する "broadcast + fma" スタイル。