Windows x86, x64 用の 式の計算(計算式評価)DLL です。
四則演算・冪乗・括弧・組込関数(27種)を含む計算式の文字列を渡して、計算結果を double(倍精度浮動小数点)値で受け取れます。
Ver.1.01 から変数が使用できるようになりました。
自由に使える x64 (64ビット)用の DLL が無いようなので Boost Spirit X3 を利用して作成しました。
C++, C, C#, VB.NET のサンプルを添付しています。
C# と VB.NET のサンプルでは、プラットホームに AnyCPU を指定してコンパイルし、 実行時に x86/x64 を判定して呼び出す DLL を切り分けるようにしています。
その他詳しくは https://neige68.github.io/shiki-no-keisan-dll/ をご覧ください。
2*2+2/2 = 5
1/3 = 0.333333333333333
1/3-0.3333333333333 = 3.33066907387547E-14
1/0 = ∞
(-1)/0 = -∞
0/0 = NaN
ERROR: 0/0+ : 構文解析エラー: +
Error: 0/0+Hoge : 変数 Hoge は定義されていません.
2**3**4 = 2.41785163922926E+24
2**(3**4) = 2.41785163922926E+24
(2**3)**4 = 4096
2^(1/2) = 1.4142135623731
-2^(1/2) = -1.4142135623731
-2^-(1/2) = -0.707106781186548
(-2)^-(1/2) = NaN
(2^(1/12))^7 = 1.49830707687668
gamma(0.5)**2 = 3.14159265358979
exp(-1/0) = 0
round(exp(gammaln(0.5)*2),2) = 3.14
往路=120;復路=80;2/(1/往路+1/復路) = 96
Windows 10 以降 (x86, x64) 日本語版
ソースコードは Boost Software License, Version 1.0 に従って公開しています。
バイナリの配布は自由です。
C++, C, C#, VB.NET のサンプル コード、ビルド済みの DLL、インポート ライブラリを含むバイナリ リリースが Releases にあります。 ソースからビルドしたい場合以外はこちらを使用してください。
CMake 3.28, Visual Studio 2019 (VC14.2), Boost 1.84 を使用しています。用意してください。
Visual Studio 2019 の vcvarsall.bat のあるディレクトリを環境変数 VC142 に設定しておいてください。
例:
set VC142=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
各ディレクトリの build.bat を実行してください。
docs/builtin_functions.html - 組込関数ドキュメント
include/shiki_no_keisan.h - C/C++ ヘッダファイル
sample/cs/ - C#サンプル
sample/vb/ - VB.NET サンプル
sample/vc/ - C サンプル
sample/vcpp/ - C++ サンプル
src/ - ソース
VCランタイム ライブラリ静的リンク版DLL/LIB(ビルド要, バイナリ リリースには同梱)
bin/x64/neige68.ShikiNoKeisan.dll - x64用DLL
bin/x86/neige68.ShikiNoKeisan.dll - x86用DLL
lib/x64/neige68.ShikiNoKeisan.lib - x64用インポート ライブラリ
lib/x86/neige68.ShikiNoKeisan.lib - x86用インポート ライブラリ
VCランタイム ライブラリ動的リンク版DLL/LIB(ビルド要)
bin/rd/x64/neige68.ShikiNoKeisan.dll - x64用DLL
bin/rd/x86/neige68.ShikiNoKeisan.dll - x86用DLL
lib/rd/x64/neige68.ShikiNoKeisan.lib - x64用インポート ライブラリ
lib/rd/x86/neige68.ShikiNoKeisan.lib - x86用インポート ライブラリ
mail: shiki-no-keisan-dll@neige@ の2つめの@を .nu で置換してください