хм, не парился бы - взял бы какой нибудь специализированный DSP под 1 000 MIPS'ов у моторолы вроде есть такие.
...или если уж так хочется мощи, паралельных вычислений, понтов и всего такого - возьми 32 битный паралаксовский 8-ядерный контроллер - пропеллер по мойму называется
Пропеллер - дорогая игрушка для лохов. Вот тут неплохо сказано. А про синусы - многое зависит от алгоритма и компилятора. Если просто использовал библиотечные функции, то это не показатель. Надо сравнивать одинаковый алгоритм и одинаковую точность.
reverserнасчёт пропеллера согласен - он пустой совершенно - может бедная периферия дело времени, но DSP хотя бы от PIC с синусами бы справилось неплохо да и никто не отменял такого понятия как оптимизация.
оптимизируйте: y = sin(x); много соптимизируешь? не думаю, что реально сделать значитеньно лучше, чем в стандартной либе. ну есть сейчас 1100 тактов, будет минимум 900. я думал будет хотя бы порядок (. что касается пропеллера - можно поспортить. стоит эта железка ~300р. 8 армов - никак за 300 рублей не собрать, да и скорость взаимодействия ядер будет существенно ниже. что касается переферии - он предназначен для других целей. понятно, что нужно быть гражданином, чтобы для реализации SPI юзать propeller и программно эмулировать протокол обмена. почитай на официальном сайте - там всё расписано.
cupuyc На спектруме был програмный сопроцессор математики(камень 8-мибитный, умножать не умел). Там с помощью таблиц както тригономерия вычислялась, довольно продвинуто вобщем(не ряды маклорена). Точно не помню, но можно в сурцах посмотреть. Думаю там были лучшие решения.
если есть что-то лучше степенных рядов - давным давно бы уже везде использовалось. вообще, как вариант - табличка, но речь сейчас не об этом. понятно, что всю мою функцию можно прошить в тибличку (как я, собственно, и сделал). речь сейчас о скорости вычислений одинаковых алгоритмов для авра и для арма.
cupuyc А оно и используется. Просто код закрытый. Вам к примеру интел не даст ни микрокод, ни алгоритм в любом случае.
Вообще, надо смотреть, как вычисление реализовано на АРМе и как -- на АВР. Потому что разница маленькая шибко получается, а это странно.
А исходники соответствующих функций имеются, кстати? А заодно функций поддержки (которые, например, операции с плавающей запятой реализуют).
код под арм - на кейле, код под авр - на avr-gcc. у гсс наверняка можно посмотреть сорцы, а вот у кейла проблематично. кейл - коммерческий продукт, не могли же они так фигово реализовать тригонометрический функции, что работает даже хуже, чем у гсс?
Стандартные либы часто вычисляют синус/косинус используя таблицы. Так что, возможно, цифра и верная. Вообще, конечно, нужно смотреть сгенерированный код. Если не сильно важна точность, есть быстрый алгоритм приближением параболой: 1, 2 (у второго есть модификация для точности 0.001).