Блин, наверное немного не там искал, но не могу найти быстрых алгоритмов для реализации функций для длинных чисел (типа синус, косинус и т.д.). Единственное что мне пришло в голову - разложить в ряд Тейлора, но это по-моему самый глупый и медленый способ. Кто-то знает какие-то другие?
Я знаю! Использование fpu. Там есть все основные тригонометрчиеские функции и некоторые дополнительные.
Dart_Bobr Самый быстрый способ - поиск в таблице. Но точность будет очень маленькая (или таблица большая) Немного медленее, но гораздо точнее вычисление с помощью FPU Если точности FPU окажется мало (хотя я не представляю себе задачу, где нужна такая точность), то только ряд Тейлора см. также: http://algolist.manual.ru/maths/count_fast/sincos.php З. Ы. можешь посмотреть, как реализовано в GMP
Есть, правда, ещё один способ вычисляешь tan(pi/2<sup>n</sup>), например, с помощью Mathematica с нужной точностью а потом используешь формулы tan(x+y)=(tan(x)+tan(y))/(1-tan(x)*tan(y)) tan(2*x)=2*tan(x)/(1-tan(x)<sup>2</sup>) находишь tan(pi/2<sup>n-1</sup>), tan(pi/2<sup>n-2</sup>), ... и через них потом выражаешь tan(требуемого угла)
Точность до нескольких миллионов знаков после запятой Просто в универе мега проэкт взялся писать (конечно не в одиночку ). Что-то типа маткада. Поэтому точность fpu по-моему немного скромновата для такой цели.
Что-то говорит мне, что такие алгоритмы стоят пропорционально количеству знаков после запятой, и так просто в сети они не валяются
для быстрого вычисления синусов/косинусов существует принцип Птолемея. алгоритмы быстрого сложения,умножения длинных чисел можно сделать на китайской теореме об остатках. и в чем собственно геморрой?
Dart_Bobr Эмм... Как бы тебе сказать... Ты уже договорился с хозяевами компьютерного парка в Силиконовой долине о предоставлении сети для демонстрации дипломной работы? )))
А чем не устраивает разложить в ряд Тейлора. По-моему мнению это должно быть самым быстрым способою так, как Факториал вазрастает гараздо круче степенной функции.
slow Кроме этих функций есть еще парочка других - типа експоненты, логарифма, вот собственно и гемморой Pavia Э-э-э, а причем здесь факториал? Мне бы метод побыстрее... nobody Thanks, щас почитаю )
Pavia Угу, особенно если учесть что степенная функция будет вызываться для аргумента меньше единицы Dart_Bobr Факториал появляется при оценке ошибки в ряде Тейлора, т.е при вычислении количества нужных слагаемых. slow А можно описание этого принципа или ссылку на него? А то я про такой первый раз слышу и найти тоже не могу
Блейхут "Быстрые алгоритмы цифровой обработки сигналов" (около 6мб, в Сети есть много ссылок) Введение и вообще советую эту книгу