Java Open Maple - обработка очень больших чисел

Я использую Java Open Maple Library в проекте, и мне интересно, как я могу передать большое целое число в Maple Engine? Я использую класс Java BigInteger для представления очень больших чисел. Однако Maple не поддерживает этот класс. Единственными поддерживаемыми типами являются int, double и long. Кто-нибудь нашел обходной путь для этого?

Спасибо.


person Anass Arakia    schedule 14.04.2016    source источник


Ответы (1)


Это не идеальное решение, но начните с com .maplesoft.openmaple.Numeric, ссылающийся на ваше целое число произвольной точности, вы можете:

  1. Сохраните целое число в переменной, скажем, n, в соответствующем сеансе Maple.
  2. Разбейте n на 64-битные фрагменты путем многократного деления на 2^64. В Maple вы можете вычислить остаток после деления на 2 ^ 64, одновременно обновляя значение «n» с помощью

    r := iquo(n, 2^64, 'n');
    

    После вычисления остатка методом eval на com.maplesoft.openmaple.Algebraic вы можете вызвать метод longValue(), чтобы выразить его как long.

  3. Из всех этих 64-битных фрагментов создайте BigInteger.

person saforrest    schedule 04.05.2016
comment
Я вижу, что тот же вопрос был опубликован на MaplePrimes почти в то же время. Я бы предложил использовать предоставленный там ответ (взять целое число Maple в виде строки и передать конструктору BigInteger), если только у вас нет сильного эстетического отвращения к использованию строк в качестве промежуточного представления. - person saforrest; 17.05.2016