TigerSHARC 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба Ищу реализацию функции арктангенса для целых чисел(int16). В идеале хочется получить таблицу констант и одну функцию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба Таблица перекодировок? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба ну предпологается что арктангенс ищется табличным методом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба ну предпологается что арктангенс ищется табличным методом. CORDIC что ли? Я мог бы дать вам такой atan2 но без комментариев Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 (изменено) · Жалоба CORDIC что ли? Я мог бы дать вам такой atan2 но без комментариев был бы рад!Пусть и без коментариев, мне нужна функция которая просто будет возвращать результат. если не сложно залейте на zalil.ru Но, по-моему, CORDIC слишком требователен к ресурсам. Табличный метод проще, но требует много памяти для хранения таблицы. Табличный метод наряду с CORDIC описан тут: https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%...%81%D0%BA%D0%B0 Изменено 7 ноября, 2012 пользователем TigerSHARC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба был бы рад!Пусть и без коментариев, мне нужна функция которая просто будет возвращать результат. если не сложно залейте на 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 обычно не хуже по быстродействию, но не содержит громоздких таблиц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба Спасибо за код! Увидел atan2 и негодовал! Она ведь для плавучки)) потом увидел cordic для интов и возрадовался. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 7 ноября, 2012 Опубликовано 7 ноября, 2012 · Жалоба Спасибо за код! Увидел atan2 и негодовал! Она ведь для плавучки)) потом увидел cordic для интов и возрадовался. Спасибо! CORDIC float и CORDIC int - это следы разработки и отладки. Таблицы нужно как-то переносить или если проект на С то можно использовать atan2 при инициализации. Я плохо помню эту реализацию, потому отказываюсь сразу от коментариев, но помню что оно давно когда-то работало. А интерфейс там в тесте виден... :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться