Вычислить на ОМК

Aug 02, 2006 108 Replies

AA>>> Да я вроде понял. AA>>> А в случае логарифма, там вообще просто получается. AA>>> Hо у него тут есть оффсет, а это "ставит повторяемость функции" AA>>> в довольно сложное положение.;) DEO>> у логарифма повторяемость тоже такая же DEO>> только она повторяться будет на диапазоне основания. AA> У логарифма-то да. Только я бы сразу переходил (вычислил значения AA> в исходных точках) от X к Y. Те, чтобы результат получался без всяких AA> дополнительных промежуточных вычислениий. AA> у неужели 130 байт во флеше, или даже еепром, (а может и много меньше) AA> жалко выделить на такое дело? AA> Тут "народ" такими ресурсами не глядя кидается ;) изначальный вопрос был "как сократить таблицы" почему их надо сокращать - дело десятое

DEO>> то тут можно поиграться (но таблицу надо собирать для такого DEO>> диапазона чтобы результат масштабировтаь только в бОльшую сторону) AA> Да понятно, что всё это работает на аналитических функциях. да логарифм под данную методику плоховато ложится (по кр. мере с одним табличным преобразованием)

AA> у опять же, если нужны какие-то вычисления от нескольких переменных, AA> а функция логарифмируемая (как в данном случае), то ИМХО опять же самое AA> простое, составить таблицу(ы), как я предлагал, для функции каждой AA> переменной, AA> логарифмы сложить (со знаками) и антилогарифмировать. AA> икаких умножений, а уж тем более делений. см выше про постановку задачи

AA>>> Можно подумать ты недавно тут...;) DEO>> я тут от силы неделю :) AA> е знаю, как именно тут, но я твою фамилию уже много лет AA> знаю, ещё до переезда Сотника... во всяком случае. ну это возможно по другим рассылкам, окололинуксовым например ;)

Fri Aug 04 2006 13:56, Kirill Frolov wrote to Vladimir Vassilevsky:

KF> Афтар жжот. KF>

formatting link
-- ценный йад, прямо KF> исходник генерировать умеет. KF> Ещё на сайте микрочипа раздают тулзы с исключительно дружественным KF> интерфейсом, но я не вникал особо.

"Машина - это усилитель, а не заменитель мозгов" (c) Винер

VLV

"Что даст мне свет, чего я сам не знаю?" (c) Гете "Фауст"

Hello, Kirill! You wrote to Andrej Arnold on Fri, 04 Aug 2006 14:07:42 +0600:

DO>>>>> я так понял линеаризация в нескольких диапазонах ??>> ??>> Только число диапазонов не произвольное, а кратное степени ??>> числа ??>> два и длина каждого одинакова. KF>>> Я ничего не понял. Впрочем и не вникал. Хочу только сказать, ??>> Вижу, что хочешь. А отлаженный исходник где?;) KF> Hе люблю разбираться с чужими исходниками. Зато я люблю. Выкладывай. ;) KF> Чаще лучше иметь изложение алгоритма на человеческом языке и проще KF> заново переписать. Если речь идёт, конечно, о чём-то относительно KF> простом. Там настолько детальное описание, что детальней не бывает. Подробней только сказка про дедку с репкой. KF>>> что ничто не мешает отсортировать список аргументов функции и её KF>>> значений и искать двоичным поиском за log2(N) времени, что для KF>>> 4096 элементов даст всего-то 12 операций сравнения. ??>> А это значит _в общем случае_ - каждый раз сохранять регистры в ??>> стеке, загружать регистры элементами сравнения, потом снова ??>> регистры восстанавливать. Воно тоби треба? KF> Если не "пикоманством" заниматься, то судьба десятка отдельно KF> взятых регистров, эндцати байт стека и лишней тысячи тактов мало KF> интересна. Задача достаточно частого и быстрого перевода потоков данных из одного формата в другой стоит довольно часто, и "сильные ругательства" этому делу не помагают, а вот непосильный труд разобраться в пяти строчках программы прожжённого линуксоида не красит. А как же опенсауреса и прочие святые коровы?

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Hello, Dmitry! You wrote to Andrey Arnold on Fri, 04 Aug 2006 16:20:22 +0600:

AA>> Да я вроде понял. AA>> А в случае логарифма, там вообще просто получается. AA>> Hо у него тут есть оффсет, а это "ставит повторяемость функции" AA>> в довольно сложное положение.;) DEO> у логарифма повторяемость тоже такая же DEO> только она повторяться будет на диапазоне основания. У логарифма-то да. Только я бы сразу переходил (вычислил значения в исходных точках) от X к Y. Те, чтобы результат получался без всяких дополнительных промежуточных вычислениий. Ну неужели 130 байт во флеше, или даже еепром, (а может и много меньше) жалко выделить на такое дело? Тут "народ" такими ресурсами не глядя кидается ;) DEO> а вот чтобы отмасштабировать результат табличный до нужного надо DEO> подумать, похоже надо будет в степень основания вводить или корень DEO> брать. корень сложнее, а вот если основание и правда взять равным двум, DEO> то тут можно поиграться (но таблицу надо собирать для такого DEO> диапазона чтобы результат масштабировтаь только в бОльшую сторону) Да понятно, что всё это работает на аналитических функциях. DEO> мм DEO> умножение

DEO> надо подумать может масштабирование заменить аналогичным DEO> действием? то есть две таблицы - логарифм и масштаб Ну опять же, если нужны какие-то вычисления от нескольких переменных, а функция логарифмируемая (как в данном случае), то ИМХО опять же самое простое, составить таблицу(ы), как я предлагал, для функции каждой переменной, логарифмы сложить (со знаками) и антилогарифмировать. Никаких умножений, а уж тем более делений. AA>> Можно подумать ты недавно тут...;) DEO> я тут от силы неделю :) Не знаю, как именно тут, но я твою фамилию уже много лет знаю, ещё до переезда Сотника... во всяком случае. DO>>> нафиг искать в гугле? AA>> Так обычно быстрее получается. DEO> да но результат в почтовик не загрузишь, Это ещё почему? Там есть и отображение в оригинальном формате, а сохранить можно и в текстовом формате.

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Hello Wladimir!

02 Aug 06 09:27, you wrote to All:

WT> Y=А*Log(В*X) Y=A*Log(B) + A*Log(X); WT> Где А,В - константы Значит, достаточно взять один логарифм. WT> Это вообще реально, на процессоре рангом пониже iP ? Конечно. Делишь X пополам, каждый раз прибавляя A*Log(2) к Y, (либо наоборот умножаешь на 2 и вычитаешь), пока не вобьешь его в диапазон, скажем, от 128 до

256, затем используешь X-128 как индекс в таблице, где у тебя заранее занесены предвычисленные значения логарифма, умноженного на A. Если при 128-256 недостаточно точности - делаешь таблицу побольше. Дальнейшие трюки с уменьшением таблицы можно проделать при желании.

WT> 20000 в секунду. WT> входе), на вход которого приходят прямоугольные импульсы постоянной WT> амплитуды и длительности, но переменного периода следования от 0,1 WT> сек, до 50 мкСек. WT> Результат с выхода этого ФHЧ и есть Х1. Опрос сотояния фильтра 4 раза WT> в секунду. WT> Так-же нужно реализовать программно ФHЧ (интегратор с симматором на WT> Это я предпологаю собрать на реверсивном счетчике. Во время действия WT> импульсов он инкрементируется, в паузах дикрементируется. Каждые 0,25 WT> секунды его значение делиться на 5000 (типа интеграл взяли) и WT> полученное чило идет далее.

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

Anatoly

Fri Aug 04 2006 11:08, Slav Matveev wrote to Vladimir Vassilevsky:

VV>> Даже ряд не нужен. Log2 в диапазоне аргумента [1...2) это почти VV>> линейная функция. Прекрасно апроксимируется.

SM> Линейной функцией апроксимируется с точностью до первого знака SM> после запятой. Ты случаем не с аэромеха, у которых SM> все что меньше 10 сравнимо с единицей? Нет, не с аэромеха. Если видишь мудака - знай, что он с ФРТК (это про меня). Двоечникам с мехмата простительно не знать про апроксимацию по Чебышеву. VLV

"Что даст мне свет, чего я сам не знаю?" (c) Гете "Фауст"

Hello Dmitry!

03 Aug 06 19:09, you wrote to Vladimir Vassilevsky:

DO> а разве это не тот же ряд будет? чем вычисление log2 от log3 в DO> реализации будет отличаться? (никогда не интересовался этим вопросом) Тем, что для приведения аргумента в диапазон от 1 до 2 достаточно сдвигов, а для приведения аргумента в диапазон от 1 до 3 понадобится умножение или деление на 3.

Anatoly

Hi Dimmy, hope you are having a nice day!

04 Авг 06, Dimmy Timchenko wrote to Alexey V Bugrov:

DT> Hу а исходное письмо ты считаешь допустимым? И ответ на него в DT> подобном же стиле не заставил себя ждать, и тоже остался без реакции DT> модератора. DT> Думаю, не одному мне хотелось бы знать, это случайность DT> или часть необсуждаемой политики модерирования?

Считай, что часть политики. Впрочем, на самом деле зависит от того, в какой форме происходит конфликт. VLV не первый раз и не только здесь ругается с SM, вроде бы они друг на друга из-за этого не обижаются. Я бы даже сказал, что это у них форма общения такая. :)

AVB>> И что мешало тебе написать тоже самое мне нетмейлом? DT> Вообще-то ты сам должен замечать подобные эксцессы и оперативно на DT> них реагировать.

Торопливость нужна только при ловле блох.

DT> Без подсказок нетмейлом. Раз уж взялся за гуж.

Я счел данный инцедент малозначительным. У всех желающих есть право и возможность высказаться по данному вопросу в нетмейл.

Да, сразу скажу, просто за отдельные матные слова я наказывать никого не буду, мы не в детском саду. Однако это не значит, что матом можно "разговаривать". Данные положения в правилах обозначены.

p.s. Hа этом дискуссию сворачиваем.

WBR, AVB

DO> Однофамилец я в fido после ~5 летнего перерыва вернулся. суммарно может месяц прошел как :)

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Andrej Arnold! You wrote in conference fido7.ru.embedded to Dmitry E. Oboukhov on Fri, 04 Aug 2006 20:14:53 +0400:

AA>>> Можно подумать ты недавно тут...;) DEO>> я тут от силы неделю :) AA> Не знаю, как именно тут, но я твою фамилию уже много лет знаю, ещё AA> до переезда Сотника... во всяком случае.

Однофамилец или очередной кло[у]н?

dima

formatting link

AVB>> VLV не первый раз и не только здесь AVB>> ругается с SM, вроде бы они друг на друга из-за этого не обижаются. Я бы AVB>> даже сказал, что это у них форма общения такая. :) VV>

VV> Совершенно верно. Мы выражаем взаимное почтение в изысканнейших выражениях VV> :) мне например не понравилось когда один другого назвал идиотом за правильное в общем-то высказывание

Fri Aug 04 2006 23:39, Alexey V Bugrov wrote to Dimmy Timchenko:

DT>> Hу а исходное письмо ты считаешь допустимым? И ответ на него в DT>> подобном же стиле не заставил себя ждать, и тоже остался без реакции DT>> модератора.

AVB> VLV не первый раз и не только здесь AVB> ругается с SM, вроде бы они друг на друга из-за этого не обижаются. Я бы AVB> даже сказал, что это у них форма общения такая. :)

Совершенно верно. Мы выражаем взаимное почтение в изысканнейших выражениях :)

VLV

"Что даст мне свет, чего я сам не знаю?" (c) Гете "Фауст"

Это НЕ ТОТ Дима Обухов. Петрович в Калифорнии живет, и силовой электроникой не занимается.

Hello Slav!

04 Aug 06 09:34, you wrote to Vladimir Vassilevsky:

VV>> Логарифм по любому основанию элементарно считается через log2. SM> пшелнах. ? SM> А log2 с любой точностью ты все равно будешь искать через подобный SM> этому ряд: SM> arg = arg * ((((((b6 * z + b5) * z + b4) * z + b3) * z + b2) * z + SM> b1) * SM> z + b0);

Это в микроконтроллере-то я буду считать через ряд с невероятным количеством умножений с плавучкой? Hет уж. Если мне это приспичит, мне придется делать что-то вроде таблицы, а если потребуется более высокая точность, то с линейной (или даже нелинейной, если очень надо) аппроксимацией промежуточных значений. SM>>> Я таким образом в отсутствии SM>>> библиотек и наличии компилятора просчитал синусы/косинусы. SM>>> Мне хватило четырех слагаемых в ряду. А ты не учел, что твои 4 слагаемых в ряду тащат за собой: преобразование целого в плавучку, плавающее умножение и плавающее сложение? И что эти преобразования занимают места примерно столько же, сколько таблица?

Anatoly

Hello All!

04 Aug 06 09:34, Slav Matveev wrote to Vladimir Vassilevsky:

VV>> А найти log2 с любой точностью - дело техники.

Я как-то решал задачу: Вычислить время, за которое известный конденсатор зарядился через известный резистор от источника с известным напряжением до измеренного на нем напряжения. Задача эта эквивалентна логарифмированию. Решалась методом, эквивалентным взятию логарифма по основанию 1+1/16. Дело в том, что после приведения аргумента к промежутку от 1 до 1+1/16 кривую логарифма на таком коротком отрезке можно аппроксимировать прямой. Получилась точность, достаточная для обработки данных с 10-битного АЦП ПИКа.

Anatoly

Пpивет, Anatoly!

*** 05 Aug 06 09:44, Anatoly Mashanov wrote to Slav Matveev:

AM> Это в микроконтроллере-то я буду считать через ряд с невероятным AM> количеством умножений с плавучкой? Hет уж.

А почему и нет ? Компилятор делает именно это. И на ASM я делал так же (логарифмы заняли 113 слов программной памяти AVR, а базовый набор 32-битной плавучки - меньше 400 слов). Если нет особых требований к быстродействию - проще сделать стандартно и не выеживаться...

с уважением Владислав

AM>> Это в микроконтроллере-то я буду считать через ряд с невероятным AM>> количеством умножений с плавучкой? Hет уж. VB>

VB> А почему и нет ? Компилятор делает именно это. И на ASM я делал так же VB> (логарифмы заняли 113 слов программной памяти AVR, а базовый набор VB> 32-битной плавучки - меньше 400 слов). Если нет особых требований к VB> быстродействию - проще сделать стандартно и не выеживаться... добавлю: если сделать стандартно, то проблем с изменением кода особых не будет. типа изменить формулу по которой считаем :)

С чего бы это? Отмасштабируй и считай с фиксированной точкой - только целочисленные умножения - хотя конечно иногда и это дорого - но не в данном случае. Заодно будет повод хорошенько подумать над "вычислительностью" твоих алгоритмов.

DO>>> Однофамилец DEO>> я в fido после ~5 летнего перерыва вернулся. DEO>> суммарно может месяц прошел как :) AT>

AT> Просто здесь раньше был Дима Обухов из Калифорнии. Hеужели это ты? :) в Калифорнии если я когда-нидь и буду то только как турист ну или как солдат. то есть обо мне никогда нельзя будет сказать что я из калифорнии :)

Hello, Dmitry! You wrote to Dmitry Orlov on Fri, 04 Aug 2006 23:21:34 +0400:

DO>> Однофамилец DEO> я в fido после ~5 летнего перерыва вернулся. DEO> суммарно может месяц прошел как :)

Просто здесь раньше был Дима Обухов из Калифорнии. Неужели это ты? :)

With best regards, Alexander Torres. E-mail: snipped-for-privacy@yahoo.com [ Жамству бой !]

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required