Я пытаюсь создать библиотеку, которая выполняет различные математические операции с GMP, чтобы я мог использовать ее вместо чисел с плавающей запятой, но я очень быстро столкнулся с проблемами, потому что деление не работает. Я попробовал следующее в консоли:
php > $a = gmp_init ("5");
php > $b = gmp_init ("2");
php > echo gmp_add ($a, $b) . PHP_EOL;
7
php > echo gmp_sub ($a, $b) . PHP_EOL;
3
php > echo gmp_mul ($a, $b) . PHP_EOL;
10
php > echo gmp_div_q ($a, $b) . PHP_EOL;
Segmentation fault: 11
Я получил тот же результат с другими функциями подразделения GMP. Насколько я могу судить, я не делаю ничего плохого. На самом деле я даже попробовал примеры непосредственно из документации PHP и получил тот же результат (segfault).
Я также попробовал это со значениями, которые могут разделить точно, и все еще получил segfaults.
Версия PHP:
PHP 7.1.0 (cli) (сборка: 2 декабря 2016 г., 09:19:56) (NTS)
Я делаю что-то не так или это ошибка?
РЕДАКТИРОВАТЬ: Поскольку это segfault, я записал отчет об ошибке для этой проблемы. https://bugs.php.net/bug.php?id=73780
Задача ещё не решена.
Других решений пока нет …