Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт дек 12, 2024 09:46

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Математика с "плавающей точкой". Помогите Plz!
СообщениеДобавлено: Чт окт 17, 2024 12:24 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 496
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка! :(
Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется "возведение в степень" с показателем степени являющимся FP.
ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо :oops:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Математика с "плавающей точкой". Помогите Plz!
СообщениеДобавлено: Чт окт 17, 2024 13:22 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 134
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 5 раз.
Ilya писал(а):
Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка! :(
Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется "возведение в степень" с показателем степени являющимся FP.
ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо :oops:

Может почитать совсем древнюю книгу, там есть похожие примеры Дьяконов В.П.Форт-системы программирования персональных ЭВМ.1992.djvu


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Математика с "плавающей точкой". Помогите Plz!
СообщениеДобавлено: Чт окт 17, 2024 13:30 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Как правило, в процессоре имеется exp(x), т.е. e^x
У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Математика с "плавающей точкой". Помогите Plz!
СообщениеДобавлено: Чт окт 17, 2024 14:33 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 496
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Hishnik писал(а):
Как правило, в процессоре имеется exp(x), т.е. e^x
У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут.

Спасибо конечно!
Но хотелось бы увидеть реализацию на Форте.
ЗЫ помнится даже в DOS-овских (когда мат. сопроцессоры были редкостью) Фортах бывали программные реализации FP.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Математика с "плавающей точкой". Помогите Plz!
СообщениеДобавлено: Чт окт 17, 2024 15:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7990
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
Можно смотреть CORDIC, он для пары гиперболических функций как раз дает exp(x). Реализация на Форте сильно зависит от требований к разрядности. Если они невысоки, то можно поступить даже так:
exp(a+b) = exp(a) * exp(b)
Делаем таблицы экспонент, допустим на 256 значений каждая, по схеме "грубые-точные". Число раскладываем на "грубое + точное", т.е., например 8 старших разрядов и 8 младших.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB