Я писал некоторый код на cython для реализации операций с массивами с множественной точностью (в основном точечные произведения и инверсия матриц), которые я хочу использовать в python. Я использовал mpfr в качестве базовой библиотеки C, и, тестируя как на C, так и на Cython, я обнаружил, что mpfr (с точностью 200 бит) работает в 50-200 раз медленнее (в зависимости от операции), чем numpy (с машинной точностью). Я знаю, что mpfr работает очень быстро, но я все равно нахожу эти накладные расходы удивительно большими. Поскольку мои потребности очень ограничены (фиксированная точность, только основные операции, такие как добавление, множение и т. д.), мне было интересно, могу ли я просто вручную закодировать некоторые операции с множественной точностью (не обращая внимания на тщательное округление и т. д.). К сожалению, это требует довольно много работы, поэтому я надеялся найти несколько бесплатных фрагментов кода на C или ассемблере Intel для выполнения базовой арифметики с множественной точностью. Я был бы признателен за любые ссылки на последнее или причины, по которым я должен или не должен использовать этот подход.
ОБНОВЛЕНИЕ: я должен был упомянуть, что уже пробовал библиотеку QD, и она на самом деле (немного) медленнее, чем MPFR с аналогичной точностью (212 бит). Я предполагаю, что это должно быть связано с накладными расходами С++.