Кто может сказать мне, как инициализировать объект 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",

Другие вопросы по тегам