import "sys" で使えるプリミティブ型と演算の一覧です。
すべての型は C → C の 1-cell として定義されています。C は sys ライブラリの共通の 0-cell です。
| 型 | 説明 |
bool | 真偽値 |
u32 | 32bit 符号なし整数 |
i32 | 32bit 符号付き整数 |
f32 | 32bit 浮動小数点数 |
f32x2 | f32 の2要素ベクトル |
f32x3 | f32 の3要素ベクトル |
| 演算 | 型 | 説明 |
bool.lit[n] | C → bool | リテラル(n: nat) |
bool.true | C → bool | 真 |
bool.false | C → bool | 偽 |
bool.not | bool → bool | 否定 |
bool.and | bool bool → bool | 論理積 |
bool.or | bool bool → bool | 論理和 |
bool.ind[x] | x x bool → x | 分岐。真なら第1引数、偽なら第2引数を返す |
| 演算 | 型 | 説明 |
u32.lit[n] | C → u32 | リテラル(n: nat) |
u32.add | u32 u32 → u32 | 加算 |
u32.sub | u32 u32 → u32 | 減算 |
u32.mul | u32 u32 → u32 | 乗算 |
u32.div | u32 u32 → u32 | 除算 |
u32.mod | u32 u32 → u32 | 剰余 |
u32.neg | u32 → u32 | 符号反転 |
u32.eq, u32.ne | u32 u32 → bool | 等値比較 |
u32.lt, u32.le, u32.gt, u32.ge | u32 u32 → bool | 順序比較 |
u32.to_f32 | u32 → f32 | f32 への変換 |
u32.to_i32 | u32 → i32 | i32 への変換 |
| 演算 | 型 | 説明 |
i32.lit[n] | C → i32 | リテラル(n: nat) |
i32.add | i32 i32 → i32 | 加算 |
i32.sub | i32 i32 → i32 | 減算 |
i32.mul | i32 i32 → i32 | 乗算 |
i32.div | i32 i32 → i32 | 除算 |
i32.mod | i32 i32 → i32 | 剰余 |
i32.neg | i32 → i32 | 符号反転 |
i32.eq, i32.ne | i32 i32 → bool | 等値比較 |
i32.lt, i32.le, i32.gt, i32.ge | i32 i32 → bool | 順序比較 |
i32.to_f32 | i32 → f32 | f32 への変換 |
| 演算 | 型 | 説明 |
f32.lit[n] | C → f32 | リテラル(n: rat) |
f32.add | f32 f32 → f32 | 加算 |
f32.sub | f32 f32 → f32 | 減算 |
f32.mul | f32 f32 → f32 | 乗算 |
f32.div | f32 f32 → f32 | 除算 |
f32.neg | f32 → f32 | 符号反転 |
f32.floor | f32 → i32 | 切り捨て |
f32.ceil | f32 → i32 | 切り上げ |
f32.eq, f32.ne | f32 f32 → bool | 等値比較 |
f32.lt, f32.le, f32.gt, f32.ge | f32 f32 → bool | 順序比較 |
| 演算 | 型 | 説明 |
f32x2.lit[x, y] | C → f32x2 | リテラル(x, y: rat) |
f32x2.pack | f32 f32 → f32x2 | 2つの f32 をパック |
f32x2.unpack | f32x2 → f32 f32 | f32x2 を2つの f32 に展開 |
f32x2.add | f32x2 f32x2 → f32x2 | 加算 |
f32x2.sub | f32x2 f32x2 → f32x2 | 減算 |
f32x2.mul | f32x2 f32x2 → f32x2 | 乗算 |
f32x2.div | f32x2 f32x2 → f32x2 | 除算 |
f32x2.neg | f32x2 → f32x2 | 符号反転 |
f32x2.scale | f32 f32x2 → f32x2 | スカラー倍 |
| 演算 | 型 | 説明 |
f32x3.lit[x, y, z] | C → f32x3 | リテラル(x, y, z: rat) |
f32x3.pack | f32 f32 f32 → f32x3 | 3つの f32 をパック |
f32x3.unpack | f32x3 → f32 f32 f32 | f32x3 を3つの f32 に展開 |
f32x3.add | f32x3 f32x3 → f32x3 | 加算 |
f32x3.sub | f32x3 f32x3 → f32x3 | 減算 |
f32x3.mul | f32x3 f32x3 → f32x3 | 乗算 |
f32x3.div | f32x3 f32x3 → f32x3 | 除算 |
f32x3.neg | f32x3 → f32x3 | 符号反転 |
f32x3.scale | f32 f32x3 → f32x3 | スカラー倍 |
| 演算 | 型 | 説明 |
val.dup[x] | x → x x | 値の複製 |
val.drop[x] | x → C | 値の破棄 |
val.swap[x, y] | x y → y x | 値の入れ替え |
x, y は任意の C → C 型(1-cell)をパラメータとして受け取ります。