• Авторизация


Сборник велосипедов 15-06-2005 00:26 к комментариям - к полной версии - понравилось!


Как известно основная заповедь всех программистов после 2000г "Никогда не пиши код, все уже написано до тебя." Особенно остро это касается математических алгоритмов.
Нет конечно теоретически перед вами может встать математическая задача которую до вас ни кто не решал, но вероятность этого крайне мала. И скорее всего до вас эту задачу решили верно и наилучшим из возможных случаев, потому что занимались ей профессиональные математики. Отсюда вывод: нет смысла изобретать трехколесный велосипед, его легче купить в соседнем магазине.

К чему все это? Хочу представить два великолепных сборника математических велосипедов совершенно бесплатно доступных в сети.


1. "Algorithms for programmers ideas and source code". Доступно на http://www.jjj.de/fxt/. Книга с подробным описанием и иходники (С++) массы математических алгоритмов от банального кода Грея, до Hartley transform и wavelet transform. Библиография книги также чрезвычайно интересна и содержит массу ссылок на знаменитые книги в сети.
2. GNU Scientific Library (GSL) - великолепная кроссплатформенная библиотека математических алгоритмов. Доступно на http://www.gnu.org/software/gsl/ Она не содержит описаний (вы должны четко знать чего хотите), но может быть без труда прилинкована к проекту и вам даже не придется задумываться над реализацией большинства алгоритмов. Недостатком является то, что она написана на C, это затрудняет работу алгоритмов с множеством различных типов и значительно снижает уровень абстракции.
Djuffin
вверх^ к полной версии понравилось! в evernote
Комментарии (6):
holy_diver 15-06-2005-00:32 удалить
Лучше всё-таки Кнута и Дейстру читать. Я не говорю, что всё надо самом писать, но уподобляться ламерам, собирающим свои проги в дельфях и дописывающим пару строк, не стоит.
В колонках играет: The Doors - Twentieth Centruy Fox
mc2 15-06-2005-11:53 удалить
IMHO нужно творить самому, если что то уж и не получается, тогда смотри выше приведенные линки...
Djuffin 15-06-2005-17:09 удалить
Кнут и Дийкстра но чисто вычислительных задач они практически не касались.
Творить самому это конечно увлекательно, но вот только чревато багами и большими потерями времени. На мой взгляд это довольно кустарный подход.

Безусловно существует множество задач где по тем или иным причинам приходится вносить существенные коррективы в библиотечные алгоритмы (оптимизация по размеру кода или данных, перевод на другие языки, применение специфических типов данных & etc). Но скорость работы и надежность кода значительно повышается когда нет необходимости лазить по справочникам и пытаться выдавить из 40 страниц математических выкладок, 50 строк исходного кода. Гораздо проще взять за основу готовый код и немного переделать его под свои задачи. Тем более что в большинстве случаев в математических книгах нет описания небольших уловок которые позволяют написать код гораздо более эффективным образом. Яркий пример тому преобразование Фурье, где небольшое допущение о длине входного сигнала (2^N) позволяет значительно сократить время работы.
Тузбубен 15-06-2005-18:15 удалить
О птичках... Может, кто подскажет, где можно Кнута скачать?
davinchi 15-06-2005-18:47 удалить
автор забыл сказать: вы НЕ можете брать исходный код прямо из GNU LGPL'ных проектов, вы можете ТОЛЬКО линковатся с ними (имеется ввиду из не GPL проектов). если вы берете код из GNU LGPL проекта, то вы обязаны открыть соблюдать GNU LGPL или GPL (на Ваш выбор).

В связи со скорым выходом GPL v3 НЕ советую использовать код из GSL в коммерческих проектах. Однако линковать проекты можно.

подробнее http://www.gnu.org/licenses/licenses.html#LGPL

Особенно рекомендую использовать GSL, так как проект свободный и о ЛЮБЫХ ошибках можно "доложить" создателю или в соответсвующий maillist.

спасибо за внимание.
holy_diver 15-06-2005-22:43 удалить
А http://poiskking.ru на что? :)
В колонках играет: The Doors - Alabama Song (Whisky Bar)


Комментарии (6): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Сборник велосипедов | community_coding - Сообщество программистов | Лента друзей community_coding / Полная версия Добавить в друзья Страницы: раньше»