beaRTS 0 22 декабря, 2012 Опубликовано 22 декабря, 2012 (изменено) · Жалоба сколько ни лазил по форуму, видел кучу ссылок по поводу извлечения корня из целых чисел. Обсуждать fixed-point и не хочется, т.к. у Техасцев есть на этот случай библиотека IQMath (работаю сейчас с камнями TI). я же задался целью написать немного по-своему извлечение корня из sqrt( I^2 + Q^2) (это в цифровом детекторе понадобится) для случая float-point. по поводу идейки - писал здесь Собранная статистика в приложении. сравнивал работу написанной функции с функцией из <cmath> и в нее передавал уже заранее вычисленное выражение I^2+Q^2. в свою же функцию передаю I и Q. (все значения типа float) интересует все ли норм? приемлемо ли я проверяю работу? Посчитана относительная и абсолютная ошибка. Скажите ее порядок хотя бы правдоподобен ? Вот в этом сообщении писалось о моем случае и ошибка там 0,007 % . У меня максимальная ошибка 0.000766161 %. в общем, что скажете? что, может, стоит выложить, обнародовать - говорите, сделаю. sqrt_iterations_log.txt Изменено 22 декабря, 2012 пользователем beaRTS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 22 декабря, 2012 Опубликовано 22 декабря, 2012 · Жалоба А теперь объясните, зачем создавать аналогичную тему, а не продолжить в той же самой, на которую ссылаетесь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beaRTS 0 22 декабря, 2012 Опубликовано 22 декабря, 2012 · Жалоба А теперь объясните, зачем создавать аналогичную тему, а не продолжить в той же самой, на которую ссылаетесь? чтоб ту не захламлять.. т.к. в той теме обсуждаются вопросы целочисленных данных. а я со своими вещественными - ни к селу ни к городу. да и создаю то я не тупо sqrt( X), а sqrt( I, Q), т.е. людям, которым интересно применение корня в цифровых детекторах сэкономят уйму времени, найдя сразу мою тему, чем читая многочисленные темы, где обсуждаются целые числа и ровно нуль по поводу floating-point. P.S. я то, видя что Вы пишете, надеялся что вы скажете что-то дельное.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 22 декабря, 2012 Опубликовано 22 декабря, 2012 (изменено) · Жалоба чтоб ту не захламлять.. т.к. в той теме обсуждаются вопросы целочисленных данных. а я со своими вещественными - ни к селу ни к городу. да и создаю то я не тупо sqrt( X), а sqrt( I, Q), т.е. людям, которым интересно применение корня в цифровых детекторах сэкономят уйму времени, найдя сразу мою тему, чем читая многочисленные темы, где обсуждаются целые числа и ровно нуль по поводу floating-point. P.S. я то, видя что Вы пишете, надеялся что вы скажете что-то дельное.... ну понято в общем, захламили вы этот форум порядочно. я тоже сидел и надеялся, когда же вы все-таки напишете что-то по делу и перестаните прыгать по форуму, оставляя в большей массе своей бесполезные комментарии, не несущие никакой смысловой нагрузки. :bb-offtopic: Изменено 22 декабря, 2012 пользователем Serg76 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость TSerg 22 декабря, 2012 Опубликовано 22 декабря, 2012 · Жалоба Непонятно, что Вас смущает. Если Вас устраивает точность и время - зачем "толочь воду в ступе"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beaRTS 0 23 декабря, 2012 Опубликовано 23 декабря, 2012 (изменено) · Жалоба ну понято в общем, захламили вы этот форум порядочно. вы не объективны. Есть люди на форуме, которые были мне благодарны за помощь и я рад что помог кому-то.... И с чего я захламил? Почитайте темы на форуме, в которых вы, опытные, устраиваете холивары, путаете мозги молодежи и по-большому юлите, но не отвечаете на вопросы. (например темы С++ против Си и т.д.) Не нравится - не читайте, обходите стороной. я считаю моя тема имеет узкую специализацию - поэтому новая тема - все вопрос закрыт! Непонятно, что Вас смущает. Если Вас устраивает точность и время - зачем "толочь воду в ступе"? по поводу "что смущает" и "воду в ступе": это нормальный когнитивный процесс познания - вспомните высшую математику. В Вас на лекции пихают теорию, а практики Вам даны не для пустого переписывания формул, а чтобы преподаватель передал Вам свой опыт решения задач, указал правильность оформления, ход решения, "трюки", где-то подправил вашу логику, видя что Вы в чем-то путаетесь. Вы когда решили контрольную/семестровое, не знаете о правильности своего решения, но у Вас есть желание сравнить и спросить у товарищей.. я молодой и поэтому у меня возникают вопросы не только в начале разработки чего-либо, но, и как в примере, и после: по поводу правильности своей логики, идеи, счета, порядка полученных результатов, неучтенных моментов и их влияния на остальную часть системы (а опыта мало, поэтому на многие вопросы нет у меня ответов)... а на работе у нас спросить почти не у кого: т.к. часть классных инженеров разбежалась, т.к. Москва скупила и разваливает предприятие, а другую часть тупо в командировки стали засылать.... на форуме единственная возможность получить квалифицированную помощь. а вы обсирать молодежь, тянущуюся к знаниям, принялись... давайте закроем этот холивар. я я постарался объяснить. и теперь предпочтительно писать по делу! Изменено 23 декабря, 2012 пользователем beaRTS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость TSerg 23 декабря, 2012 Опубликовано 23 декабря, 2012 · Жалоба >а вы обсирать молодежь, тянущуюся к знаниям, принялись... Где Вы такое нашли в моих ответах? Насколько помню, я Вам давал технический материал:) Что же касается поиска наилучшего решения, то есть известная поговорка, да не одна: "Лучшее - враг хорошего", "Если работает - не трогай" и т.д. Ну и заниматься вместе с вами числовыми изысканиями вряд кто будет. Есть конкретный вопрос - задавайте максимально лаконично. Результат приводите в наиболее общем виде, а не выкатывайте простыни логов. И т.д. P.S. То, что Вы молоды - это не избавляет от необходимости чтения талмудов, а не лазания по форумам. Так, что берите в руки книжки и вперед. Например, Благовещенский, "Вычисление элементарных функций на ЭВМ" Или не менее занимательные изыски по вычислению обратного корня от Silicon Graphics: http://www.codemaestro.com/reviews/9 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 23 декабря, 2012 Опубликовано 23 декабря, 2012 (изменено) · Жалоба вы не объективны. Есть люди на форуме, которые были мне благодарны за помощь и я рад что помог кому-то.... И с чего я захламил? Почитайте темы на форуме, в которых вы, опытные, устраиваете холивары, путаете мозги молодежи и по-большому юлите, но не отвечаете на вопросы. (например темы С++ против Си и т.д.) Не нравится - не читайте, обходите стороной. я считаю моя тема имеет узкую специализацию - поэтому новая тема - все вопрос закрыт! ну что же, попробую еще раз объяснить. во-первых, прежде, чем создавать посты, а тем более новые темы, неплохо было бы разведать, что по этому вопросу уже обсуждалось, для чего элементарно научиться пользоваться поиском (это рекомендация администрации форума), коим вы пользоваться не умеете или, я подозреваю, просто игнорируете. потому, что все основные "проблемы", которые вы здесь подымали, элементарно находятся через поиск. во-вторых, прежде, чем бежать впереди паровоза и шлепать по клавиатуре, опережая мысли, в попытке осветить какие-то новые свои "идеи" или изложить "проблемы", неплохо было бы для начала проработать эти вопросы самостоятельно, как говорится с бумажкой и карандашом, а не изучать материал "по диагонали", как вы сами изволили выразиться. если ваша цель - набрать побольше и поскорее авторских постов (звездная болезнь что-ли или просто юношеский максимализм), то попробую вас разочаровать, набраться опыта вам это не поможет, вы больше времени тратите на бессмысленную и никому не нужную бюрократию на форуме вместо того, чтобы посветить это время на самообразование. многие эксперты, а таких здесь наберется с добрый десяток, даже больше, и чье мнение я уважаю, попросту не сотрясают воздух и, несмотря на огромный накопленный профессиональный и жизненный опыт, ценят свое и чужое время. в-третьих, по большому счету никому здесь неинтересны ваши "достижения", поэтому не стоит выкладывать их каждые пять минут с целью получить какую-то благосклонность. потому как складывается впечатление, что вы выкладываете свой ежедневный отчет о проделанной работе, хвастайтесь на работе, дома. думаю этого хватит пока. P.S. Да, и судя по вашему жизненному девизу: "Об уме человека вернее судить по его вопросам, нежели по его ответам", пока это не про ВАС. Изменено 23 декабря, 2012 пользователем Serg76 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewn 0 25 декабря, 2012 Опубликовано 25 декабря, 2012 · Жалоба и теперь предпочтительно писать по делу! Вы провели большую и никому не нужную работу по доказательсту в сотый раз очевидного факта крайней неэффективности линейного метода вычисления квадратного корня по сравнению с методом Ньютона-Рафсона. Неэффективность по числу итераций (для одинарной точности) 40/2 = 20, поскольку метод Н-Р сходится за две итерации из первого приближения известного с точностью 8 двоичных знаков (результат инструкции EISQRTF32). На каждой итерации линейного метода использутся деление, которое представляет собой вызов подпрограммы, использующей метод Н-Р для нахождения частного. Таким образом, линейный метод неэффективен и внутри отдельной итерации. Метод Н-Р не использует делений в итерациях. Вследствие хорошей аппаратной реализации основных трёх арифметических операций, точность метода Н-Р лучше по сравнению с линейным методом, где дополнительная погрешность вносится программно организованной операцией деления. По-прежнему не решён вопрос о переполнении/обнулении промежуточного результата - хотя это нельзя вам поставить в вину. Имеется ввиду, что при определённых условиях сумма квадратов может переполнится или обнулится, хотя корень из неё представим ненулевым числом в диапазоне чисел с плавающей точкой. С этой же проблемой тесно связано численное обнуление одного из квадратов слагаемых, в результате дающее корень равный большему модулю из (A,B), в то время как корень из их суммы квадратов представим числом с плавающей точкой. Резюме - "Всё украдено до нас", "незачем изобретать велосипед", используйте библиотечную подпрограмму. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 26 декабря, 2012 Опубликовано 26 декабря, 2012 · Жалоба ...извлечение корня из sqrt( I^2 + Q^2)... Я бы для этого случая использовал CORDIC (алгоритм Волдера), где I и Q квадратуры... Да и FPGA, если нужна предельная скорость. Результаты моделирования для одноактного устройства на FPGA дали на все 70 нс, это для 16 разрядного результата ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться