2021年09月18日くいなちゃん


プログラミング言語Kuin」の実行環境がexe用のAPIリファレンスページです。

 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点の配列
rateposの最初の要素を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終点
easeIntrueなら停止状態からだんだん加速するようなカーブ(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が0dbgのみ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
戻り値ラジアン
計算量:
1631938787jaf