Які сучасні альтернативи числовим рецептам існують? [зачинено]


21

У минулому книга числових рецептів вважалася золотим стандартним посиланням на числові алгоритми. Найдавніше Fortran Edition супроводжувалося виданнями на C і C ++ та інших, що надало їм більш сучасного оновлення. Завдяки цьому він надав довідковий код для найсучасніших алгоритмів дня.

Старіші видання доступні в Інтернеті безкоштовно .

На жаль, я вважаю, що зараз він здебільшого корисний лише як історичний фалій. Практика "інженерії програмного забезпечення" мені здається застарілою, а власне вміст не йшов у ногу з літературою.

На які подібні вичерпні, але доступні довідки слід звернути увагу сучасного програміста?


7
Самі алгоритми дуже хороші для вирішення проблем загального призначення. Саме їх реалізація може залишити щось бажане. Але це нормально, оскільки код у книзі досить простий, щоб змінити його на будь-який смак. Реалізації в розділах є досить "автономними" і не мають суворого становища. Числові рецепти все ще є хорошим посиланням на часи, коли вам потрібно реалізувати деякі основні числові речі, але не хочете / потребуєте величезної складної або дорогої бібліотеки чи рамок.
Анджело

3
На сьогодні це питання можна вважати образливим, воно, звичайно, не дуже конструктивне. Я використовував числові рецепти протягом усієї своєї кар’єри і настійно рекомендую її всім, хто потребує готової посилання на алгоритми для вирішення складних проблем. Я ніколи не використовував код безпосередньо, але завжди реалізовував алгоритми моїми мовами, використовуючи власні переважні інтерфейси. Проблеми, які ви бачите, є поверхневими, і зазвичай там будуть кращі алгоритми, якщо ви хочете подивитися, але навіть тоді NR корисно направити вас у правильному напрямку.
Марк Бут

5
Я повинен погодитися, що код C і C ++, наведений у книгах, ще раз підтверджує, що хороший програміст Fortran може написати хороший код Fortran будь-якою мовою. Однак ці книги все ще є чудовим посиланням. Пояснення алгоритмів дуже чіткі. Код можна використовувати поза коробкою, і якщо він справді ображає ваші чутливості, ви завжди можете його переписати. Це все-таки буде набагато простіше, ніж реалізувати це з нуля.
Діма

12
Пам'ятайте, що обмеження авторських прав на код у NR досить драконічні. Вам дозволяється особисто вводити код до десяти процедур, і вам НЕ дозволяється поширювати отриману програму будь-якій іншій особі чи комп'ютеру. Практично в будь-якому робочому середовищі це означає, що вам доведеться все-таки повторно реалізувати алгоритм, тож яка була б користь від авторів, які надають складну ОО або функціональну реалізацію? Послуга, що надається книгою, - це чітке пояснення важливих алгоритмів, а не надання сильної математичної бібліотеки.
Чарльз Е. Грант

3
Кому цікаво, що таке код? Загорніть його красиво і ніколи не дивіться на це.
Девід Геффернан

Відповіді:


7

З точки зору числових рецептів нам потрібні дві речі - розуміння того, як алгоритми перетворюються на реалізацію програмування, і друге, посилання на реалізацію, що реєструє речі.

Здається, НЕМАЄ комбінації програмного забезпечення BOOK + Reference. Однак є кілька хороших довідкових програмних програм, і частина цього забезпечує посилання на документи на основі таких алгоритмів.

Ось список деяких довідкових (переважно з відкритим кодом) бібліотек, які можуть допомогти:

  1. Наукова бібліотека ГНУ
  2. LAPACK це хороша книга як посібник користувача Є також LAPACK ++ та інші (TNT) похідні / пов'язані пакети. Дивіться це для отримання додаткової інформації.
  3. Підвищення лінійної алгебри
  4. Армаділло
  5. БЛАС

Інші конкретні речі є

  1. Апофенія для статистичних моделей
  2. Кольт
  3. FFTW
  4. Пакет R - і a книга
  5. OpenCV
  6. Бібліотека ядер Intel Math
  7. Для розпізнавання шаблону

Ви також можете перевірити " Аналіз даних за допомогою інструментів з відкритим кодом ".

Ось величезний список порівняння, хоча я ще не все перевірив.
http://www.netlib.org/utk/people/JackDongarra/la-sw.html


4

Чисельні рецепти все ще, ІМО, корисна книга. Він дуже добре описує алгоритми, включаючи їх виведення, ситуації, в яких вони корисні, та альтернативи, які слід враховувати, коли їх немає. Я використовую книгу роками.

Одне я ніколи використовував їх код. Я завжди пишу власну реалізацію на основі алгоритмів, які вони описують. У цьому відношенні якість їх коду не має значення (і це справді сумнівно: у книзі C другого видання вони визначають сукупність функцій та макросів, щоб зробити масиви індексованими з огляду на те, що автори походять з походження Fortran). Як приклад: одного разу мені довелося реалізувати FFT в Objective-C, тому я використав NR у Fortran, щоб зрозуміти, що робив FFT і як повинен виглядати код.

Думайте про NR так само, як ви думаєте про Knuth: ви ніколи не вставляли код із цієї книги у свій проект.


3

Особисто мені це подобається, мова йде про рівень, який я можу зрозуміти

Код Fortran перекладається на "C", але це нормально, ви можете просто перевести його назад у Fortran, а потім самостійно в C ++! Переваги версій Fortran або C мають переваги в тому, що код є майже самостійним, вам не потрібно перетягувати купу класів C ++, щоб робити матриці, складні тощо - особливо зважаючи на якість їх кодування!

Існує виправдане заперечення проти смішних претензій щодо авторських прав авторів, і я знаю низку викладачів, які забороняють НР у своїх класах. Серед чисельних експертів книги також мають репутацію "достатньо інформації, щоб увійти в біду". Але їх єдина пропозиція, як правило, використовувати свій особистий код або придбати NAG.

Пропонована колекція альтернативних високоякісних числових ліфтів знаходиться на веб- сайті http://www.netlib.org/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.