Уменьшение диапазона для тригонометрических функций
Я пытаюсь реализовать уменьшение диапазона для тригонометрических функций. Я нашел эту статью http://www.computer.org/csdl/proceedings/pcspa/2010/4180/00/4180b048-abs.html которой говорится об использовании 64-разрядной целочисленной арифметики.
Представленная идея должна сработать, но в статье, похоже, есть некоторая проблема с уравнениями. Насколько это эффективно, чем реализовано в fdlibm?
1 ответ
[править] Извините, я не видел это как вопрос 2012 года, а вопрос 2013 года.
Это не подходит как комментарий, поэтому размещено здесь. Я понимаю, что он не отвечает непосредственно на пост ОП, но я твердо считаю, что это является предпосылкой к проблеме.
Если вы хотите выполнить полное уменьшение диапазона с плавающей запятой, обратитесь к документу KC Ng "СНИЖЕНИЕ АРГУМЕНТОВ ДЛЯ ОГРОМНЫХ АРГУМЕНТОВ: от хорошего до последнего", который можно легко найти в Интернете.
Существенная проблема заключается в том, что для уменьшения диапазона стандартных функций триггера, таких как синус (х), где х в радианах, необходимо сделать точное mod
операция с участием Пи. mod
Нужно расширить 4/Pi до достаточного количества битов, чтобы иметь значимый результат. В этом документе подробно описывается этот процесс и как далеко нужно идти. Оказывается, это потенциальные сотни битов, но не миллионы битов. Возможно, вы знаете об этой проблеме, но если нет, то это то, что вам нужно знать, чтобы добиться хорошего сокращения при использовании 64-битных подпрограмм или чего-либо еще.
как говорит @ eh9, не могли бы вы опубликовать некоторую информацию о закулисной ссылке и проблемах, с которыми вы столкнулись?