Ты очень много написал, но по теме возникшего спора, как всегда, не сказал ровным счётом ничего. Я так и не понял, чем лучше твоя замена, чем вызов стандартной функции. Только тем, что имя стандартной функции необходимо вспомнить? Смешной аргумент...
Или может читабельностью или краткостью записи лучше? Ну-ка сравни:
Какой вариант ты бы предпочёл увидеть, если бы читал чужой код?
Сионист писал(а):Ога. Конвейер уже алгоритмы портит. Не смешно.
Кривые руки и изобретение велосипеда портит алгоритм, а не конвейер...
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Нет, это в том случае, когда кривыми руками начинают переписывать функции из стандартной библиотеки...
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
алгоритм с библиотечному как раз эквивалентен, а отличается реализация? Да и сложно здесь напутать. А вот если кривые руки поработали на этапе разработки компилятора, то грамотное написание прикладного кода уже не поможет, кривой компилятор алгоритмы переврёт и хоть один кол на системнике теши, хоть целый частокол. И только в этом случае возможно влияние по вине кривых рук на алгоритм именно копвейера. Ну можно ещё в порядке полного бреда предположить, что то же самое возможно в случае, когда кривые руки поработали над проектом процессора. Только такой он до конечного юзверя не дойдёт.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Да при чём тут компилятор и кривость рук тех, кто его пишет? Зачем ты это всё строчишь? Сколько же можно флудить не по теме?
Вопрос был совсем в другом. Использовать или не использовать библиотечные функции. Ответ только один - использовать обязательно. Причин несколько:
1. Переиспозование кода. Знакомый термин?
2. Переносимость кода. Этот пункт нуждается в дополнительных комментариях?
3. Оптимизация кода. В правильных компиляторах библиотечные функции оптимизированы и написаны вообще на ассемблере, так что они будут заведомо быстрее кустарного самописа.
Я всегда думал, что всё это должен понимать даже джуниор разработчик. Ошибался. Разработчик разработчику рознь, оказывается.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
1. Знакомый. А как на счёт имени с префиксом? Перегрузку придумали, чтоб избавиться именно от них. Здесь же проще запомнить, а то и пересочинить код, чем вспомнить префикс.
2. Иф переносим не в меньшей мере.
3.1. Даже оптимизируя, эффективней потратить усилия на то, что работает хотябы 20% времени, чем не вспоминать префикс функции, работающей менее процента времени, а то и миллионную его долю. Вот если бы вычисление модулей элементов массива, тогда другое дело. А так хоть в миллиард раз ускоряй, выиграешь меньше процента, да и то только если в замен не накосячишь в другом месте, так как суммарные усилия на оптимизацию даже такой простой прожки не так уж и безграничны. А накосячив, целиком пессимизируешь.
3.2. Задача - даже не выбрать массив с меньшим модулем среднего арифметического, а изучить связку фо+иф и научиться программировать смешанные алгоритмы.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Вот когда тебе удобно, ты любишь абстрагироваться, а когда абстракция необходима - наоборот изо всех сил цепляешься за частности.
Всё, что я написал, я писал в принципе об использовании стандартных функций, а не не о конкретном случае. Мне показалось, что это понятно. В общем, можешь выкидывать свой предыдущий пост.
И подчеркну ещё раз. Аргумент о том, что проще написать самому, чем "вспомнить" название стандартной функции, достоин разве что студентика, пишущего очередную лабораторку, а не опытного программиста. Так что перестань уже писать такие мерзости. Кстати, ровно, как и аргумент о том, что однократная оптимизация не стоит выеденного яйца. Хороший программист должен писать всегда оптимально, а не только тогда, когда код вызывается много раз в цикле.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Romeo писал(а):Всё, что я написал, я писал в принципе об использовании стандартных функций, а не не о конкретном случае. Мне показалось, что это понятно. В общем, можешь выкидывать свой предыдущий пост.
Вот только фраза об их ненужности с самого начала была именно частной. И мне казалось, что понятно как раз это.
Кстати, ровно, как и аргумент о том, что однократная оптимизация не стоит выеденного яйца.
Ну где у меня хоть слово об однократности? Речь о разумном подходе к оптимизации, а тот самый студентик тотальную оптимизацию не потянет. Кстати, если уж так нужно, то что опытному мешает в перегруженную инкладо-функцию завернуть тот самый fabs и таскать её за всеми модулями?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.