Перейти к содержанию
    

Ищу реализацию функции арктангенса для целых чисел(int16). В идеале хочется получить таблицу констант и одну функцию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну предпологается что арктангенс ищется табличным методом.

 

CORDIC что ли? Я мог бы дать вам такой atan2 но без комментариев

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CORDIC что ли? Я мог бы дать вам такой atan2 но без комментариев

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

 

Но, по-моему, CORDIC слишком требователен к ресурсам. Табличный метод проще, но требует много памяти для хранения таблицы.

Табличный метод наряду с CORDIC описан тут: https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%...%81%D0%BA%D0%B0

Изменено пользователем TigerSHARC

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

был бы рад!Пусть и без коментариев, мне нужна функция которая просто будет возвращать результат. если не сложно залейте на 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 обычно не хуже по быстродействию, но не содержит громоздких таблиц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за код!

Увидел atan2 и негодовал! Она ведь для плавучки))

потом увидел cordic для интов и возрадовался. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за код!

Увидел atan2 и негодовал! Она ведь для плавучки))

потом увидел cordic для интов и возрадовался. Спасибо!

 

 

CORDIC float и CORDIC int - это следы разработки и отладки. Таблицы нужно как-то переносить или если проект на С то можно использовать atan2 при инициализации. Я плохо помню эту реализацию, потому отказываюсь сразу от коментариев, но помню что оно давно когда-то работало. А интерфейс там в тесте виден... :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...