реклама на сайте
подробности

 
 
> atan, ищется реализация
TigerSHARC
сообщение Nov 7 2012, 10:28
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Ищу реализацию функции арктангенса для целых чисел(int16). В идеале хочется получить таблицу констант и одну функцию.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
V_G
сообщение Nov 7 2012, 22:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



На асме, на асме...
А в чем проблема - алгоритм поска в таблице значений монотонной функции предельно простой.
Становитесь в центр таблицы, если значение из таблицы меньше аргумента арктангенса - прыгаете вверх на четверть длины, нет - вниз. Дальше аналогично - на 1/8 длины и т.д.
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 8 2012, 07:35
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (V_G @ Nov 8 2012, 01:52) *
На асме, на асме...
А в чем проблема - алгоритм поска в таблице значений монотонной функции предельно простой.
Становитесь в центр таблицы, если значение из таблицы меньше аргумента арктангенса - прыгаете вверх на четверть длины, нет - вниз. Дальше аналогично - на 1/8 длины и т.д.



Бинарный поиск по обратной таблице. Тоже хороший алгоритм уравновешивания, без деления. На последнем шаге можно ещё повысить точность линейной интерполяцией. Эта процедура сильно напоминает векторное квантование в кодерах. Понятно, что таким способом можно обратить любую функцию двух переменных, монотонно зависящих только от y/х

QUOTE (TigerSHARC @ Nov 7 2012, 22:03) *
не поделитесь реализацией? если конечно вы не на асме писали...


можете посмотреть реализацию на C atng2(int x, int y), между других табличных функций
http://zalil.ru/33938780
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 01:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016