プロジェクトで使用するには、C++代数ライブラリが必要です。最初は書けると思っていたのですが、車輪の再発明に失敗し、貴重な時間を無駄にしていることに気づきました。
算術の問題については、GMPライブラリ(無制限の算術計算用)と他の種類のタスク用のツール(標準のC ++ライブラリは疑似乱数の生成には十分であるように見えました)を見つけました。しかし、代数の仕事に適したものを見つけることができませんでした。
線形代数ライブラリ(Armadilloなど)がありますが、そのようなライブラリが必要かどうかはわかりません。私のニーズを要約したいと思います。
#include <string>
#include <somelibrary.h>
int main(){
std::string str = "3*x^3+2*x^2+x+sqrt(x)*x^(1/3)";
algebraic_expression* exp = new algebraic_expression(str);
}
そんな表情で木が欲しいです。いくつかの情報を含むstd::vectorまたはCスタイルの配列を返すとしましょう。たとえば(上記の例を考慮すると)exp[0]は"3 * x ^ 3"、またはexp [0] ["base"]="x"になります。
そして、なぜ私はこれが必要なのですか?実際、正規表現を使用して同様のことを行うことができますが、3 * x ^ 0が単純に3であるなど、処理できない場合があります。3* x ^ 0は意味がないため、印刷できません。 3 * x^1は3*x)です。または(3-3)* 5*2は0などを返します...
ご協力いただきありがとうございます。