Мне нужно вычисление BigInteger modPow, но с BigDecimal в качестве экспоненты.
Преобразование в double или использование BigDecimal.pow, а затем мод, в этом случае невозможно, так как полный результат без мода в память не поместится. (и double не хватает точности) Так что о преобразовании в BigInteger с правильным масштабом тоже не может быть и речи.
Я не нашел для этого никакой библиотеки или подобного. modPow с дробным показателем без предварительного вычисления полного возведения в степень?
РЕДАКТИРОВАТЬ: Пример
BigInteger base = BigInteger.valueOf("101");
BigDecimal exp = BigDecimal.valueOf("24.387207613444534);
BigInteger mod = BigInteger.valueOf("10403");
BigInteger result = base.modPow(exp, mod)
Эти номера образцов очень малы, предполагаемое использование требует гораздо больших. Предполагается, что он предоставляет модификацию числа, которое само по себе слишком велико для хранения в ОЗУ, но известно о журнале и целочисленном делителе.