lib@Bool
bool型をラップしたクラスです。
kuin@Classを受け取る引数にbool型の値を渡したい場合に使います。
cmpおよびtoStrを備えています。
lib@Bool.value
bool型の値を保持するプロパティです。
var value: bool
lib@Char
char型をラップしたクラスです。
kuin@Classを受け取る引数にchar型の値を渡したい場合に使います。
lib@Char.value
char型の値を保持するプロパティです。
var value: char
lib@Float
float型をラップしたクラスです。
kuin@Classを受け取る引数にfloat型の値を渡したい場合に使います。
lib@Float.value
float型の値を保持するプロパティです。
var value: float
lib@Int
int型をラップしたクラスです。
kuin@Classを受け取る引数にint型の値を渡したい場合に使います。
lib@Int.value
int型の値を保持するプロパティです。
var value: int
lib@Rnd
疑似乱数を扱うクラスです。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
インスタンスは#演算子ではなく、lib@makeRndで作成してください。
lib@Rnd.rnd
intの疑似乱数を取得するメソッドです。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@Rnd.rndBit64
func rndBit64(): bit64
戻り値 0以上0xFFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
lib@Rnd.rndFloat
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@Rnd.setSeed
疑似乱数の種を設定するメソッドです。
func setSeed(seed: bit32)
seed 疑似乱数の種
計算量:
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@Str
[]char型をラップしたクラスです。
kuin@Classを受け取る引数に[]char型の値を渡したい場合に使います。
lib@Str.value
[]char型の値を保持するプロパティです。
var value: []char
lib@acos
逆余弦関数です。
func acos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@acosh
逆双曲線余弦関数です。
func acosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@addr
インスタンスのアドレスを求める関数です。
func addr(class_: kuin@Class): bit64
class_ 任意のクラスのインスタンス 戻り値 インスタンスごとにユニークな値
計算量:
インスタンスごとにユニークな値が返ります。 クラスを辞書のキーにしたい場合など、クラスに適当な順序を持たせたい場合には、この関数の戻り値の大小関係を使ってcmpメソッドをオーバーライドします。
環境が「web」の場合など、メモリのアドレスという概念が無い環境では、インスタンスごとに割り振られたユニークな整数が返ります。
lib@asin
逆正弦関数です。
func asin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@asinh
逆双曲線正弦関数です。
func asinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atan
逆正接関数です。
func atan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atanh
逆双曲線正接関数です。
func atanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@ceil
天井関数です。
func ceil(x: float): float
x 任意の値 戻り値 x以上の最小の整数
計算量:
天井関数とは小数xに対し、x以上の最小の整数を返す関数です。
小数点以下を正の方向に切り上げる関数ともいえます。
lib@cerp
3次関数補間を求める関数です。
func cerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を3次関数補間した値
計算量:
3次関数補間は、停止状態からだんだん加速したのち、だんだん減速して停止するような曲線を描きます。
cerpは「Cubic intERPolation」の略です。
lib@chase
座標を目的地に向かって追跡させる関数です。
func chase(x: &float, target: float, vel: float): bool
x 座標 target 目的地の座標 vel 速度 戻り値 目的地に到達したらtrue、していなければfalse
計算量:
xをtargetのほうへvelだけ加減し、追い越したらxをtargetに一致させます。 xとtargetが等しくなった場合、戻り値としてtrueが返ります。
通常はvelは正の数にします。 velが負の場合、xはtargetから離れていきます。
lib@clamp
小数を指定した範囲でクランプする関数です。
func clamp(x: int, min: int, max: int): int
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@clampFloat
小数を指定した範囲でクランプする関数です。
func clampFloat(x: float, min: float, max: float): float
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@cmdLine
コマンドライン引数を取得する関数です。
func cmdLine(): [][]char
戻り値 配列に分割されたコマンドライン引数
計算量:
環境が「exe」「cpp」の場合、コマンドライン引数がスペースで区切られて返ります。
環境が「web」の場合、URLのクエリ文字列(「?」以降の文字列)が「&」で区切られて返ります。
lib@cmp
文字列を辞書順で比較する関数です。
func cmp(s1: []char, s2: []char): int
s1 比較する文字列1 s2 比較する文字列2 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さの短い方をとして、
文字列の大小は「<」などの比較演算子でも比較可能ですが、一度比較した後で結果を再利用したい場合にはこの関数を使います。
s1、s2にnullを渡してはいけません。
lib@cmpEx
文字列を辞書順で高機能比較する関数です。
func cmpEx(s1: []char, s2: []char, len: int, ignoreCase: bool): int
s1 比較する文字列1 s2 比較する文字列2 len 比較する文字数 ignoreCase 大文字と小文字を無視するならtrue、区別するならfalse 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さとlenの一番短いものをとして、
例えば「lib@cmpEx("abc", "ABD", 2, true)」は、大文字と小文字を無視して2文字を比較して一致しているため、0を返します。
s1、s2にnullを渡してはいけません。
lib@cos
余弦関数です。
func cos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@cosh
双曲線余弦関数です。
func cosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@dateToInt
日付をUNIX時間に変換する関数です。
func dateToInt(year: int, month: int, day: int, hour: int, minute: int, second: int): int
year 年(西暦4桁、1970以上3000以下) month 月(1以上12以下) day 日(1以上31以下) hour 時(0以上23以下) minute 分(0以上59以下) second 秒(0以上59以下) 戻り値 UNIX時間
計算量:
発生条件 ビルド 例外コード 日付の値が有効範囲外 dbgのみ 0xE9170006
lib@dist
平面上の2点間の距離を求める関数です。
func dist(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 距離
計算量:
中心座標から指定した座標までの距離が返ります。
lib@e
ネイピア数の定数です。
const e: float :: 2.71828182845904523536
自然対数の底(ネイピア数)を、float型で表せる最高精度で定義したものです。
lib@exitCode
終了コードを設定する関数です。
func exitCode(code: int)
code 終了コード。 16進数で0以上FFFFFFFF以下の値でなければならない
計算量:
プログラムの呼び出し元へエラーが起こった旨などを通知する終了コードをこの関数で設定できます。
この関数で設定せずにプログラムを終了した場合、終了コードは「0」になります。
環境が「web」の場合、終了コードという概念がないため、終了コードを設定しても何も起こりません。
発生条件 ビルド 例外コード codeが0より小さい、もしくは0xFFFFFFFFより大きい dbgのみ 0xE9170006
lib@exp
指数関数です。
func exp(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@floor
床関数です。
func floor(x: float): float
x 任意の値 戻り値 x以下の最大の整数
計算量:
床関数とは小数xに対し、x以下の最大の整数を求める関数です
小数点以下を負の方向に切り捨てる関数ともいえます。
lib@hermite
3次エルミート補間をする関数です。
func hermite(pos: []float, rate: float): float
pos 点の配列 rate posの最初の要素を0とし、以後要素に沿って1、2、…、としたときの位置。 0より小さい場合は0にされ、「要素数-1」を超えた場合には「要素数-1」にされる 戻り値 posの各点を通る、なめらかな曲線上の値
計算量:
3次エルミート補間は、指定した各点を通るなめらかな曲線を描きます。
posにnullを渡してはいけません。
lib@intMax
int型で表せる値の最大値の定数です。
const intMax: int :: 9223372036854775807
lib@intMin
int型で表せる値の最小値の定数です。
const intMin: int :: -9223372036854775807 - 1
lib@intToDate
UNIX時間を日付に変換する関数です。
func intToDate(time: int, year: &int, month: &int, day: &int, hour: &int, minute: &int, second: &int): int
time 変換するUNIX時間 year 年(西暦4桁)の格納先 month 月(1以上12以下)の格納先 day 日(1以上31以下)の格納先 hour 時(0以上23以下)の格納先 minute 分(0以上59以下)の格納先 second 秒(0以上59以下)の格納先 戻り値 曜日(0=日、1=月、…、6=土)
計算量:
lib@invRot
座標から回転角度を求める関数です。
func invRot(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 角度(0以上未満)
計算量:
中心から見たときの座標が存在する角度を取得します。
lib@lerp
線形補間をする関数です。
func lerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる。 戻り値 始点と終点を線形補間した値
計算量:
線形補間は、2点間を等速直線運動するような線分を描きます。
lerpは「Linear intERPolation」の略です。
lib@levenshtein
2つの文字列の類似度を取得する関数です。
func levenshtein(s1: []char, s2: []char): int
s1 文字列1 s2 文字列2 戻り値 s1とs2の類似度(レーベンシュタイン距離)
計算量: s1の長さをn、s2の長さをmとして、
「レーベンシュタイン距離」とは、文字列に「挿入」「削除」「置換」を最低何回行うともう一方の文字列に変換できるかを表す値で、小さいほど2つの文字列は類似しています。
あいまいな検索や、「もしかして…では?」と候補を提案する機能に使います。
lib@levenshtein("abc", "abd")は「1」が返り、lib@levenshtein("program", "problem")は「3」が返ります。
lib@ln
自然対数を求める関数です。
func ln(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@log
対数関数です。
func log(base: float, x: float): float
base 対数の底 x 任意の値 戻り値 「」の値
計算量:
lib@makeRnd
疑似乱数クラスのインスタンスを生成する関数です。
func makeRnd(seed: int): lib@Rnd
seed 疑似乱数シード 戻り値 疑似乱数クラスのインスタンス
計算量:
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@max
intの大きいほうの値を返す関数です。
func max(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@maxFloat
floatの大きいほうの値を返す関数です。
func maxFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@min
intの小さいほうの値を返す関数です。
func min(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@minFloat
floatの小さいほうの値を返す関数です。
func minFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@now
1970年1月1日0時0分0秒から現在までの経過時間を秒で表す「UNIX時間」を取得する関数です。
func now(): int
戻り値 UNIX時間
計算量:
この「UNIX時間」は、コンピュータで日時を表すときによく用いられる形式です。 「lib@intToDate」関数と組み合わせることで、現在時刻を「年・月・日・時・分・秒」に分けて取得できます。
lib@padding
パディングの大きさを求める関数です。
padding(value: int, align: int): int
value 任意の値 align アライメント。 1以上の値 戻り値 valueをalignのアライメントに揃えるときに必要なパディングの大きさ
例えばvalueを5、alignを4とした場合、5(value)を4(align)の倍数に揃えるには、valueに3のパディング(余白)を足す必要があるため、3が返ります。
alignは1以上の値であれば他に制約はなく、2の累乗や偶数である必要もありません。
発生条件 ビルド 例外コード alignが0以下 dbgのみ 0xE9170006
lib@pi
円周率の定数です。
const pi: float :: 3.14159265358979323846
円周率を、float型で表せる最高精度で定義したものです。
lib@qerp
2次関数補間をする関数です。
func qerp(first: float, last: float, easeIn: bool, rate: float): float
first 始点 last 終点 easeIn trueなら停止状態からだんだん加速するようなカーブ(ease-in)を描き、falseならだんだん減速して停止するようなカーブ(ease-out)を描く rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を2次関数補間した値
計算量:
2次関数補間は、停止状態からだんだん加速したり、だんだん減速して停止するような曲線を描きます。
qerpは「Quadratic intERPolation」の略です。
lib@range
整数の連番の配列を作成する関数です。
range(start: int, end_: int, step: int): []int
start 初期値 end_ 終値 step 増減値 戻り値 startからend_までstepずつ増減させてできた連番の配列
計算量: 連番の長さをnとして、
forブロックと同様に、startからend_までstepずつ増減させ、連番で配列を作ります。
stepに0を渡してはいけません。
発生条件 ビルド 例外コード stepが0 dbgのみ 0xE9170006
lib@rnd
intの疑似乱数を取得する関数です。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@rndBit64
bit64の疑似乱数を取得する関数です。
func rndBit64(): bit64
戻り値 16進数で0以上FFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
lib@rndFloat
小数の疑似乱数を取得する関数です。
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@rndUuid
UUIDバージョン4を生成する関数です。
func rndUuid(): []char
戻り値 UUIDバージョン4
計算量:
UUIDバージョン4とは、「00000000-0000-4000-8000-000000000000」のような36文字で表されるデータ列で、生成するたびに異なるユニークな文字列として利用できます。 生成したUUIDのいずれか2つが偶然重複するには、期待値で(=約230京)個生成する必要があり、現実にはほとんど起こらないものとみなせます。
lib@rot
回転した座標を求める関数です。
func rot(x: &float, y: &float, centerX: float, centerY: float, angle: float)
x 回転させる座標X y 回転させる座標Y centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度
計算量:
centerXおよびcenterYを中心に、xおよびyの座標を回転させます。
lib@round
指定した桁を四捨五入する関数です。
func round(x: float, precision: int): float
x 任意の値 precision 桁の精度 戻り値 xを四捨五入した値
計算量:
precisionには小数点以下何桁目を四捨五入するかを指定します。 例えば、「lib@round(1234.5678, 2)」は「1234.57」、「lib@round(1234.5678, -2)」は「1200」を返します。
lib@same
floatの計算誤差を考慮して比較する関数です。
func same(n1: float, n2: float): bool
n1 比較する値1 n2 比較する値2 戻り値 ほぼ一致しているかどうか
計算量:
浮動小数点型であるfloatは、計算すると誤差が生じ、数学的には一致するはずの計算が、「=」演算子ではfalseを返すことがあります。 そこで誤差を許容したfloat同士の一致を判定するにはこの関数を使います。
浮動小数点型で表現可能な数のうち24個分離れた数までを一致とみなします。
lib@shuffle
ばらばらに並び替えた整数の配列を生成する関数です。
func shuffle(n: int): []int
n 要素数 戻り値 0以上n未満の連番をばらばらに並び替えた配列
計算量: 要素数をnとして、
0以上n未満の連番の配列を、ばらばらに並び替えて返します。 疑似乱数を使い、すべての要素が均等な確率で並び変わるようにします。
lib@sin
正弦関数です。
func sin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sinh
双曲線正弦関数です。
func sinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sleep
一定時間処理を停止させる関数です。
func sleep(ms: int)
ms 停止させる時間(単位はミリ秒)
1秒間停止させる場合は「lib@sleep(1000)」とします。
環境が「exe」「cpp」の場合は、停止中にCPUを占有せず他のスレッドの処理が行われます。 環境が「web」の場合はこうした仕組みがないため、CPUを占有するビジーウェイトになります。
lib@sqrt
平方根を求める関数です。
func sqrt(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sysTime
システム時刻を取得する関数です。
func sysTime(): int
戻り値 システム時刻
計算量:
OSが起動してから現在までに経った時間をミリ秒で表す「システム時刻」を返します。
lib@tan
正接関数です。
func tan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@tanh
双曲線正接関数です。
func tanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@toBit64Forcibly
floatのメモリ上の並びを維持したままbit64へ変換する関数です。
func toBit64Forcibly(x: float): bit64
x 任意の値 戻り値 xのメモリ上の並びを維持したままbit64へ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままfloatからbit64に変換したいときに使います。
lib@toDegree
ラジアンを度に変換する関数です。
func toDegree(rad: float): float
rad ラジアン 戻り値 度
計算量:
lib@toFloatForcibly
bit64のメモリ上の並びを維持したままfloatへ変換する関数です。
func toFloatForcibly(x: bit64): float
x 任意の値 戻り値 xのメモリ上の並びを維持したままfloatへ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままbit64からfloatに変換したいときに使います。
lib@toRad
度をラジアンに変換する関数です。
func toRad(degree: float): float
degree 度 戻り値 ラジアン
計算量:
var value: bool |
char型の値を保持するプロパティです。
var value: char |
lib@Float
float型をラップしたクラスです。
kuin@Classを受け取る引数にfloat型の値を渡したい場合に使います。
lib@Float.value
float型の値を保持するプロパティです。
var value: float
lib@Int
int型をラップしたクラスです。
kuin@Classを受け取る引数にint型の値を渡したい場合に使います。
lib@Int.value
int型の値を保持するプロパティです。
var value: int
lib@Rnd
疑似乱数を扱うクラスです。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
インスタンスは#演算子ではなく、lib@makeRndで作成してください。
lib@Rnd.rnd
intの疑似乱数を取得するメソッドです。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@Rnd.rndBit64
func rndBit64(): bit64
戻り値 0以上0xFFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
lib@Rnd.rndFloat
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@Rnd.setSeed
疑似乱数の種を設定するメソッドです。
func setSeed(seed: bit32)
seed 疑似乱数の種
計算量:
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@Str
[]char型をラップしたクラスです。
kuin@Classを受け取る引数に[]char型の値を渡したい場合に使います。
lib@Str.value
[]char型の値を保持するプロパティです。
var value: []char
lib@acos
逆余弦関数です。
func acos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@acosh
逆双曲線余弦関数です。
func acosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@addr
インスタンスのアドレスを求める関数です。
func addr(class_: kuin@Class): bit64
class_ 任意のクラスのインスタンス 戻り値 インスタンスごとにユニークな値
計算量:
インスタンスごとにユニークな値が返ります。 クラスを辞書のキーにしたい場合など、クラスに適当な順序を持たせたい場合には、この関数の戻り値の大小関係を使ってcmpメソッドをオーバーライドします。
環境が「web」の場合など、メモリのアドレスという概念が無い環境では、インスタンスごとに割り振られたユニークな整数が返ります。
lib@asin
逆正弦関数です。
func asin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@asinh
逆双曲線正弦関数です。
func asinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atan
逆正接関数です。
func atan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atanh
逆双曲線正接関数です。
func atanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@ceil
天井関数です。
func ceil(x: float): float
x 任意の値 戻り値 x以上の最小の整数
計算量:
天井関数とは小数xに対し、x以上の最小の整数を返す関数です。
小数点以下を正の方向に切り上げる関数ともいえます。
lib@cerp
3次関数補間を求める関数です。
func cerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を3次関数補間した値
計算量:
3次関数補間は、停止状態からだんだん加速したのち、だんだん減速して停止するような曲線を描きます。
cerpは「Cubic intERPolation」の略です。
lib@chase
座標を目的地に向かって追跡させる関数です。
func chase(x: &float, target: float, vel: float): bool
x 座標 target 目的地の座標 vel 速度 戻り値 目的地に到達したらtrue、していなければfalse
計算量:
xをtargetのほうへvelだけ加減し、追い越したらxをtargetに一致させます。 xとtargetが等しくなった場合、戻り値としてtrueが返ります。
通常はvelは正の数にします。 velが負の場合、xはtargetから離れていきます。
lib@clamp
小数を指定した範囲でクランプする関数です。
func clamp(x: int, min: int, max: int): int
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@clampFloat
小数を指定した範囲でクランプする関数です。
func clampFloat(x: float, min: float, max: float): float
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@cmdLine
コマンドライン引数を取得する関数です。
func cmdLine(): [][]char
戻り値 配列に分割されたコマンドライン引数
計算量:
環境が「exe」「cpp」の場合、コマンドライン引数がスペースで区切られて返ります。
環境が「web」の場合、URLのクエリ文字列(「?」以降の文字列)が「&」で区切られて返ります。
lib@cmp
文字列を辞書順で比較する関数です。
func cmp(s1: []char, s2: []char): int
s1 比較する文字列1 s2 比較する文字列2 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さの短い方をとして、
文字列の大小は「<」などの比較演算子でも比較可能ですが、一度比較した後で結果を再利用したい場合にはこの関数を使います。
s1、s2にnullを渡してはいけません。
lib@cmpEx
文字列を辞書順で高機能比較する関数です。
func cmpEx(s1: []char, s2: []char, len: int, ignoreCase: bool): int
s1 比較する文字列1 s2 比較する文字列2 len 比較する文字数 ignoreCase 大文字と小文字を無視するならtrue、区別するならfalse 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さとlenの一番短いものをとして、
例えば「lib@cmpEx("abc", "ABD", 2, true)」は、大文字と小文字を無視して2文字を比較して一致しているため、0を返します。
s1、s2にnullを渡してはいけません。
lib@cos
余弦関数です。
func cos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@cosh
双曲線余弦関数です。
func cosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@dateToInt
日付をUNIX時間に変換する関数です。
func dateToInt(year: int, month: int, day: int, hour: int, minute: int, second: int): int
year 年(西暦4桁、1970以上3000以下) month 月(1以上12以下) day 日(1以上31以下) hour 時(0以上23以下) minute 分(0以上59以下) second 秒(0以上59以下) 戻り値 UNIX時間
計算量:
発生条件 ビルド 例外コード 日付の値が有効範囲外 dbgのみ 0xE9170006
lib@dist
平面上の2点間の距離を求める関数です。
func dist(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 距離
計算量:
中心座標から指定した座標までの距離が返ります。
lib@e
ネイピア数の定数です。
const e: float :: 2.71828182845904523536
自然対数の底(ネイピア数)を、float型で表せる最高精度で定義したものです。
lib@exitCode
終了コードを設定する関数です。
func exitCode(code: int)
code 終了コード。 16進数で0以上FFFFFFFF以下の値でなければならない
計算量:
プログラムの呼び出し元へエラーが起こった旨などを通知する終了コードをこの関数で設定できます。
この関数で設定せずにプログラムを終了した場合、終了コードは「0」になります。
環境が「web」の場合、終了コードという概念がないため、終了コードを設定しても何も起こりません。
発生条件 ビルド 例外コード codeが0より小さい、もしくは0xFFFFFFFFより大きい dbgのみ 0xE9170006
lib@exp
指数関数です。
func exp(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@floor
床関数です。
func floor(x: float): float
x 任意の値 戻り値 x以下の最大の整数
計算量:
床関数とは小数xに対し、x以下の最大の整数を求める関数です
小数点以下を負の方向に切り捨てる関数ともいえます。
lib@hermite
3次エルミート補間をする関数です。
func hermite(pos: []float, rate: float): float
pos 点の配列 rate posの最初の要素を0とし、以後要素に沿って1、2、…、としたときの位置。 0より小さい場合は0にされ、「要素数-1」を超えた場合には「要素数-1」にされる 戻り値 posの各点を通る、なめらかな曲線上の値
計算量:
3次エルミート補間は、指定した各点を通るなめらかな曲線を描きます。
posにnullを渡してはいけません。
lib@intMax
int型で表せる値の最大値の定数です。
const intMax: int :: 9223372036854775807
lib@intMin
int型で表せる値の最小値の定数です。
const intMin: int :: -9223372036854775807 - 1
lib@intToDate
UNIX時間を日付に変換する関数です。
func intToDate(time: int, year: &int, month: &int, day: &int, hour: &int, minute: &int, second: &int): int
time 変換するUNIX時間 year 年(西暦4桁)の格納先 month 月(1以上12以下)の格納先 day 日(1以上31以下)の格納先 hour 時(0以上23以下)の格納先 minute 分(0以上59以下)の格納先 second 秒(0以上59以下)の格納先 戻り値 曜日(0=日、1=月、…、6=土)
計算量:
lib@invRot
座標から回転角度を求める関数です。
func invRot(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 角度(0以上未満)
計算量:
中心から見たときの座標が存在する角度を取得します。
lib@lerp
線形補間をする関数です。
func lerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる。 戻り値 始点と終点を線形補間した値
計算量:
線形補間は、2点間を等速直線運動するような線分を描きます。
lerpは「Linear intERPolation」の略です。
lib@levenshtein
2つの文字列の類似度を取得する関数です。
func levenshtein(s1: []char, s2: []char): int
s1 文字列1 s2 文字列2 戻り値 s1とs2の類似度(レーベンシュタイン距離)
計算量: s1の長さをn、s2の長さをmとして、
「レーベンシュタイン距離」とは、文字列に「挿入」「削除」「置換」を最低何回行うともう一方の文字列に変換できるかを表す値で、小さいほど2つの文字列は類似しています。
あいまいな検索や、「もしかして…では?」と候補を提案する機能に使います。
lib@levenshtein("abc", "abd")は「1」が返り、lib@levenshtein("program", "problem")は「3」が返ります。
lib@ln
自然対数を求める関数です。
func ln(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@log
対数関数です。
func log(base: float, x: float): float
base 対数の底 x 任意の値 戻り値 「」の値
計算量:
lib@makeRnd
疑似乱数クラスのインスタンスを生成する関数です。
func makeRnd(seed: int): lib@Rnd
seed 疑似乱数シード 戻り値 疑似乱数クラスのインスタンス
計算量:
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@max
intの大きいほうの値を返す関数です。
func max(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@maxFloat
floatの大きいほうの値を返す関数です。
func maxFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@min
intの小さいほうの値を返す関数です。
func min(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@minFloat
floatの小さいほうの値を返す関数です。
func minFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@now
1970年1月1日0時0分0秒から現在までの経過時間を秒で表す「UNIX時間」を取得する関数です。
func now(): int
戻り値 UNIX時間
計算量:
この「UNIX時間」は、コンピュータで日時を表すときによく用いられる形式です。 「lib@intToDate」関数と組み合わせることで、現在時刻を「年・月・日・時・分・秒」に分けて取得できます。
lib@padding
パディングの大きさを求める関数です。
padding(value: int, align: int): int
value 任意の値 align アライメント。 1以上の値 戻り値 valueをalignのアライメントに揃えるときに必要なパディングの大きさ
例えばvalueを5、alignを4とした場合、5(value)を4(align)の倍数に揃えるには、valueに3のパディング(余白)を足す必要があるため、3が返ります。
alignは1以上の値であれば他に制約はなく、2の累乗や偶数である必要もありません。
発生条件 ビルド 例外コード alignが0以下 dbgのみ 0xE9170006
lib@pi
円周率の定数です。
const pi: float :: 3.14159265358979323846
円周率を、float型で表せる最高精度で定義したものです。
lib@qerp
2次関数補間をする関数です。
func qerp(first: float, last: float, easeIn: bool, rate: float): float
first 始点 last 終点 easeIn trueなら停止状態からだんだん加速するようなカーブ(ease-in)を描き、falseならだんだん減速して停止するようなカーブ(ease-out)を描く rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を2次関数補間した値
計算量:
2次関数補間は、停止状態からだんだん加速したり、だんだん減速して停止するような曲線を描きます。
qerpは「Quadratic intERPolation」の略です。
lib@range
整数の連番の配列を作成する関数です。
range(start: int, end_: int, step: int): []int
start 初期値 end_ 終値 step 増減値 戻り値 startからend_までstepずつ増減させてできた連番の配列
計算量: 連番の長さをnとして、
forブロックと同様に、startからend_までstepずつ増減させ、連番で配列を作ります。
stepに0を渡してはいけません。
発生条件 ビルド 例外コード stepが0 dbgのみ 0xE9170006
lib@rnd
intの疑似乱数を取得する関数です。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@rndBit64
bit64の疑似乱数を取得する関数です。
func rndBit64(): bit64
戻り値 16進数で0以上FFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
lib@rndFloat
小数の疑似乱数を取得する関数です。
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@rndUuid
UUIDバージョン4を生成する関数です。
func rndUuid(): []char
戻り値 UUIDバージョン4
計算量:
UUIDバージョン4とは、「00000000-0000-4000-8000-000000000000」のような36文字で表されるデータ列で、生成するたびに異なるユニークな文字列として利用できます。 生成したUUIDのいずれか2つが偶然重複するには、期待値で(=約230京)個生成する必要があり、現実にはほとんど起こらないものとみなせます。
lib@rot
回転した座標を求める関数です。
func rot(x: &float, y: &float, centerX: float, centerY: float, angle: float)
x 回転させる座標X y 回転させる座標Y centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度
計算量:
centerXおよびcenterYを中心に、xおよびyの座標を回転させます。
lib@round
指定した桁を四捨五入する関数です。
func round(x: float, precision: int): float
x 任意の値 precision 桁の精度 戻り値 xを四捨五入した値
計算量:
precisionには小数点以下何桁目を四捨五入するかを指定します。 例えば、「lib@round(1234.5678, 2)」は「1234.57」、「lib@round(1234.5678, -2)」は「1200」を返します。
lib@same
floatの計算誤差を考慮して比較する関数です。
func same(n1: float, n2: float): bool
n1 比較する値1 n2 比較する値2 戻り値 ほぼ一致しているかどうか
計算量:
浮動小数点型であるfloatは、計算すると誤差が生じ、数学的には一致するはずの計算が、「=」演算子ではfalseを返すことがあります。 そこで誤差を許容したfloat同士の一致を判定するにはこの関数を使います。
浮動小数点型で表現可能な数のうち24個分離れた数までを一致とみなします。
lib@shuffle
ばらばらに並び替えた整数の配列を生成する関数です。
func shuffle(n: int): []int
n 要素数 戻り値 0以上n未満の連番をばらばらに並び替えた配列
計算量: 要素数をnとして、
0以上n未満の連番の配列を、ばらばらに並び替えて返します。 疑似乱数を使い、すべての要素が均等な確率で並び変わるようにします。
lib@sin
正弦関数です。
func sin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sinh
双曲線正弦関数です。
func sinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sleep
一定時間処理を停止させる関数です。
func sleep(ms: int)
ms 停止させる時間(単位はミリ秒)
1秒間停止させる場合は「lib@sleep(1000)」とします。
環境が「exe」「cpp」の場合は、停止中にCPUを占有せず他のスレッドの処理が行われます。 環境が「web」の場合はこうした仕組みがないため、CPUを占有するビジーウェイトになります。
lib@sqrt
平方根を求める関数です。
func sqrt(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sysTime
システム時刻を取得する関数です。
func sysTime(): int
戻り値 システム時刻
計算量:
OSが起動してから現在までに経った時間をミリ秒で表す「システム時刻」を返します。
lib@tan
正接関数です。
func tan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@tanh
双曲線正接関数です。
func tanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@toBit64Forcibly
floatのメモリ上の並びを維持したままbit64へ変換する関数です。
func toBit64Forcibly(x: float): bit64
x 任意の値 戻り値 xのメモリ上の並びを維持したままbit64へ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままfloatからbit64に変換したいときに使います。
lib@toDegree
ラジアンを度に変換する関数です。
func toDegree(rad: float): float
rad ラジアン 戻り値 度
計算量:
lib@toFloatForcibly
bit64のメモリ上の並びを維持したままfloatへ変換する関数です。
func toFloatForcibly(x: bit64): float
x 任意の値 戻り値 xのメモリ上の並びを維持したままfloatへ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままbit64からfloatに変換したいときに使います。
lib@toRad
度をラジアンに変換する関数です。
func toRad(degree: float): float
degree 度 戻り値 ラジアン
計算量:
var value: float |
int型の値を保持するプロパティです。
var value: int |
lib@Rnd
疑似乱数を扱うクラスです。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
インスタンスは#演算子ではなく、lib@makeRndで作成してください。
lib@Rnd.rnd
intの疑似乱数を取得するメソッドです。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@Rnd.rndBit64
func rndBit64(): bit64
戻り値 0以上0xFFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
lib@Rnd.rndFloat
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@Rnd.setSeed
疑似乱数の種を設定するメソッドです。
func setSeed(seed: bit32)
seed 疑似乱数の種
計算量:
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@Str
[]char型をラップしたクラスです。
kuin@Classを受け取る引数に[]char型の値を渡したい場合に使います。
lib@Str.value
[]char型の値を保持するプロパティです。
var value: []char
lib@acos
逆余弦関数です。
func acos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@acosh
逆双曲線余弦関数です。
func acosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@addr
インスタンスのアドレスを求める関数です。
func addr(class_: kuin@Class): bit64
class_ 任意のクラスのインスタンス 戻り値 インスタンスごとにユニークな値
計算量:
インスタンスごとにユニークな値が返ります。 クラスを辞書のキーにしたい場合など、クラスに適当な順序を持たせたい場合には、この関数の戻り値の大小関係を使ってcmpメソッドをオーバーライドします。
環境が「web」の場合など、メモリのアドレスという概念が無い環境では、インスタンスごとに割り振られたユニークな整数が返ります。
lib@asin
逆正弦関数です。
func asin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@asinh
逆双曲線正弦関数です。
func asinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atan
逆正接関数です。
func atan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atanh
逆双曲線正接関数です。
func atanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@ceil
天井関数です。
func ceil(x: float): float
x 任意の値 戻り値 x以上の最小の整数
計算量:
天井関数とは小数xに対し、x以上の最小の整数を返す関数です。
小数点以下を正の方向に切り上げる関数ともいえます。
lib@cerp
3次関数補間を求める関数です。
func cerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を3次関数補間した値
計算量:
3次関数補間は、停止状態からだんだん加速したのち、だんだん減速して停止するような曲線を描きます。
cerpは「Cubic intERPolation」の略です。
lib@chase
座標を目的地に向かって追跡させる関数です。
func chase(x: &float, target: float, vel: float): bool
x 座標 target 目的地の座標 vel 速度 戻り値 目的地に到達したらtrue、していなければfalse
計算量:
xをtargetのほうへvelだけ加減し、追い越したらxをtargetに一致させます。 xとtargetが等しくなった場合、戻り値としてtrueが返ります。
通常はvelは正の数にします。 velが負の場合、xはtargetから離れていきます。
lib@clamp
小数を指定した範囲でクランプする関数です。
func clamp(x: int, min: int, max: int): int
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@clampFloat
小数を指定した範囲でクランプする関数です。
func clampFloat(x: float, min: float, max: float): float
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@cmdLine
コマンドライン引数を取得する関数です。
func cmdLine(): [][]char
戻り値 配列に分割されたコマンドライン引数
計算量:
環境が「exe」「cpp」の場合、コマンドライン引数がスペースで区切られて返ります。
環境が「web」の場合、URLのクエリ文字列(「?」以降の文字列)が「&」で区切られて返ります。
lib@cmp
文字列を辞書順で比較する関数です。
func cmp(s1: []char, s2: []char): int
s1 比較する文字列1 s2 比較する文字列2 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さの短い方をとして、
文字列の大小は「<」などの比較演算子でも比較可能ですが、一度比較した後で結果を再利用したい場合にはこの関数を使います。
s1、s2にnullを渡してはいけません。
lib@cmpEx
文字列を辞書順で高機能比較する関数です。
func cmpEx(s1: []char, s2: []char, len: int, ignoreCase: bool): int
s1 比較する文字列1 s2 比較する文字列2 len 比較する文字数 ignoreCase 大文字と小文字を無視するならtrue、区別するならfalse 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さとlenの一番短いものをとして、
例えば「lib@cmpEx("abc", "ABD", 2, true)」は、大文字と小文字を無視して2文字を比較して一致しているため、0を返します。
s1、s2にnullを渡してはいけません。
lib@cos
余弦関数です。
func cos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@cosh
双曲線余弦関数です。
func cosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@dateToInt
日付をUNIX時間に変換する関数です。
func dateToInt(year: int, month: int, day: int, hour: int, minute: int, second: int): int
year 年(西暦4桁、1970以上3000以下) month 月(1以上12以下) day 日(1以上31以下) hour 時(0以上23以下) minute 分(0以上59以下) second 秒(0以上59以下) 戻り値 UNIX時間
計算量:
発生条件 ビルド 例外コード 日付の値が有効範囲外 dbgのみ 0xE9170006
lib@dist
平面上の2点間の距離を求める関数です。
func dist(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 距離
計算量:
中心座標から指定した座標までの距離が返ります。
lib@e
ネイピア数の定数です。
const e: float :: 2.71828182845904523536
自然対数の底(ネイピア数)を、float型で表せる最高精度で定義したものです。
lib@exitCode
終了コードを設定する関数です。
func exitCode(code: int)
code 終了コード。 16進数で0以上FFFFFFFF以下の値でなければならない
計算量:
プログラムの呼び出し元へエラーが起こった旨などを通知する終了コードをこの関数で設定できます。
この関数で設定せずにプログラムを終了した場合、終了コードは「0」になります。
環境が「web」の場合、終了コードという概念がないため、終了コードを設定しても何も起こりません。
発生条件 ビルド 例外コード codeが0より小さい、もしくは0xFFFFFFFFより大きい dbgのみ 0xE9170006
lib@exp
指数関数です。
func exp(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@floor
床関数です。
func floor(x: float): float
x 任意の値 戻り値 x以下の最大の整数
計算量:
床関数とは小数xに対し、x以下の最大の整数を求める関数です
小数点以下を負の方向に切り捨てる関数ともいえます。
lib@hermite
3次エルミート補間をする関数です。
func hermite(pos: []float, rate: float): float
pos 点の配列 rate posの最初の要素を0とし、以後要素に沿って1、2、…、としたときの位置。 0より小さい場合は0にされ、「要素数-1」を超えた場合には「要素数-1」にされる 戻り値 posの各点を通る、なめらかな曲線上の値
計算量:
3次エルミート補間は、指定した各点を通るなめらかな曲線を描きます。
posにnullを渡してはいけません。
lib@intMax
int型で表せる値の最大値の定数です。
const intMax: int :: 9223372036854775807
lib@intMin
int型で表せる値の最小値の定数です。
const intMin: int :: -9223372036854775807 - 1
lib@intToDate
UNIX時間を日付に変換する関数です。
func intToDate(time: int, year: &int, month: &int, day: &int, hour: &int, minute: &int, second: &int): int
time 変換するUNIX時間 year 年(西暦4桁)の格納先 month 月(1以上12以下)の格納先 day 日(1以上31以下)の格納先 hour 時(0以上23以下)の格納先 minute 分(0以上59以下)の格納先 second 秒(0以上59以下)の格納先 戻り値 曜日(0=日、1=月、…、6=土)
計算量:
lib@invRot
座標から回転角度を求める関数です。
func invRot(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 角度(0以上未満)
計算量:
中心から見たときの座標が存在する角度を取得します。
lib@lerp
線形補間をする関数です。
func lerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる。 戻り値 始点と終点を線形補間した値
計算量:
線形補間は、2点間を等速直線運動するような線分を描きます。
lerpは「Linear intERPolation」の略です。
lib@levenshtein
2つの文字列の類似度を取得する関数です。
func levenshtein(s1: []char, s2: []char): int
s1 文字列1 s2 文字列2 戻り値 s1とs2の類似度(レーベンシュタイン距離)
計算量: s1の長さをn、s2の長さをmとして、
「レーベンシュタイン距離」とは、文字列に「挿入」「削除」「置換」を最低何回行うともう一方の文字列に変換できるかを表す値で、小さいほど2つの文字列は類似しています。
あいまいな検索や、「もしかして…では?」と候補を提案する機能に使います。
lib@levenshtein("abc", "abd")は「1」が返り、lib@levenshtein("program", "problem")は「3」が返ります。
lib@ln
自然対数を求める関数です。
func ln(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@log
対数関数です。
func log(base: float, x: float): float
base 対数の底 x 任意の値 戻り値 「」の値
計算量:
lib@makeRnd
疑似乱数クラスのインスタンスを生成する関数です。
func makeRnd(seed: int): lib@Rnd
seed 疑似乱数シード 戻り値 疑似乱数クラスのインスタンス
計算量:
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@max
intの大きいほうの値を返す関数です。
func max(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@maxFloat
floatの大きいほうの値を返す関数です。
func maxFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@min
intの小さいほうの値を返す関数です。
func min(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@minFloat
floatの小さいほうの値を返す関数です。
func minFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@now
1970年1月1日0時0分0秒から現在までの経過時間を秒で表す「UNIX時間」を取得する関数です。
func now(): int
戻り値 UNIX時間
計算量:
この「UNIX時間」は、コンピュータで日時を表すときによく用いられる形式です。 「lib@intToDate」関数と組み合わせることで、現在時刻を「年・月・日・時・分・秒」に分けて取得できます。
lib@padding
パディングの大きさを求める関数です。
padding(value: int, align: int): int
value 任意の値 align アライメント。 1以上の値 戻り値 valueをalignのアライメントに揃えるときに必要なパディングの大きさ
例えばvalueを5、alignを4とした場合、5(value)を4(align)の倍数に揃えるには、valueに3のパディング(余白)を足す必要があるため、3が返ります。
alignは1以上の値であれば他に制約はなく、2の累乗や偶数である必要もありません。
発生条件 ビルド 例外コード alignが0以下 dbgのみ 0xE9170006
lib@pi
円周率の定数です。
const pi: float :: 3.14159265358979323846
円周率を、float型で表せる最高精度で定義したものです。
lib@qerp
2次関数補間をする関数です。
func qerp(first: float, last: float, easeIn: bool, rate: float): float
first 始点 last 終点 easeIn trueなら停止状態からだんだん加速するようなカーブ(ease-in)を描き、falseならだんだん減速して停止するようなカーブ(ease-out)を描く rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を2次関数補間した値
計算量:
2次関数補間は、停止状態からだんだん加速したり、だんだん減速して停止するような曲線を描きます。
qerpは「Quadratic intERPolation」の略です。
lib@range
整数の連番の配列を作成する関数です。
range(start: int, end_: int, step: int): []int
start 初期値 end_ 終値 step 増減値 戻り値 startからend_までstepずつ増減させてできた連番の配列
計算量: 連番の長さをnとして、
forブロックと同様に、startからend_までstepずつ増減させ、連番で配列を作ります。
stepに0を渡してはいけません。
発生条件 ビルド 例外コード stepが0 dbgのみ 0xE9170006
lib@rnd
intの疑似乱数を取得する関数です。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@rndBit64
bit64の疑似乱数を取得する関数です。
func rndBit64(): bit64
戻り値 16進数で0以上FFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
lib@rndFloat
小数の疑似乱数を取得する関数です。
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@rndUuid
UUIDバージョン4を生成する関数です。
func rndUuid(): []char
戻り値 UUIDバージョン4
計算量:
UUIDバージョン4とは、「00000000-0000-4000-8000-000000000000」のような36文字で表されるデータ列で、生成するたびに異なるユニークな文字列として利用できます。 生成したUUIDのいずれか2つが偶然重複するには、期待値で(=約230京)個生成する必要があり、現実にはほとんど起こらないものとみなせます。
lib@rot
回転した座標を求める関数です。
func rot(x: &float, y: &float, centerX: float, centerY: float, angle: float)
x 回転させる座標X y 回転させる座標Y centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度
計算量:
centerXおよびcenterYを中心に、xおよびyの座標を回転させます。
lib@round
指定した桁を四捨五入する関数です。
func round(x: float, precision: int): float
x 任意の値 precision 桁の精度 戻り値 xを四捨五入した値
計算量:
precisionには小数点以下何桁目を四捨五入するかを指定します。 例えば、「lib@round(1234.5678, 2)」は「1234.57」、「lib@round(1234.5678, -2)」は「1200」を返します。
lib@same
floatの計算誤差を考慮して比較する関数です。
func same(n1: float, n2: float): bool
n1 比較する値1 n2 比較する値2 戻り値 ほぼ一致しているかどうか
計算量:
浮動小数点型であるfloatは、計算すると誤差が生じ、数学的には一致するはずの計算が、「=」演算子ではfalseを返すことがあります。 そこで誤差を許容したfloat同士の一致を判定するにはこの関数を使います。
浮動小数点型で表現可能な数のうち24個分離れた数までを一致とみなします。
lib@shuffle
ばらばらに並び替えた整数の配列を生成する関数です。
func shuffle(n: int): []int
n 要素数 戻り値 0以上n未満の連番をばらばらに並び替えた配列
計算量: 要素数をnとして、
0以上n未満の連番の配列を、ばらばらに並び替えて返します。 疑似乱数を使い、すべての要素が均等な確率で並び変わるようにします。
lib@sin
正弦関数です。
func sin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sinh
双曲線正弦関数です。
func sinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sleep
一定時間処理を停止させる関数です。
func sleep(ms: int)
ms 停止させる時間(単位はミリ秒)
1秒間停止させる場合は「lib@sleep(1000)」とします。
環境が「exe」「cpp」の場合は、停止中にCPUを占有せず他のスレッドの処理が行われます。 環境が「web」の場合はこうした仕組みがないため、CPUを占有するビジーウェイトになります。
lib@sqrt
平方根を求める関数です。
func sqrt(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sysTime
システム時刻を取得する関数です。
func sysTime(): int
戻り値 システム時刻
計算量:
OSが起動してから現在までに経った時間をミリ秒で表す「システム時刻」を返します。
lib@tan
正接関数です。
func tan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@tanh
双曲線正接関数です。
func tanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@toBit64Forcibly
floatのメモリ上の並びを維持したままbit64へ変換する関数です。
func toBit64Forcibly(x: float): bit64
x 任意の値 戻り値 xのメモリ上の並びを維持したままbit64へ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままfloatからbit64に変換したいときに使います。
lib@toDegree
ラジアンを度に変換する関数です。
func toDegree(rad: float): float
rad ラジアン 戻り値 度
計算量:
lib@toFloatForcibly
bit64のメモリ上の並びを維持したままfloatへ変換する関数です。
func toFloatForcibly(x: bit64): float
x 任意の値 戻り値 xのメモリ上の並びを維持したままfloatへ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままbit64からfloatに変換したいときに使います。
lib@toRad
度をラジアンに変換する関数です。
func toRad(degree: float): float
degree 度 戻り値 ラジアン
計算量:
func rnd(min: int, max: int): int | |
min | 取得する疑似乱数の下限 |
max | 取得する疑似乱数の上限 |
戻り値 | min以上max以下の整数の疑似乱数 |
発生条件 | ビルド | 例外コード |
---|---|---|
minがmaxより大きい | dbgのみ | 0xE9170006 |
maxとminの差がlib@intMaxを超える | dbgのみ | 0xE9170006 |
func rndBit64(): bit64 | |
戻り値 | 0以上0xFFFFFFFFFFFFFFFF以下の疑似乱数 |
計算量:
lib@Rnd.rndFloat
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@Rnd.setSeed
疑似乱数の種を設定するメソッドです。
func setSeed(seed: bit32)
seed 疑似乱数の種
計算量:
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@Str
[]char型をラップしたクラスです。
kuin@Classを受け取る引数に[]char型の値を渡したい場合に使います。
lib@Str.value
[]char型の値を保持するプロパティです。
var value: []char
lib@acos
逆余弦関数です。
func acos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@acosh
逆双曲線余弦関数です。
func acosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@addr
インスタンスのアドレスを求める関数です。
func addr(class_: kuin@Class): bit64
class_ 任意のクラスのインスタンス 戻り値 インスタンスごとにユニークな値
計算量:
インスタンスごとにユニークな値が返ります。 クラスを辞書のキーにしたい場合など、クラスに適当な順序を持たせたい場合には、この関数の戻り値の大小関係を使ってcmpメソッドをオーバーライドします。
環境が「web」の場合など、メモリのアドレスという概念が無い環境では、インスタンスごとに割り振られたユニークな整数が返ります。
lib@asin
逆正弦関数です。
func asin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@asinh
逆双曲線正弦関数です。
func asinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atan
逆正接関数です。
func atan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atanh
逆双曲線正接関数です。
func atanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@ceil
天井関数です。
func ceil(x: float): float
x 任意の値 戻り値 x以上の最小の整数
計算量:
天井関数とは小数xに対し、x以上の最小の整数を返す関数です。
小数点以下を正の方向に切り上げる関数ともいえます。
lib@cerp
3次関数補間を求める関数です。
func cerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を3次関数補間した値
計算量:
3次関数補間は、停止状態からだんだん加速したのち、だんだん減速して停止するような曲線を描きます。
cerpは「Cubic intERPolation」の略です。
lib@chase
座標を目的地に向かって追跡させる関数です。
func chase(x: &float, target: float, vel: float): bool
x 座標 target 目的地の座標 vel 速度 戻り値 目的地に到達したらtrue、していなければfalse
計算量:
xをtargetのほうへvelだけ加減し、追い越したらxをtargetに一致させます。 xとtargetが等しくなった場合、戻り値としてtrueが返ります。
通常はvelは正の数にします。 velが負の場合、xはtargetから離れていきます。
lib@clamp
小数を指定した範囲でクランプする関数です。
func clamp(x: int, min: int, max: int): int
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@clampFloat
小数を指定した範囲でクランプする関数です。
func clampFloat(x: float, min: float, max: float): float
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@cmdLine
コマンドライン引数を取得する関数です。
func cmdLine(): [][]char
戻り値 配列に分割されたコマンドライン引数
計算量:
環境が「exe」「cpp」の場合、コマンドライン引数がスペースで区切られて返ります。
環境が「web」の場合、URLのクエリ文字列(「?」以降の文字列)が「&」で区切られて返ります。
lib@cmp
文字列を辞書順で比較する関数です。
func cmp(s1: []char, s2: []char): int
s1 比較する文字列1 s2 比較する文字列2 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さの短い方をとして、
文字列の大小は「<」などの比較演算子でも比較可能ですが、一度比較した後で結果を再利用したい場合にはこの関数を使います。
s1、s2にnullを渡してはいけません。
lib@cmpEx
文字列を辞書順で高機能比較する関数です。
func cmpEx(s1: []char, s2: []char, len: int, ignoreCase: bool): int
s1 比較する文字列1 s2 比較する文字列2 len 比較する文字数 ignoreCase 大文字と小文字を無視するならtrue、区別するならfalse 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さとlenの一番短いものをとして、
例えば「lib@cmpEx("abc", "ABD", 2, true)」は、大文字と小文字を無視して2文字を比較して一致しているため、0を返します。
s1、s2にnullを渡してはいけません。
lib@cos
余弦関数です。
func cos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@cosh
双曲線余弦関数です。
func cosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@dateToInt
日付をUNIX時間に変換する関数です。
func dateToInt(year: int, month: int, day: int, hour: int, minute: int, second: int): int
year 年(西暦4桁、1970以上3000以下) month 月(1以上12以下) day 日(1以上31以下) hour 時(0以上23以下) minute 分(0以上59以下) second 秒(0以上59以下) 戻り値 UNIX時間
計算量:
発生条件 ビルド 例外コード 日付の値が有効範囲外 dbgのみ 0xE9170006
lib@dist
平面上の2点間の距離を求める関数です。
func dist(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 距離
計算量:
中心座標から指定した座標までの距離が返ります。
lib@e
ネイピア数の定数です。
const e: float :: 2.71828182845904523536
自然対数の底(ネイピア数)を、float型で表せる最高精度で定義したものです。
lib@exitCode
終了コードを設定する関数です。
func exitCode(code: int)
code 終了コード。 16進数で0以上FFFFFFFF以下の値でなければならない
計算量:
プログラムの呼び出し元へエラーが起こった旨などを通知する終了コードをこの関数で設定できます。
この関数で設定せずにプログラムを終了した場合、終了コードは「0」になります。
環境が「web」の場合、終了コードという概念がないため、終了コードを設定しても何も起こりません。
発生条件 ビルド 例外コード codeが0より小さい、もしくは0xFFFFFFFFより大きい dbgのみ 0xE9170006
lib@exp
指数関数です。
func exp(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@floor
床関数です。
func floor(x: float): float
x 任意の値 戻り値 x以下の最大の整数
計算量:
床関数とは小数xに対し、x以下の最大の整数を求める関数です
小数点以下を負の方向に切り捨てる関数ともいえます。
lib@hermite
3次エルミート補間をする関数です。
func hermite(pos: []float, rate: float): float
pos 点の配列 rate posの最初の要素を0とし、以後要素に沿って1、2、…、としたときの位置。 0より小さい場合は0にされ、「要素数-1」を超えた場合には「要素数-1」にされる 戻り値 posの各点を通る、なめらかな曲線上の値
計算量:
3次エルミート補間は、指定した各点を通るなめらかな曲線を描きます。
posにnullを渡してはいけません。
lib@intMax
int型で表せる値の最大値の定数です。
const intMax: int :: 9223372036854775807
lib@intMin
int型で表せる値の最小値の定数です。
const intMin: int :: -9223372036854775807 - 1
lib@intToDate
UNIX時間を日付に変換する関数です。
func intToDate(time: int, year: &int, month: &int, day: &int, hour: &int, minute: &int, second: &int): int
time 変換するUNIX時間 year 年(西暦4桁)の格納先 month 月(1以上12以下)の格納先 day 日(1以上31以下)の格納先 hour 時(0以上23以下)の格納先 minute 分(0以上59以下)の格納先 second 秒(0以上59以下)の格納先 戻り値 曜日(0=日、1=月、…、6=土)
計算量:
lib@invRot
座標から回転角度を求める関数です。
func invRot(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 角度(0以上未満)
計算量:
中心から見たときの座標が存在する角度を取得します。
lib@lerp
線形補間をする関数です。
func lerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる。 戻り値 始点と終点を線形補間した値
計算量:
線形補間は、2点間を等速直線運動するような線分を描きます。
lerpは「Linear intERPolation」の略です。
lib@levenshtein
2つの文字列の類似度を取得する関数です。
func levenshtein(s1: []char, s2: []char): int
s1 文字列1 s2 文字列2 戻り値 s1とs2の類似度(レーベンシュタイン距離)
計算量: s1の長さをn、s2の長さをmとして、
「レーベンシュタイン距離」とは、文字列に「挿入」「削除」「置換」を最低何回行うともう一方の文字列に変換できるかを表す値で、小さいほど2つの文字列は類似しています。
あいまいな検索や、「もしかして…では?」と候補を提案する機能に使います。
lib@levenshtein("abc", "abd")は「1」が返り、lib@levenshtein("program", "problem")は「3」が返ります。
lib@ln
自然対数を求める関数です。
func ln(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@log
対数関数です。
func log(base: float, x: float): float
base 対数の底 x 任意の値 戻り値 「」の値
計算量:
lib@makeRnd
疑似乱数クラスのインスタンスを生成する関数です。
func makeRnd(seed: int): lib@Rnd
seed 疑似乱数シード 戻り値 疑似乱数クラスのインスタンス
計算量:
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@max
intの大きいほうの値を返す関数です。
func max(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@maxFloat
floatの大きいほうの値を返す関数です。
func maxFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@min
intの小さいほうの値を返す関数です。
func min(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@minFloat
floatの小さいほうの値を返す関数です。
func minFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@now
1970年1月1日0時0分0秒から現在までの経過時間を秒で表す「UNIX時間」を取得する関数です。
func now(): int
戻り値 UNIX時間
計算量:
この「UNIX時間」は、コンピュータで日時を表すときによく用いられる形式です。 「lib@intToDate」関数と組み合わせることで、現在時刻を「年・月・日・時・分・秒」に分けて取得できます。
lib@padding
パディングの大きさを求める関数です。
padding(value: int, align: int): int
value 任意の値 align アライメント。 1以上の値 戻り値 valueをalignのアライメントに揃えるときに必要なパディングの大きさ
例えばvalueを5、alignを4とした場合、5(value)を4(align)の倍数に揃えるには、valueに3のパディング(余白)を足す必要があるため、3が返ります。
alignは1以上の値であれば他に制約はなく、2の累乗や偶数である必要もありません。
発生条件 ビルド 例外コード alignが0以下 dbgのみ 0xE9170006
lib@pi
円周率の定数です。
const pi: float :: 3.14159265358979323846
円周率を、float型で表せる最高精度で定義したものです。
lib@qerp
2次関数補間をする関数です。
func qerp(first: float, last: float, easeIn: bool, rate: float): float
first 始点 last 終点 easeIn trueなら停止状態からだんだん加速するようなカーブ(ease-in)を描き、falseならだんだん減速して停止するようなカーブ(ease-out)を描く rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を2次関数補間した値
計算量:
2次関数補間は、停止状態からだんだん加速したり、だんだん減速して停止するような曲線を描きます。
qerpは「Quadratic intERPolation」の略です。
lib@range
整数の連番の配列を作成する関数です。
range(start: int, end_: int, step: int): []int
start 初期値 end_ 終値 step 増減値 戻り値 startからend_までstepずつ増減させてできた連番の配列
計算量: 連番の長さをnとして、
forブロックと同様に、startからend_までstepずつ増減させ、連番で配列を作ります。
stepに0を渡してはいけません。
発生条件 ビルド 例外コード stepが0 dbgのみ 0xE9170006
lib@rnd
intの疑似乱数を取得する関数です。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@rndBit64
bit64の疑似乱数を取得する関数です。
func rndBit64(): bit64
戻り値 16進数で0以上FFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
lib@rndFloat
小数の疑似乱数を取得する関数です。
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@rndUuid
UUIDバージョン4を生成する関数です。
func rndUuid(): []char
戻り値 UUIDバージョン4
計算量:
UUIDバージョン4とは、「00000000-0000-4000-8000-000000000000」のような36文字で表されるデータ列で、生成するたびに異なるユニークな文字列として利用できます。 生成したUUIDのいずれか2つが偶然重複するには、期待値で(=約230京)個生成する必要があり、現実にはほとんど起こらないものとみなせます。
lib@rot
回転した座標を求める関数です。
func rot(x: &float, y: &float, centerX: float, centerY: float, angle: float)
x 回転させる座標X y 回転させる座標Y centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度
計算量:
centerXおよびcenterYを中心に、xおよびyの座標を回転させます。
lib@round
指定した桁を四捨五入する関数です。
func round(x: float, precision: int): float
x 任意の値 precision 桁の精度 戻り値 xを四捨五入した値
計算量:
precisionには小数点以下何桁目を四捨五入するかを指定します。 例えば、「lib@round(1234.5678, 2)」は「1234.57」、「lib@round(1234.5678, -2)」は「1200」を返します。
lib@same
floatの計算誤差を考慮して比較する関数です。
func same(n1: float, n2: float): bool
n1 比較する値1 n2 比較する値2 戻り値 ほぼ一致しているかどうか
計算量:
浮動小数点型であるfloatは、計算すると誤差が生じ、数学的には一致するはずの計算が、「=」演算子ではfalseを返すことがあります。 そこで誤差を許容したfloat同士の一致を判定するにはこの関数を使います。
浮動小数点型で表現可能な数のうち24個分離れた数までを一致とみなします。
lib@shuffle
ばらばらに並び替えた整数の配列を生成する関数です。
func shuffle(n: int): []int
n 要素数 戻り値 0以上n未満の連番をばらばらに並び替えた配列
計算量: 要素数をnとして、
0以上n未満の連番の配列を、ばらばらに並び替えて返します。 疑似乱数を使い、すべての要素が均等な確率で並び変わるようにします。
lib@sin
正弦関数です。
func sin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sinh
双曲線正弦関数です。
func sinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sleep
一定時間処理を停止させる関数です。
func sleep(ms: int)
ms 停止させる時間(単位はミリ秒)
1秒間停止させる場合は「lib@sleep(1000)」とします。
環境が「exe」「cpp」の場合は、停止中にCPUを占有せず他のスレッドの処理が行われます。 環境が「web」の場合はこうした仕組みがないため、CPUを占有するビジーウェイトになります。
lib@sqrt
平方根を求める関数です。
func sqrt(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sysTime
システム時刻を取得する関数です。
func sysTime(): int
戻り値 システム時刻
計算量:
OSが起動してから現在までに経った時間をミリ秒で表す「システム時刻」を返します。
lib@tan
正接関数です。
func tan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@tanh
双曲線正接関数です。
func tanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@toBit64Forcibly
floatのメモリ上の並びを維持したままbit64へ変換する関数です。
func toBit64Forcibly(x: float): bit64
x 任意の値 戻り値 xのメモリ上の並びを維持したままbit64へ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままfloatからbit64に変換したいときに使います。
lib@toDegree
ラジアンを度に変換する関数です。
func toDegree(rad: float): float
rad ラジアン 戻り値 度
計算量:
lib@toFloatForcibly
bit64のメモリ上の並びを維持したままfloatへ変換する関数です。
func toFloatForcibly(x: bit64): float
x 任意の値 戻り値 xのメモリ上の並びを維持したままfloatへ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままbit64からfloatに変換したいときに使います。
lib@toRad
度をラジアンに変換する関数です。
func toRad(degree: float): float
degree 度 戻り値 ラジアン
計算量:
func rndFloat(min: float, max: float): float | |
min | 取得する疑似乱数の下限 |
max | 取得する疑似乱数の上限。 ただしこの値未満の値が返る |
戻り値 | min以上max未満の小数の疑似乱数 |
発生条件 | ビルド | 例外コード |
---|---|---|
minがmax以上 | dbgのみ | 0xE9170006 |
疑似乱数の種を設定するメソッドです。
func setSeed(seed: bit32) | |
seed | 疑似乱数の種 |
計算量:
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@Str
[]char型をラップしたクラスです。
kuin@Classを受け取る引数に[]char型の値を渡したい場合に使います。
lib@Str.value
[]char型の値を保持するプロパティです。
var value: []char
lib@acos
逆余弦関数です。
func acos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@acosh
逆双曲線余弦関数です。
func acosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@addr
インスタンスのアドレスを求める関数です。
func addr(class_: kuin@Class): bit64
class_ 任意のクラスのインスタンス 戻り値 インスタンスごとにユニークな値
計算量:
インスタンスごとにユニークな値が返ります。 クラスを辞書のキーにしたい場合など、クラスに適当な順序を持たせたい場合には、この関数の戻り値の大小関係を使ってcmpメソッドをオーバーライドします。
環境が「web」の場合など、メモリのアドレスという概念が無い環境では、インスタンスごとに割り振られたユニークな整数が返ります。
lib@asin
逆正弦関数です。
func asin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@asinh
逆双曲線正弦関数です。
func asinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atan
逆正接関数です。
func atan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@atanh
逆双曲線正接関数です。
func atanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@ceil
天井関数です。
func ceil(x: float): float
x 任意の値 戻り値 x以上の最小の整数
計算量:
天井関数とは小数xに対し、x以上の最小の整数を返す関数です。
小数点以下を正の方向に切り上げる関数ともいえます。
lib@cerp
3次関数補間を求める関数です。
func cerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を3次関数補間した値
計算量:
3次関数補間は、停止状態からだんだん加速したのち、だんだん減速して停止するような曲線を描きます。
cerpは「Cubic intERPolation」の略です。
lib@chase
座標を目的地に向かって追跡させる関数です。
func chase(x: &float, target: float, vel: float): bool
x 座標 target 目的地の座標 vel 速度 戻り値 目的地に到達したらtrue、していなければfalse
計算量:
xをtargetのほうへvelだけ加減し、追い越したらxをtargetに一致させます。 xとtargetが等しくなった場合、戻り値としてtrueが返ります。
通常はvelは正の数にします。 velが負の場合、xはtargetから離れていきます。
lib@clamp
小数を指定した範囲でクランプする関数です。
func clamp(x: int, min: int, max: int): int
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@clampFloat
小数を指定した範囲でクランプする関数です。
func clampFloat(x: float, min: float, max: float): float
x 任意の値 min クランプする下限 max クランプする上限 戻り値 クランプされたx
計算量:
xがminより小さければminを、maxより大きければmaxを、minとmaxの間ならxを返します。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006
lib@cmdLine
コマンドライン引数を取得する関数です。
func cmdLine(): [][]char
戻り値 配列に分割されたコマンドライン引数
計算量:
環境が「exe」「cpp」の場合、コマンドライン引数がスペースで区切られて返ります。
環境が「web」の場合、URLのクエリ文字列(「?」以降の文字列)が「&」で区切られて返ります。
lib@cmp
文字列を辞書順で比較する関数です。
func cmp(s1: []char, s2: []char): int
s1 比較する文字列1 s2 比較する文字列2 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さの短い方をとして、
文字列の大小は「<」などの比較演算子でも比較可能ですが、一度比較した後で結果を再利用したい場合にはこの関数を使います。
s1、s2にnullを渡してはいけません。
lib@cmpEx
文字列を辞書順で高機能比較する関数です。
func cmpEx(s1: []char, s2: []char, len: int, ignoreCase: bool): int
s1 比較する文字列1 s2 比較する文字列2 len 比較する文字数 ignoreCase 大文字と小文字を無視するならtrue、区別するならfalse 戻り値 s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0
計算量: s1とs2の長さとlenの一番短いものをとして、
例えば「lib@cmpEx("abc", "ABD", 2, true)」は、大文字と小文字を無視して2文字を比較して一致しているため、0を返します。
s1、s2にnullを渡してはいけません。
lib@cos
余弦関数です。
func cos(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@cosh
双曲線余弦関数です。
func cosh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@dateToInt
日付をUNIX時間に変換する関数です。
func dateToInt(year: int, month: int, day: int, hour: int, minute: int, second: int): int
year 年(西暦4桁、1970以上3000以下) month 月(1以上12以下) day 日(1以上31以下) hour 時(0以上23以下) minute 分(0以上59以下) second 秒(0以上59以下) 戻り値 UNIX時間
計算量:
発生条件 ビルド 例外コード 日付の値が有効範囲外 dbgのみ 0xE9170006
lib@dist
平面上の2点間の距離を求める関数です。
func dist(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 距離
計算量:
中心座標から指定した座標までの距離が返ります。
lib@e
ネイピア数の定数です。
const e: float :: 2.71828182845904523536
自然対数の底(ネイピア数)を、float型で表せる最高精度で定義したものです。
lib@exitCode
終了コードを設定する関数です。
func exitCode(code: int)
code 終了コード。 16進数で0以上FFFFFFFF以下の値でなければならない
計算量:
プログラムの呼び出し元へエラーが起こった旨などを通知する終了コードをこの関数で設定できます。
この関数で設定せずにプログラムを終了した場合、終了コードは「0」になります。
環境が「web」の場合、終了コードという概念がないため、終了コードを設定しても何も起こりません。
発生条件 ビルド 例外コード codeが0より小さい、もしくは0xFFFFFFFFより大きい dbgのみ 0xE9170006
lib@exp
指数関数です。
func exp(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@floor
床関数です。
func floor(x: float): float
x 任意の値 戻り値 x以下の最大の整数
計算量:
床関数とは小数xに対し、x以下の最大の整数を求める関数です
小数点以下を負の方向に切り捨てる関数ともいえます。
lib@hermite
3次エルミート補間をする関数です。
func hermite(pos: []float, rate: float): float
pos 点の配列 rate posの最初の要素を0とし、以後要素に沿って1、2、…、としたときの位置。 0より小さい場合は0にされ、「要素数-1」を超えた場合には「要素数-1」にされる 戻り値 posの各点を通る、なめらかな曲線上の値
計算量:
3次エルミート補間は、指定した各点を通るなめらかな曲線を描きます。
posにnullを渡してはいけません。
lib@intMax
int型で表せる値の最大値の定数です。
const intMax: int :: 9223372036854775807
lib@intMin
int型で表せる値の最小値の定数です。
const intMin: int :: -9223372036854775807 - 1
lib@intToDate
UNIX時間を日付に変換する関数です。
func intToDate(time: int, year: &int, month: &int, day: &int, hour: &int, minute: &int, second: &int): int
time 変換するUNIX時間 year 年(西暦4桁)の格納先 month 月(1以上12以下)の格納先 day 日(1以上31以下)の格納先 hour 時(0以上23以下)の格納先 minute 分(0以上59以下)の格納先 second 秒(0以上59以下)の格納先 戻り値 曜日(0=日、1=月、…、6=土)
計算量:
lib@invRot
座標から回転角度を求める関数です。
func invRot(x: float, y: float, centerX: float, centerY: float): float
x 座標X y 座標Y centerX 中心座標X centerY 中心座標Y 戻り値 角度(0以上未満)
計算量:
中心から見たときの座標が存在する角度を取得します。
lib@lerp
線形補間をする関数です。
func lerp(first: float, last: float, rate: float): float
first 始点 last 終点 rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる。 戻り値 始点と終点を線形補間した値
計算量:
線形補間は、2点間を等速直線運動するような線分を描きます。
lerpは「Linear intERPolation」の略です。
lib@levenshtein
2つの文字列の類似度を取得する関数です。
func levenshtein(s1: []char, s2: []char): int
s1 文字列1 s2 文字列2 戻り値 s1とs2の類似度(レーベンシュタイン距離)
計算量: s1の長さをn、s2の長さをmとして、
「レーベンシュタイン距離」とは、文字列に「挿入」「削除」「置換」を最低何回行うともう一方の文字列に変換できるかを表す値で、小さいほど2つの文字列は類似しています。
あいまいな検索や、「もしかして…では?」と候補を提案する機能に使います。
lib@levenshtein("abc", "abd")は「1」が返り、lib@levenshtein("program", "problem")は「3」が返ります。
lib@ln
自然対数を求める関数です。
func ln(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@log
対数関数です。
func log(base: float, x: float): float
base 対数の底 x 任意の値 戻り値 「」の値
計算量:
lib@makeRnd
疑似乱数クラスのインスタンスを生成する関数です。
func makeRnd(seed: int): lib@Rnd
seed 疑似乱数シード 戻り値 疑似乱数クラスのインスタンス
計算量:
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
同じseedからは同じ疑似乱数列が生成されるため、再現性のある疑似乱数を生成できます。
lib@max
intの大きいほうの値を返す関数です。
func max(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@maxFloat
floatの大きいほうの値を返す関数です。
func maxFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で大きいほうの値
計算量:
lib@min
intの小さいほうの値を返す関数です。
func min(n1: int, n2: int): int
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@minFloat
floatの小さいほうの値を返す関数です。
func minFloat(n1: float, n2: float): float
n1 値1 n2 値2 戻り値 n1とn2で小さいほうの値
計算量:
lib@now
1970年1月1日0時0分0秒から現在までの経過時間を秒で表す「UNIX時間」を取得する関数です。
func now(): int
戻り値 UNIX時間
計算量:
この「UNIX時間」は、コンピュータで日時を表すときによく用いられる形式です。 「lib@intToDate」関数と組み合わせることで、現在時刻を「年・月・日・時・分・秒」に分けて取得できます。
lib@padding
パディングの大きさを求める関数です。
padding(value: int, align: int): int
value 任意の値 align アライメント。 1以上の値 戻り値 valueをalignのアライメントに揃えるときに必要なパディングの大きさ
例えばvalueを5、alignを4とした場合、5(value)を4(align)の倍数に揃えるには、valueに3のパディング(余白)を足す必要があるため、3が返ります。
alignは1以上の値であれば他に制約はなく、2の累乗や偶数である必要もありません。
発生条件 ビルド 例外コード alignが0以下 dbgのみ 0xE9170006
lib@pi
円周率の定数です。
const pi: float :: 3.14159265358979323846
円周率を、float型で表せる最高精度で定義したものです。
lib@qerp
2次関数補間をする関数です。
func qerp(first: float, last: float, easeIn: bool, rate: float): float
first 始点 last 終点 easeIn trueなら停止状態からだんだん加速するようなカーブ(ease-in)を描き、falseならだんだん減速して停止するようなカーブ(ease-out)を描く rate 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる 戻り値 始点と終点を2次関数補間した値
計算量:
2次関数補間は、停止状態からだんだん加速したり、だんだん減速して停止するような曲線を描きます。
qerpは「Quadratic intERPolation」の略です。
lib@range
整数の連番の配列を作成する関数です。
range(start: int, end_: int, step: int): []int
start 初期値 end_ 終値 step 増減値 戻り値 startからend_までstepずつ増減させてできた連番の配列
計算量: 連番の長さをnとして、
forブロックと同様に、startからend_までstepずつ増減させ、連番で配列を作ります。
stepに0を渡してはいけません。
発生条件 ビルド 例外コード stepが0 dbgのみ 0xE9170006
lib@rnd
intの疑似乱数を取得する関数です。
func rnd(min: int, max: int): int
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限 戻り値 min以上max以下の整数の疑似乱数
計算量:
maxとminの差がlib@intMaxを超えてはなりません。
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmaxより大きい dbgのみ 0xE9170006 maxとminの差がlib@intMaxを超える dbgのみ 0xE9170006
lib@rndBit64
bit64の疑似乱数を取得する関数です。
func rndBit64(): bit64
戻り値 16進数で0以上FFFFFFFFFFFFFFFF以下の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
lib@rndFloat
小数の疑似乱数を取得する関数です。
func rndFloat(min: float, max: float): float
min 取得する疑似乱数の下限 max 取得する疑似乱数の上限。 ただしこの値未満の値が返る 戻り値 min以上max未満の小数の疑似乱数
計算量:
シード値はプログラムの起動時にミリ秒単位の時刻を用いて自動設定されるため、プログラム起動のたびに異なる疑似乱数列が返ります。
実装は128bitのXorshiftで、周期の高品質な疑似乱数が生成できます。
発生条件 ビルド 例外コード minがmax以上 dbgのみ 0xE9170006
lib@rndUuid
UUIDバージョン4を生成する関数です。
func rndUuid(): []char
戻り値 UUIDバージョン4
計算量:
UUIDバージョン4とは、「00000000-0000-4000-8000-000000000000」のような36文字で表されるデータ列で、生成するたびに異なるユニークな文字列として利用できます。 生成したUUIDのいずれか2つが偶然重複するには、期待値で(=約230京)個生成する必要があり、現実にはほとんど起こらないものとみなせます。
lib@rot
回転した座標を求める関数です。
func rot(x: &float, y: &float, centerX: float, centerY: float, angle: float)
x 回転させる座標X y 回転させる座標Y centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度
計算量:
centerXおよびcenterYを中心に、xおよびyの座標を回転させます。
lib@round
指定した桁を四捨五入する関数です。
func round(x: float, precision: int): float
x 任意の値 precision 桁の精度 戻り値 xを四捨五入した値
計算量:
precisionには小数点以下何桁目を四捨五入するかを指定します。 例えば、「lib@round(1234.5678, 2)」は「1234.57」、「lib@round(1234.5678, -2)」は「1200」を返します。
lib@same
floatの計算誤差を考慮して比較する関数です。
func same(n1: float, n2: float): bool
n1 比較する値1 n2 比較する値2 戻り値 ほぼ一致しているかどうか
計算量:
浮動小数点型であるfloatは、計算すると誤差が生じ、数学的には一致するはずの計算が、「=」演算子ではfalseを返すことがあります。 そこで誤差を許容したfloat同士の一致を判定するにはこの関数を使います。
浮動小数点型で表現可能な数のうち24個分離れた数までを一致とみなします。
lib@shuffle
ばらばらに並び替えた整数の配列を生成する関数です。
func shuffle(n: int): []int
n 要素数 戻り値 0以上n未満の連番をばらばらに並び替えた配列
計算量: 要素数をnとして、
0以上n未満の連番の配列を、ばらばらに並び替えて返します。 疑似乱数を使い、すべての要素が均等な確率で並び変わるようにします。
lib@sin
正弦関数です。
func sin(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sinh
双曲線正弦関数です。
func sinh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sleep
一定時間処理を停止させる関数です。
func sleep(ms: int)
ms 停止させる時間(単位はミリ秒)
1秒間停止させる場合は「lib@sleep(1000)」とします。
環境が「exe」「cpp」の場合は、停止中にCPUを占有せず他のスレッドの処理が行われます。 環境が「web」の場合はこうした仕組みがないため、CPUを占有するビジーウェイトになります。
lib@sqrt
平方根を求める関数です。
func sqrt(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@sysTime
システム時刻を取得する関数です。
func sysTime(): int
戻り値 システム時刻
計算量:
OSが起動してから現在までに経った時間をミリ秒で表す「システム時刻」を返します。
lib@tan
正接関数です。
func tan(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@tanh
双曲線正接関数です。
func tanh(x: float): float
x 任意の値 戻り値 「」の値
計算量:
lib@toBit64Forcibly
floatのメモリ上の並びを維持したままbit64へ変換する関数です。
func toBit64Forcibly(x: float): bit64
x 任意の値 戻り値 xのメモリ上の並びを維持したままbit64へ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままfloatからbit64に変換したいときに使います。
lib@toDegree
ラジアンを度に変換する関数です。
func toDegree(rad: float): float
rad ラジアン 戻り値 度
計算量:
lib@toFloatForcibly
bit64のメモリ上の並びを維持したままfloatへ変換する関数です。
func toFloatForcibly(x: bit64): float
x 任意の値 戻り値 xのメモリ上の並びを維持したままfloatへ変換した値
計算量:
Kuinのfloatのメモリ上の並びはIEEE 754で規定されているbinary64(倍精度浮動小数点数)に準拠しています。 Kuinのbit64はリトルエンディアンの64bit整数です。
何らかの理由でこのメモリ上の並びを維持したままbit64からfloatに変換したいときに使います。
lib@toRad
度をラジアンに変換する関数です。
func toRad(degree: float): float
degree 度 戻り値 ラジアン
計算量:
var value: []char |
func acos(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func acosh(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func addr(class_: kuin@Class): bit64 | |
class_ | 任意のクラスのインスタンス |
戻り値 | インスタンスごとにユニークな値 |
func asin(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func asinh(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func atan(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func atanh(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func ceil(x: float): float | |
x | 任意の値 |
戻り値 | x以上の最小の整数 |
func cerp(first: float, last: float, rate: float): float | |
first | 始点 |
last | 終点 |
rate | 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる |
戻り値 | 始点と終点を3次関数補間した値 |
func chase(x: &float, target: float, vel: float): bool | |
x | 座標 |
target | 目的地の座標 |
vel | 速度 |
戻り値 | 目的地に到達したらtrue、していなければfalse |
func clamp(x: int, min: int, max: int): int | |
x | 任意の値 |
min | クランプする下限 |
max | クランプする上限 |
戻り値 | クランプされたx |
発生条件 | ビルド | 例外コード |
---|---|---|
minがmaxより大きい | dbgのみ | 0xE9170006 |
func clampFloat(x: float, min: float, max: float): float | |
x | 任意の値 |
min | クランプする下限 |
max | クランプする上限 |
戻り値 | クランプされたx |
発生条件 | ビルド | 例外コード |
---|---|---|
minがmaxより大きい | dbgのみ | 0xE9170006 |
func cmdLine(): [][]char | |
戻り値 | 配列に分割されたコマンドライン引数 |
func cmp(s1: []char, s2: []char): int | |
s1 | 比較する文字列1 |
s2 | 比較する文字列2 |
戻り値 | s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0 |
func cmpEx(s1: []char, s2: []char, len: int, ignoreCase: bool): int | |
s1 | 比較する文字列1 |
s2 | 比較する文字列2 |
len | 比較する文字数 |
ignoreCase | 大文字と小文字を無視するならtrue、区別するならfalse |
戻り値 | s1がs2よりも辞書順で大きければ1、小さければ-1、等しければ0 |
func cos(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func cosh(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func dateToInt(year: int, month: int, day: int, hour: int, minute: int, second: int): int | |
year | 年(西暦4桁、1970以上3000以下) |
month | 月(1以上12以下) |
day | 日(1以上31以下) |
hour | 時(0以上23以下) |
minute | 分(0以上59以下) |
second | 秒(0以上59以下) |
戻り値 | UNIX時間 |
発生条件 | ビルド | 例外コード |
---|---|---|
日付の値が有効範囲外 | dbgのみ | 0xE9170006 |
func dist(x: float, y: float, centerX: float, centerY: float): float | |
x | 座標X |
y | 座標Y |
centerX | 中心座標X |
centerY | 中心座標Y |
戻り値 | 距離 |
const e: float :: 2.71828182845904523536 |
func exitCode(code: int) | |
code | 終了コード。 16進数で0以上FFFFFFFF以下の値でなければならない |
発生条件 | ビルド | 例外コード |
---|---|---|
codeが0より小さい、もしくは0xFFFFFFFFより大きい | dbgのみ | 0xE9170006 |
func exp(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func floor(x: float): float | |
x | 任意の値 |
戻り値 | x以下の最大の整数 |
func hermite(pos: []float, rate: float): float | |
pos | 点の配列 |
rate | posの最初の要素を0とし、以後要素に沿って1、2、…、としたときの位置。 0より小さい場合は0にされ、「要素数-1」を超えた場合には「要素数-1」にされる |
戻り値 | posの各点を通る、なめらかな曲線上の値 |
const intMax: int :: 9223372036854775807 |
const intMin: int :: -9223372036854775807 - 1 |
func intToDate(time: int, year: &int, month: &int, day: &int, hour: &int, minute: &int, second: &int): int | |
time | 変換するUNIX時間 |
year | 年(西暦4桁)の格納先 |
month | 月(1以上12以下)の格納先 |
day | 日(1以上31以下)の格納先 |
hour | 時(0以上23以下)の格納先 |
minute | 分(0以上59以下)の格納先 |
second | 秒(0以上59以下)の格納先 |
戻り値 | 曜日(0=日、1=月、…、6=土) |
func invRot(x: float, y: float, centerX: float, centerY: float): float | |
x | 座標X |
y | 座標Y |
centerX | 中心座標X |
centerY | 中心座標Y |
戻り値 | 角度(0以上未満) |
func lerp(first: float, last: float, rate: float): float | |
first | 始点 |
last | 終点 |
rate | 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる。 |
戻り値 | 始点と終点を線形補間した値 |
func levenshtein(s1: []char, s2: []char): int | |
s1 | 文字列1 |
s2 | 文字列2 |
戻り値 | s1とs2の類似度(レーベンシュタイン距離) |
func ln(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func log(base: float, x: float): float | |
base | 対数の底 |
x | 任意の値 |
戻り値 | 「」の値 |
func makeRnd(seed: int): lib@Rnd | |
seed | 疑似乱数シード |
戻り値 | 疑似乱数クラスのインスタンス |
func max(n1: int, n2: int): int | |
n1 | 値1 |
n2 | 値2 |
戻り値 | n1とn2で大きいほうの値 |
func maxFloat(n1: float, n2: float): float | |
n1 | 値1 |
n2 | 値2 |
戻り値 | n1とn2で大きいほうの値 |
func min(n1: int, n2: int): int | |
n1 | 値1 |
n2 | 値2 |
戻り値 | n1とn2で小さいほうの値 |
func minFloat(n1: float, n2: float): float | |
n1 | 値1 |
n2 | 値2 |
戻り値 | n1とn2で小さいほうの値 |
func now(): int | |
戻り値 | UNIX時間 |
padding(value: int, align: int): int | |
value | 任意の値 |
align | アライメント。 1以上の値 |
戻り値 | valueをalignのアライメントに揃えるときに必要なパディングの大きさ |
発生条件 | ビルド | 例外コード |
---|---|---|
alignが0以下 | dbgのみ | 0xE9170006 |
const pi: float :: 3.14159265358979323846 |
func qerp(first: float, last: float, easeIn: bool, rate: float): float | |
first | 始点 |
last | 終点 |
easeIn | trueなら停止状態からだんだん加速するようなカーブ(ease-in)を描き、falseならだんだん減速して停止するようなカーブ(ease-out)を描く |
rate | 始点を0、終点を1としたときの0以上1以下の位置。 0より小さい場合は0にされ、1より大きい場合は1にされる |
戻り値 | 始点と終点を2次関数補間した値 |
range(start: int, end_: int, step: int): []int | |
start | 初期値 |
end_ | 終値 |
step | 増減値 |
戻り値 | startからend_までstepずつ増減させてできた連番の配列 |
発生条件 | ビルド | 例外コード |
---|---|---|
stepが0 | dbgのみ | 0xE9170006 |
func rnd(min: int, max: int): int | |
min | 取得する疑似乱数の下限 |
max | 取得する疑似乱数の上限 |
戻り値 | min以上max以下の整数の疑似乱数 |
発生条件 | ビルド | 例外コード |
---|---|---|
minがmaxより大きい | dbgのみ | 0xE9170006 |
maxとminの差がlib@intMaxを超える | dbgのみ | 0xE9170006 |
func rndBit64(): bit64 | |
戻り値 | 16進数で0以上FFFFFFFFFFFFFFFF以下の疑似乱数 |
func rndFloat(min: float, max: float): float | |
min | 取得する疑似乱数の下限 |
max | 取得する疑似乱数の上限。 ただしこの値未満の値が返る |
戻り値 | min以上max未満の小数の疑似乱数 |
発生条件 | ビルド | 例外コード |
---|---|---|
minがmax以上 | dbgのみ | 0xE9170006 |
func rndUuid(): []char | |
戻り値 | UUIDバージョン4 |
func rot(x: &float, y: &float, centerX: float, centerY: float, angle: float) | |
x | 回転させる座標X |
y | 回転させる座標Y |
centerX | 回転中心座標X |
centerY | 回転中心座標Y |
angle | 回転角度 |
func round(x: float, precision: int): float | |
x | 任意の値 |
precision | 桁の精度 |
戻り値 | xを四捨五入した値 |
func same(n1: float, n2: float): bool | |
n1 | 比較する値1 |
n2 | 比較する値2 |
戻り値 | ほぼ一致しているかどうか |
func shuffle(n: int): []int | |
n | 要素数 |
戻り値 | 0以上n未満の連番をばらばらに並び替えた配列 |
func sin(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func sinh(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func sleep(ms: int) | |
ms | 停止させる時間(単位はミリ秒) |
func sqrt(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func sysTime(): int | |
戻り値 | システム時刻 |
func tan(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func tanh(x: float): float | |
x | 任意の値 |
戻り値 | 「」の値 |
func toBit64Forcibly(x: float): bit64 | |
x | 任意の値 |
戻り値 | xのメモリ上の並びを維持したままbit64へ変換した値 |
func toDegree(rad: float): float | |
rad | ラジアン |
戻り値 | 度 |
func toFloatForcibly(x: bit64): float | |
x | 任意の値 |
戻り値 | xのメモリ上の並びを維持したままfloatへ変換した値 |
func toRad(degree: float): float | |
degree | 度 |
戻り値 | ラジアン |