Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Математика с "плавающей точкой". Помогите Plz! |
 |
|
Можно смотреть CORDIC, он для пары гиперболических функций как раз дает exp(x). Реализация на Форте сильно зависит от требований к разрядности. Если они невысоки, то можно поступить даже так: exp(a+b) = exp(a) * exp(b) Делаем таблицы экспонент, допустим на 256 значений каждая, по схеме "грубые-точные". Число раскладываем на "грубое + точное", т.е., например 8 старших разрядов и 8 младших.
Можно смотреть CORDIC, он для пары гиперболических функций как раз дает exp(x). Реализация на Форте сильно зависит от требований к разрядности. Если они невысоки, то можно поступить даже так: exp(a+b) = exp(a) * exp(b) Делаем таблицы экспонент, допустим на 256 значений каждая, по схеме "грубые-точные". Число раскладываем на "грубое + точное", т.е., например 8 старших разрядов и 8 младших.
|
|
|
 |
Добавлено: Чт окт 17, 2024 15:05 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Математика с "плавающей точкой". Помогите Plz! |
 |
|
Hishnik писал(а): Как правило, в процессоре имеется exp(x), т.е. e^x У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут. Спасибо конечно! Но хотелось бы увидеть реализацию на Форте. ЗЫ помнится даже в DOS-овских (когда мат. сопроцессоры были редкостью) Фортах бывали программные реализации FP.
[quote="Hishnik"]Как правило, в процессоре имеется exp(x), т.е. e^x У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут.[/quote] Спасибо конечно! Но хотелось бы увидеть реализацию на Форте. ЗЫ помнится даже в DOS-овских (когда мат. сопроцессоры были редкостью) Фортах бывали программные реализации FP.
|
|
|
 |
Добавлено: Чт окт 17, 2024 14:33 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Математика с "плавающей точкой". Помогите Plz! |
 |
|
Как правило, в процессоре имеется exp(x), т.е. e^x У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут.
Как правило, в процессоре имеется exp(x), т.е. e^x У возведения в степень есть свойство: x^y = e^y*ln x. Натуральный логарифм обычно тоже есть. Поэтому можно написать функцию pow(x,y), которая будет возвращать x^y. Единственная тонкость - придется брать натуральный логарифм, поэтому отрицательные x не подойдут.
|
|
|
 |
Добавлено: Чт окт 17, 2024 13:30 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Математика с "плавающей точкой". Помогите Plz! |
 |
|
Ilya писал(а): Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка!  Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется "возведение в степень" с показателем степени являющимся FP.ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо  Может почитать совсем древнюю книгу, там есть похожие примеры Дьяконов В.П.Форт-системы программирования персональных ЭВМ.1992.djvu
[quote="Ilya"]Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка! :( Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется [b]"возведение в степень" с показателем степени являющимся FP.[/b] ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо :oops:[/quote] Может почитать совсем древнюю книгу, там есть похожие примеры Дьяконов В.П.Форт-системы программирования персональных ЭВМ.1992.djvu
|
|
|
 |
Добавлено: Чт окт 17, 2024 13:22 |
|
|
 |
|
|
Заголовок сообщения: |
Математика с "плавающей точкой". Помогите Plz! |
 |
|
Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка!  Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется "возведение в степень" с показателем степени являющимся FP.ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо 
Собственно в чём вопрос: тут у меня появилась одна задачка для МК и по обыкновению я пытаюсь её реализовать на stm32 + MecrispForth и всё бы ничего, но есть один "хитрый" датчик. Данные с датчика я конечно получаю (тут всё просто, АЦП), а вот с привидением полученных "попугаев" к человеческим величинам и самое "интересное" считать надо на МК - вот в этом и загвоздка! :( Собственно в чём вопрос: благо, что основные функции по работе с FP реализованы, но мне требуется [b]"возведение в степень" с показателем степени являющимся FP.[/b] ЗЫ прошу ногами сильно не пинать! Да, с математикой у меня всё плохо :oops:
|
|
|
 |
Добавлено: Чт окт 17, 2024 12:24 |
|
|
 |
|