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

 
 
 
Reply to this topicStart new topic
> atan, ищется реализация
TigerSHARC
сообщение Nov 7 2012, 10:27
Сообщение #1


Знающий
****

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



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


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Таблица перекодировок?


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 7 2012, 11:58
Сообщение #3


Знающий
****

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



ну предпологается что арктангенс ищется табличным методом.
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 7 2012, 12:23
Сообщение #4


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

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



QUOTE (TigerSHARC @ Nov 7 2012, 14:58) *
ну предпологается что арктангенс ищется табличным методом.


CORDIC что ли? Я мог бы дать вам такой atan2 но без комментариев
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 7 2012, 12:59
Сообщение #5


Знающий
****

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



Цитата(fontp @ Nov 7 2012, 16:23) *
CORDIC что ли? Я мог бы дать вам такой atan2 но без комментариев

был бы рад!Пусть и без коментариев, мне нужна функция которая просто будет возвращать результат. если не сложно залейте на zalil.ru

Но, по-моему, CORDIC слишком требователен к ресурсам. Табличный метод проще, но требует много памяти для хранения таблицы.
Табличный метод наряду с CORDIC описан тут: https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%...%81%D0%BA%D0%B0

Сообщение отредактировал TigerSHARC - Nov 7 2012, 13:06
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 7 2012, 13:14
Сообщение #6


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

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



QUOTE (TigerSHARC @ Nov 7 2012, 15:59) *
был бы рад!Пусть и без коментариев, мне нужна функция которая просто будет возвращать результат. если не сложно залейте на zalil.ru

Но, по-моему, CORDIC слишком требователен к ресурсам. Табличный метод проще, но требует много памяти для хранения таблицы.
Табличный метод наряду с CORDIC описан тут: https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%...%81%D0%BA%D0%B0



http://zalil.ru/33936107

В случае таблицы Вы функцию 2-х переменных atan2 на круге приводите сначала к диапазону [0, pi/4] и одной переменной (x/y или y/х в зависимости от того кто из них меньше по модулю). Это перебор квадрантов и их половин посредством сравнений.
Потом можете использовать или большую таблицу или поменьше с линейной интерполяцией. Но в любом случае неизбежно деление.
CORDIC же работает без деления, а сам осуществляет поразрядное уравновешивание, как это делается в делении, по другому, но с такой же сложностью (если конечно у вас нет сопроцессора, делающего деление за один такт). Так что CORDIC обычно не хуже по быстродействию, но не содержит громоздких таблиц.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Nov 7 2012, 13:35
Сообщение #7


Знающий
****

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



Спасибо за код!
Увидел atan2 и негодовал! Она ведь для плавучки))
потом увидел cordic для интов и возрадовался. Спасибо!
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 7 2012, 13:38
Сообщение #8


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

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



QUOTE (TigerSHARC @ Nov 7 2012, 16:35) *
Спасибо за код!
Увидел atan2 и негодовал! Она ведь для плавучки))
потом увидел cordic для интов и возрадовался. Спасибо!



CORDIC float и CORDIC int - это следы разработки и отладки. Таблицы нужно как-то переносить или если проект на С то можно использовать atan2 при инициализации. Я плохо помню эту реализацию, потому отказываюсь сразу от коментариев, но помню что оно давно когда-то работало. А интерфейс там в тесте виден... rolleyes.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 03:22
Рейтинг@Mail.ru


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