Я недавно познакомился с библиотекой GMP для высокоточной арифметики. Кажется, его достаточно просто использовать, но в моей первой программе я сталкиваюсь с практическими проблемами. Как выражения должны быть оценены. Например, если у меня есть «1 + 8 * z ^ 2», а z - это переменная с большим целым числом mpz_t, как мне быстро это оценить? (В программе, которую я пишу, есть более крупные выражения.) В настоящее время я выполняю каждую операцию вручную и сохраняю результаты во временных переменных, например, для выражения «1 + 8 * z ^ 2»:
1) сначала сделайте mpt_mul (z, z, z) в квадрат z
2) затем определите переменную mpz_t, называемую «восьмерка», со значением 8.
3) умножить результат первого шага на 8 и сохранить в переменной temp.
4) определить переменную mpz_t, которая называется "one", со значением 1.
5) добавьте это к результату на шаге 3, чтобы найти окончательный ответ.
Это то, что я должен делать? Или есть лучший способ? Было бы действительно полезно, если бы было руководство пользователя для GMP, чтобы начать людей, но есть только справочное руководство.