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.
ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо :oops:

Автор:  F-MAP [ Чт окт 17, 2024 13:22 ]
Заголовок сообщения:  Re: Математика с "плавающей точкой". Помогите Plz!

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

Может почитать совсем древнюю книгу, там есть похожие примеры Дьяконов В.П.Форт-системы программирования персональных ЭВМ.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/