Forth https://fforum.winglion.ru/ |
|
Математика с "плавающей точкой". Помогите Plz! https://fforum.winglion.ru/viewtopic.php?f=39&t=3401 |
Страница 1 из 1 |
Автор: | Ilya [ Чт окт 17, 2024 12:24 ] |
Заголовок сообщения: | Математика с "плавающей точкой". Помогите Plz! |
Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка! ![]() Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется "возведение в степень" с показателем степени являющимся FP. ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо ![]() |
Автор: | F-MAP [ Чт окт 17, 2024 13:22 ] |
Заголовок сообщения: | Re: Математика с "плавающей точкой". Помогите Plz! |
Ilya писал(а): Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка! ![]() Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется "возведение в степень" с показателем степени являющимся FP. ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо ![]() Может почитать совсем древнюю книгу, там есть похожие примеры Дьяконов В.П.Форт-системы программирования персональных ЭВМ.1992.djvu |
Автор: | Hishnik [ Чт окт 17, 2024 13:30 ] |
Заголовок сообщения: | Re: Математика с "плавающей точкой". Помогите Plz! |
Как правило, в процессоре имеется exp(x), т.е. e^x У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут. |
Автор: | Ilya [ Чт окт 17, 2024 14:33 ] |
Заголовок сообщения: | Re: Математика с "плавающей точкой". Помогите Plz! |
Hishnik писал(а): Как правило, в процессоре имеется exp(x), т.е. e^x У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут. Спасибо конечно! Но хотелось бы увидеть реализацию на Форте. ЗЫ помнится даже в DOS-овских (когда мат. сопроцессоры были редкостью) Фортах бывали программные реализации FP. |
Автор: | Hishnik [ Чт окт 17, 2024 15:05 ] |
Заголовок сообщения: | Re: Математика с "плавающей точкой". Помогите Plz! |
Можно смотреть CORDIC, он для пары гиперболических функций как раз дает exp(x). Реализация на Форте сильно зависит от требований к разрядности. Если они невысоки, то можно поступить даже так: exp(a+b) = exp(a) * exp(b) Делаем таблицы экспонент, допустим на 256 значений каждая, по схеме "грубые-точные". Число раскладываем на "грубое + точное", т.е., например 8 старших разрядов и 8 младших. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |