Кто может сказать мне, как инициализировать объект ex со строкой?
Кто-нибудь использует GINAC? Можете ли вы сказать мне, как начать ex
объект со строкой или преобразовать строку в ex
?
1 ответ
Если у вас есть строка, содержащая правильный синтаксис выражения, вы можете использовать описанный здесь конструктор, чтобы превратить ее в ex
объект.
Вам нужно предоставить второй аргумент, который должен быть списком (в смысле lst
объект) символов. Этот список должен содержать пользовательские символы, которые вы используете в выражении. Если вы не используете никаких пользовательских символов, используйте пустой список.
Пример без пользовательских символов:
using namespace std;
using namespace GiNaC;
ex myex("2+3",lst()); // Output will be '5'
cout myex << endl;
Пример использования двух пользовательских символов:
using namespace std;
using namespace GiNaC;
symbol x("x");
symbol y("y");
ex myex("x^3+y",lst(x,y));
cout << myex + y << endl; // Output will be '2*y+x^3'
В последнем примере вы можете видеть, что персонаж 'y'
во входной строке "x^3+y"
действительно был истолкован как символ y
: myex + y
упрощается до "2*y+x^3"
,