送られてくる文字列を数式として解き、値を元のプログラムに返すDLL(Dynamic Link Library)です。 Kが作ったアプリケーションがインストールされている各ディレクトリに置いてください。 数式には、四則演算(+、-、*、/)、べき乗(^)の他に、対応している関数を使用できます。 また、円周率πを定数として持っており、数式でpiと記述できます。Version 0.0.0.6以上は物理定数をR(気体定数) のように数式中に入力できます。
演算子の優先度は、次の順番になっています。通常の演算則に則っていると思いますが、間違い等ありましたら 指摘してください。
インストール
ダウンロードしたstringtocalcZZ_XX.zip(ZZはbit数、XXはバージョン番号)を解凍し、 StringToCalc.dllを使うアプリケーションのあるフォルダにファイルを全てコピーしてください。 これでStringToCalc.dllが使えるようになり、関数や数式が入力できるようになります。
アップデート
新しいstringtocalcZZ_XX.zipを解凍し、 StringToCalc.dllを使うアプリケーションのあるフォルダにファイルを全て上書きコピーしてください。
アンインストール
レジストリはいじりませんので、以下のファイルを削除すればOKです。
また、以下のファイルがありましたら、削除してください。
関数 | 定義や意味 | 関数の性質や制限 |
ln(x) | 自然対数 | x > 0 |
log(x) | 10を底とする対数 | x > 0 |
exp(x) | 指数関数(自然対数の底eのべき乗) | exp(x) > 0 |
abs(x) | xの絶対値を返す | abs(x) ≧ 0 |
sqr(x) | xの2乗 | sqr(x) ≧ 0 |
int(x) | xの整数部を返す | |
sign(x) | xの符号を返す。 | sign(x) = { -1, -1, 0} |
sqrt(x) | xの平方根 | x ≧ 0、sqrt(x) ≧ 0 |
frac(x) | xの小数点以下の数値を返す関数 | |
rad(x) | xをdegreeからラジアンへ変換する関数 | |
fact(x) | xの階乗 | xは整数。オーバーフローに注意 |
fisher(x) | フィッシャー変換 fisher(x) = (1/2)*ln((1+x)/(1-x) |
-1 < x < 1 (確率で使用される関数であるため、x ≦ -1を受け付けないようになってます ) |
fisherinv(x) | フィッシャー変換の逆関数 fisherinv(x) = (exp(2x)-1)/(exp(2x)+1) |
xが角度の場合、単位はラジアンです。
関数 | 定義や意味 | 関数の性質や制限 |
sin(x) | 正弦 (サイン) |
-1 ≦ sin(x) ≦ 1 |
cos(x) | 余弦 (コサイン) |
-1 ≦ cos(x) ≦ 1 |
tan(x) | 正接 (タンジェント) tan(x)= sin(x)/cos(x) |
x ≠ π*(2n+1)/2、n:整数 |
sec(x) | 正割 (セカント) sec = 1/cos(x) |
x ≠ π*(2n+1)/2、n:整数、|sec(x)|≧ 1 |
cot(x) | 余接 (コタンジェント) cot = 1/ tan(x) |
x ≠ πn、n:整数 |
csc(x) | 余割 (コセカント) csc = 1/sin(x) |
x ≠ πn、n:整数、|csc(x)|≧ 1 |
sinh(x) | 双曲正弦 (ハイパボリックサイン) sinh(x) = (ex-e-x)/2 |
|
cosh(x) | 双曲余弦 (ハイパボリックコサイン) cosh(x) = (ex+e-x)/2 |
cosh(x) ≧ 1 |
tanh(x) | 双曲正接 (ハイパボリックタンジェント) tanh(x) = sinh/cosh = (ex-e-x)/(ex+e-x) |
-1 < tanh(x) < 1 |
sech(x) | 双曲正割 (ハイパボリックセカント) = 1/cosh = 2/(ex+e-x) |
0 < sech(x) ≦ 1 |
coth(x) | 双曲余接 (ハイパボリックコタンジェント) coth(x) = 1/tanh = (ex+e-x)/(ex-e-x) |
x ≠ 0、|coth(x)|> 1 |
csch(x) | 双曲余割 (ハイパボリックコセカント) csch(x) = 1/sinh = 2/(ex-e-x) |
x ≠ 0、csch(x) ≠ 0 |
asin(x) | 逆正弦 (アークサイン) asin(x) = sin-1(x) |
-1≦x≦1、-π/2<asin(x)<π/2 |
acos(x) | 逆余弦 (アークコサイン) acos(x) = cos-1(x) |
-1≦x≦1、0<acos(x)<π |
atan(x) | 逆正接 (アークタンジェント) atan(x) = tan-1(x) |
-π/2<atan(x)<π/2 |
asec(x) | 逆正割 (アークセカント) asec(x) = sec-1(x) |
|x| ≧ 1、0 ≦ asec(x) ≦ π |
acot(x) | 逆余接 (アークコタンジェント) acot(x) = cot-1(x) |
正側からx → 0の場合、acot(x) → π/2。またacot(0)=π/2。 負からx → 0なら、acot(x) → -π/2。 -π/2 < 0≦ acot(x) ≦ π/2、且つacot(x) ≠ 0 |
acsc(x) | 逆余割 (アークコセカント) acsc(x) = csc-1(x) |
|x|≧ 1、0 <|acsc(x)|≦ π/2 |
asinh(x) | 逆双曲正弦 (ハイパボリックアークサイン) asinh(x) = sinh-1(x) |
|
acosh(x) | 逆双曲余弦 (ハイパボリックアークコサイン) acosh(x) = cosh-1(x) |
x ≧ 1、acosh(x) ≧ 0 |
atanh(x) | 逆双曲正接 (ハイパボリックアークタンジェント) atanh(x) = tanh-1(x) |
x < 1 |
asech(x) | 逆双曲正割 (ハイパボリックアークセカント) asech(x) = sech-1(x) |
0 < x ≦ 1 |
acoth(x) | 逆双曲余接 (ハイパボリックアークコタンジェント) acoth(x) = coth-1(x) |
|x|> 1、acoth(x) ≠ 0 |
acsch(x) | 逆双曲余割 (ハイパボリックアークコセカント) acsch(x) = csch-1(x) |
x ≠ 0、acsch(x) ≠ 0 |
2つ以上の引数を取る関数です
関数 | 定義や意味 | 関数の性質や制限 |
div(x,y) | x / y の商を返す関数 | x、yは整数 |
mod(x,y) | x / y の剰余(余り)を返す関数 | x、yは整数 |
max(x1,x2,..,xn) | x1〜xnの最大値を返す関数 | |
min(x1,x2,..,xn) | x1〜xnの最小値を返す関数 | |
sum(x1,x2,..,xn) | x1〜xnの和を返す関数 | |
combin(x1,x2) | 2項係数を返す関数 combin(総数,抜き取り数) | x1、x2は0以上の整数。x1 ≧ x2 |
average(x1,x2,..,xn) | x1〜xnの平均を返す関数 | |
weibull(x1,x2,x3,x4) | 値x1のワイブル分布を返す関数。 x2:形状母数、x3:尺度母数、x4:モード。 x4が0ならば2変数ワイブル累積分布関数を、0以外はワイブル確率密度関数を返す。 累積分布関数 = 1 - exp(-(x1/x2)^x3) 確率密度関数 = (x2/(x3^x2))*x1^(x2-1)*exp(-(x1/x2)^x3) |
x1 ≧ 0、x2,x3 > 0 |
weibull3(x1,x2,x3,x4,x5) | 値x1の3変数ワイブル分布を返す関数。 x2:形状母数、x3:尺度母数、x4:位置母数、x5:モード。 x5が0ならばワイブル累積分布関数を、0以外はワイブル確率密度関数を返す。 累積分布関数 = 1 - exp(-((x1-x4)/x2)^x3) 確率密度関数 = (x2/(x3^x2))*(x1-x4)^(x2-1)* exp(-((x1-x4)/x2)^x3) |
x1 ≧ 0、x2,x3 > 0 |
関数 | 定義や意味 | 関数の性質や制限 |
32bitの整数としてbitごとにandを取る | x、yは整数 | |
32bitの整数としてbitごとにorを取る | x、yは整数 | |
32bitの整数として符号を除いたbitを反転させる | xは整数 | |
xとyの排他演算 | x、yは整数 | |
xのビットを左へyだけシフトする。x*2^yと同じ | x、yは整数 | |
xのビットを右へyだけシフトする。x div 2^yと同じ | x、yは整数 | |
下を参照 | x、yは整数 | |
下を参照 | x、yは整数 | |
下を参照 | xは整数 | |
下を参照 | x、yは整数 |
これらの関数はそれぞれand、or、not、xorに対応する、n ビットでの演算です。 nは関数の引数として入力された値の絶対値のビット数に符号ビットを1つ加えた値です。 (nは関数内で自動で計算されます)
例えば、-9は次の2進数で表されます。
最も左のビットは符号ビットで、負の場合に1となります。それより右の4ビットは 9を2進数で表したものです。プログラム等で使用するビット演算子と 同じものはand、or、not、xorであり、andn、or、notn、xornではありません。
ちなみに、32ビット整数での-9は次のように表されます。関数電卓などで確認できます。
解析的にしか値を求められない関数です。
本来は虚数にも対応している関数もありますが、 本DLLではxを実数に制限してます。そのため、引数の入力範囲が本来より狭まっているものもあります。
内部で収束計算をするため、収束判定値を入力できるものもあります。 収束判定値を省略した場合、1E-15が収束判定に使用されます。
関数 | 定義や意味 | 関数の性質や制限 |
erf(x) | 誤差関数![]() |
![]() |
erfc(x) | 相補誤差関数![]() |
|
gamma(x,収束判定値) | ガンマ関数![]() |
x= 0, -1, -2, ..で発散 |
lgamma(x,収束判定値) | ガンマ関数の対数 | |
sgamma(a,x,収束判定値) | 第1種不完全ガンマ関数![]() |
x≧0 sgammaはa= 0, -1, -2, ..で発散 ![]() |
bgamma(a,x,収束判定値) | 第2種不完全ガンマ関数![]() |
|
beta(a,b) | ベータ関数![]() |
a>0、b>0![]() |
xbeta(a,b,x,収束判定値) | 不完全ベータ関数![]() |
0≦x≦1、a>0、b>0 |
ibeta(a,b,x,収束判定値) | 正規化された不完全ベータ関数(正則ベータ関数)![]() |
|
chisq(x,a,収束判定値) | カイ2乗累積分布関数![]() |
x≧0、a>0、カイ2乗分布の下側累積確率を返す 第1種不完全ガンマ関数比とも言う |
expi(x,収束判定値) | 指数積分![]() |
|
expn(x,収束判定値) | (一般化)指数積分![]() |
n=0,1,2,..![]() |
bsi(x,収束判定値) | 正弦積分![]() |
![]() |
ssi(x,収束判定値) | 正弦積分![]() |
|
ci(x,収束判定値) | 余弦積分![]() |
x>0![]() ![]() |
cin(x,収束判定値) | 余弦積分![]() |
|
li(x,収束判定値) | 対数積分![]() |
x≧0![]() |
zeta(x,収束判定値) | リーマンゼータ関数![]() |
x=1で発散 |
deta(x,収束判定値) | ディリクレのイータ関数![]() |
![]() x=1でln(2)に収束 |
dgamma(x,収束判定値) | ディガンマ関数![]() |
x= 0, -1, -2, ..で発散 |
pgamma(n,x,収束判定値) | ポリガンマ関数![]() |
x= 0, -1, -2, ..で発散 n=0,1,2,.. ![]() |
polylog(s,x,収束判定値) | 多重対数関数![]() |
|x|≦ 1 |
tdist(t,d,mode) | スチューデントのt分布 確率密度関数: ![]() 下側累積確率: ![]() 但し、Iz は正規化された不完全ベータ関数 |
mode=0なら確率密度関数、1なら下側累積確率、2なら上側累積確率 |
fdist(t,r1,r2,mode) | F分布 確率密度関数: ![]() 下側累積確率: ![]() 但し、Iz は正規化された不完全ベータ関数 |
mode=0なら確率密度関数、1なら下側累積確率、2なら上側累積確率 |
以下の物理定数を数式中に記号で入力できます。単位に注意してください。
下では便宜上大文字と小文字を混ぜて書いていますが、StringToCalc.dll内では大文字小文字を区別しません。
(全て小文字で書いても定数を認識します)
これらの値は、Wikiペディアの 物理定数をそのまま使っています。 (Wikiペディアに感謝致します)
また、定数の前後には必ず括弧や演算子を入れてください。つい、2Rと書きたくなりますが、2*Rと書いてください。
記号 | 物理定数 | 単位 |
R | 気体定数 | J/(mol*K) |
k | ボルツマン定数 | J/K |
A | アボガドロ定数 | 1/mol |
h | プランク定数 | J*s |
mp | プランク量 | kg |
lp | プランク長 | m |
tp | プランク時間 | s |
F | ファラデー定数 | C/mol |
G0 | 万有引力定数 | m^3/(kg*s^2) |
g | 重力加速度 | m/s^2 |
Rr | リュードベリ定数 | 1/m |
c | 真空中の光速 | m/s |
u0 | 真空中の透磁率 | N/A^2 |
e0 | 真空中の誘電率 | F/m |
z0 | 真空のインピーダンス | Ω |
atm | 標準大気圧 | Pa |
Deg0 | 摂氏0℃ | K |
el0 | 電子素量 | C |
Mel | 電子の静止質量 | kg |
Mpr | 陽子の静止質量 | kg |
Mnu | 中性子の静止質量 | kg |
Mu | 原子質量単位 | kg |
af | 微細構造定数 | |
a0 | ボーア半径 | m |
Eh | ハートリーエネルギー | J |
ub | ボーア磁子 | J/T |
ue | 電子の磁化モーメント | J/T |
ge | 自由電子のランデのg因子 | |
un | 核磁子 | J/T |
up | 陽子磁気モーメント | J/T |
rp | 陽子磁気回転比 | 1/(s*T) |
s | シュテファン-ボルツマン定数 | W/(m^2*k^4) |
c1 | 第一放射定数 | W*m^2 |
c2 | 第二放射定数 | m*K |
下に行くほど古いです。
本DLLをKのソフトウェア以外で無断で使用することを禁じます。