Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: Библиотека математических операций с фиксированной точко

Вт авг 15, 2017 23:04:01

Надо таблицы, надо. Речь как раз идёт о скорости вычислений. И не для 13 бит (т.е. 4,8 десятичных цифры), а о разработке библиотечной функции с точностью 9 десятичных знаков, т.е. 32 бит. В этом случае таблицы быстрее работают.

Библиотечная функция - для чего? Как самоцель? Т.е. - сферический конь в вакууме? А почему тогда 32 бита, а не 64 к примеру?
А если вспомнить, что форум посвящён всё-таки МК, которые используются для встраиваемых применений, а не для научных расчётов или моделирования, то для каких таких задач нужно именно 32 бита? именно 32 не меньше и не больше?
И одно из практических применений синуса в сфере embedded - это генерация синусоиды (с некоей постоянной частотой). И в этом случае метод, который я описал будет и быстрее и компактнее таблиц.
Или Вы можете показать как таблично вычислить синус менее чем за одну MAC-операцию?? :shock:
А если теперь ещё немного подумать и понять, что ОЗУ в МК - как правило очень ограниченный ресурс и хранить таблицы в нём - это подойдёт для разве что очень простых задач. А если хранить во флешь, то знаете какое время выборки из внутренней флешь? Сколько тактов? Так что вполне возможно, что полином с 7-ю членами ещё быстрее посчитается чем интерполяция по Вашим таблицам. Тем более если разбивать таблицы на две и использовать формулу для суммы углов (из тригонометрии).

PS: И что-то я сильно сомневаюсь насчёт 32-бит точности при шаге таблицы 0.1градус. Вы ничего не попутали? Неужто на линейной интерполяции? И на единственной таблице (без разложения по формуле синуса суммы углов в 2 таблицы)? :)

Добавлено after 35 minutes 46 seconds:
Поучитесь у старичков, которые раньше на примитивных процах работали.
В вашем случае достаточно линейной интерполяции и не надо никаких рядов Тейлора.

Может сначала старичкам (коли так хочется попоучать современную молодёжь) нужно покурить даташиты на современные процы на предмет скорости работы встроенной флешь и подумать "А почему собственно на самых быстрых МК внутренней флешь частенько вообще нету"?
Ну это чтобы нечаянно не вляпаться в грязь лицом перед этой самой молодёжью. :)))

PS: Да - насчёт 13 бит точности полиномиального метода я ошибся - перепутал с STM8 где я недавно его реализовывал. Но там-то коэффициенты 16-битные и математика тоже - там ~13 бит точности получается. На ARM с его 32-битной арифметикой и коэффициентами конечно всё на порядки лучше.
В портянке ниже - расчёт 200 значений синуса из диапазона 0...90 градусов полиномом 7-й степени. Последний столбец - абсолютная величина отклонения от результата стандартной библиотечной функции sin(double):

Re: Библиотека математических операций с фиксированной точко

Ср авг 16, 2017 21:30:53

Библиотечная функция - для чего? Как самоцель? Т.е. - сферический конь в вакууме? А почему тогда 32 бита, а не 64 к примеру?
Чудак человек. Ей-богу. А спросить ТС Menzoda - не судьба видимо? )))
А Гитхаб-то мы не знаем. потому что молодежь ведь. Наивные и простые. И для чего гитхаб нужен? Хрен его знает, ага.

В портянке ниже - расчёт 200 значений синуса из диапазона 0...90 градусов
н-даа.
всё таки нельзя вам давать в руки клавиатуру, вы всё портите к чему прикасаетесь. :))
Синус - функция выпуклая, равномерная и гладкая - поэтому достаточно просчитать только возможные экстремальные точки на характерном промежутке.

Как у меня приведены всего 3 точки, хотя достаточны даже 2 или вообще одна. Остальные нужны как раз для оценки характеристик поведения функции самой ошибки (где больше и в каком направлении растёт ошибка) - поэтому и привожу 3 точки.

Re: Библиотека математических операций с фиксированной точко

Чт авг 17, 2017 00:44:58

Чудак человек. Ей-богу. А спросить ТС Menzoda - не судьба видимо? )))

Для тугих на голову разжую свою реплику:
В сфере embedded решаются как правило практические задачи управления устройствами, измерения, передачи данных и т.п. МК как правило не используются для задач математического моделирования.
Соответственно - любое ПО для МК предназначено для решения одной из вышеуказанных задач. А также - любая часть ПО. Соответственно - если кто-то делает какую-то "библиотеку", то сразу вопрос - "какова область её применения?" Если область применения даже автору неизвестна, то это и есть "конь в вакууме". Так как для применения в реальной задаче такое будет как правило неэффективно.
Для любой практической задачи тот же самый синус можно реализовать кучей разных способов, каждый из которых оптимален для своей задачи и неоптимален для другой.

Понятно что вам, в силу ограниченности, невдомёк, что синус можно считать не только таблицей.
Впрочем ничего странного - практически каждый чайник так и делает. Просто другого ничего не знает.

Синус - функция выпуклая, равномерная и гладкая - поэтому достаточно просчитать только возможные экстремальные точки на характерном промежутке.

Выпуклая - это цифра, характеризующая уровень ваших знаний. Цифра '0'.
По делу есть что сказать?
Кто-то тут плёл, что таблицами можно получить точность 32 бита на простой линейной интерполяции (и не конскими таблицами во всю память, а нормального размера). Приведите пример функции, а мы проверим.
Так же кто-то плёл про невероятную скорость вычислений табличного метода. Приведите пример конкретной функции для конкретного МК работающего на конкретной частоте с таблицей находящейся во флешь. И с растактовкой пожалуйста.

Предупреждение. Нарушение правил - п2-3. Fakir.

Re: Библиотека математических операций с фиксированной точко

Чт авг 17, 2017 07:06:40

Так же кто-то плёл про невероятную скорость вычислений табличного метода. Приведите пример конкретной функции для конкретного МК работающего на конкретной частоте с таблицей находящейся во флешь. И с растактовкой пожалуйста.

Вы очень узколобый, и вот эта фраза она вас характеризует как человека. Вы однозначно программист. Человек, которого все окружающие воспринимают как дурачок. Не от мира сего.
Ну и фраза из другого топика про 286-е, также вас характеризует как узколобого ограниченного человека.
Я напомню
Причём тут какие-то 286 или другие архитектуры давно уже музейные? Форум посвящён микроконтроллерам. Прочитайте несколько раз. К тому же данная ветка - МК на архитектуре ARM. Причём тут какие-то 286??
Ваши старческие воспоминания тут не к месту и бесполезны.
Продукт во всей красе. :)) "Чукча не читатель, чукча писатель" - вы бы не позорились так ярко.

Тут в принципе и комментировать не надо )) Человек с широким кругозором понял бы намёк. Но программистам намёки и, тем более, сарказм - не понятен в принципе. ))

Им надо пояснять где-что ))) Как на сайте программистов Хабра-Хабр. И я горжусь, что такие как вы, узколобые программисты, меня не приняли туда и выпилили анонимным минусованием, Это и есть ваши подлые и низкие душонки в ваккууме, возведённые в квадрат.
Что вы здесь и демонстрируете как отдельный индивид, вырванный из контекста. ))

А пояснять я вам свои мысли не буду, вы должны остаться в недоумении... Над вами должно посмеяться сообщество радиокотанов.

Предупреждение. Нарушение правил форума. п 2-3. Fakir.

Re: Библиотека математических операций с фиксированной точко

Вт авг 29, 2017 16:24:29

Ох какие страсти тут разгорелись из-за моей библиотечки. Чего спорите то?

ПС. Я просто переименовался из menzodы в sparkle.

Re: Библиотека математических операций с фиксированной точко

Вт авг 29, 2017 20:12:37

Хорошо хоть признался, уж чего только не надумалось.
С чего такая трансформация?

bad2cat, с каких это пор хабр стал "форумом программистов"? Сборище ламеров_ардуинщиков...

Re: Библиотека математических операций с фиксированной точко

Вт авг 29, 2017 21:29:24

Хорошо хоть признался, уж чего только не надумалось.
С чего такая трансформация?

Переходил с одного почтового ящика на другой. Когда удалил старый ящик, то понял, что не помню пароль к форуму. :facepalm:
Ответить