LINUX.ORG.RU

Lisp и вычисления


0

4

Когда коту нечего делать В общем хотелось бы попробовать пописать что нибудь на этом языке. Т.к. для меня лучший способ научиться, это попробовать написать то что мне надо, то хотелось бы спросить есть ли какие нибудь библиотеки на Лисп для численных расчетов. Нужно не много - матрицы оборачивать (желательно разряженные) и интегрировать, ну и строить простейшие графики y=f(x). В принципе на cliki есть подобные библиотеки, но я больше чем уверен что половина из них уже дохлые, ну и документация ко многим отсутствует в принципе. Хотелось бы услышать личные мнения. Есть ли что нибудь на подобии scipy на питоне.

★★★★

Смотри в quicklisp. Там не дохлые.

k_andy ★★★ ()
Ответ на: комментарий от anonymous

> для математических расчётов есть C/C++. И библиотек навалом.

для математических расчётов есть Fortran. И библиотек навалом.

;; fixed

anonymous ()
Ответ на: комментарий от anonymous

> Wolfram Mathematica подходит по всем пунктам.

Только она во-первых для символьных вычислений, во-вторых, стоит как самолёт.

BattleCoder ★★★★★ ()
Ответ на: комментарий от x4DA

Я тоже так думаю... а на хрена, когда есть (поставить своё) язык программирования... тот же фортран, который выше упоминали?

Лисп хорош в других областях.

BattleCoder ★★★★★ ()
Ответ на: комментарий от ugoday

> Внезапно: http://common-lisp.net/project/gsll/

«The GNU Scientific Library for Lisp (GSLL) allows you to use the GNU Scientific Library (GSL)»
«The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers.»

как раз совсем не внезапно

aho ()
Ответ на: комментарий от anonymous

> для математических расчётов есть C/C++. И библиотек навалом.

Ты не понял, ему не нужны библиотеки. Ему не нужно, чтобы считало быстро или корректно. Ему вообще не нужно, чтобы считало.

Ему нужно вылизать себе яйца дёрнуть себе анус чтобы на Лишпе.

anonymous ()
Ответ на: комментарий от aedeph

> http://www.cliki.net/Mathematics

Куча дурнопахнущих выделений, из которых одна половина — наколенные недоделки, другая — всевозможные врапперы и FFI.

А без FFI и сторонних библиотек (на C/C++) Лишп не стоит и ломаного гроша.

anonymous ()
Ответ на: комментарий от Rastafarra

> ну, не томи!

Он солгал, таких областей на самом деле нет.

Точнее, не просто солгал, а привёл расхожий лишперский миф. Можешь не слушать этого сектанта.

anonymous ()
Ответ на: комментарий от BattleCoder

> а на хрена, когда есть (поставить своё) язык программирования... тот же фортран, который выше упоминали?

Во-первых, в любой расчётной программе есть не только голые вычисления. Нетривиальным программам требуется подать на вход нетривиальное описание модели, для чего часто или приходится создавать целый язык программирования, или много трахаться, генерируя это описание каким-нибудь перлом. К лиспу же легче лёгкого прикрутить вычислительную библитеку на каких-нибудь сях, и у него в комплекте сразу идёт парсер, компилятор, богатая стандартная библиотека и возможность быстро состряпать DSL для описания модели любой сложности с учётом возможностей дальнейшего развития.

Во-вторых, благодаря реплу с инкрементальной компиляцией, в лиспе учень удобно придумывать и отлаживать алгоритмы вычислений. Требуются минимальные усилия, чтобы пройти алгоритм по шагам и посмотреть, как он работает на рассматриваемом наборе данных. По пути можно на лету проверить и поварьировать значения всех интересных переменных, а если надо внести изменения в программу, это делается нажатием C-C, и при этом не надо ждать пока закончится перекомпиляция, разбор описания модели, считывание данных из базы и выход на тестируемую точку алгоритма.

В общем, я не знаю системы более подходящей для разработки численных расчётов, чем связка CL + C. При этом разработку следует начинать в чистом CL, вынося в C функции с оттестированными алгоритмами когда будет ясно, что скорости лиспа не хватает, и надо делать низкоуровневую оптимизацию (если, конечно, нет цели разработать библиотеку именно на C/C++).

anonymous ()
Ответ на: комментарий от anonymous

Те примеры которые в аналогичных тредах приводили (тот же лавсан) - да, лисп ИМНО вполне применим. Другое дело, что для его изучения на нужном уровне требуется куда больше сил чем для изучения связки C++ и Python, а по возможностям эти варианты ИМНО довольно близки.

AIv ★★★★★ ()
Ответ на: комментарий от Rastafarra

> Лисп хорош в других областях.

ну, не томи!

да, Lisp - не Томми, Томми - это Java

shty ★★★★★ ()

>Нужно не много - матрицы оборачивать (желательно разряженные) и интегрировать, ну и строить простейшие графики y=f(x).

Lisp & Maxima

quickquest ★★★★★ ()
Ответ на: комментарий от anonymous

> для математических расчётов есть Fortran. И библиотек навалом.

Починил.

tensai_cirno ★★★★★ ()
Ответ на: комментарий от anonymous

Вот только не надо говорить это таким тоном, будто в FFI есть нечто плохое.

ugoday ★★★★★ ()
Ответ на: комментарий от AIv

куда больше сил чем для изучения связки C++ и Python

С++ в одиночку без всякого питона требует колосальное вложение сил и времени на изучение, куда больше, чем у КЛ.

ugoday ★★★★★ ()
Ответ на: комментарий от ugoday

За семестр, одно 3х часовое занятие в неделю (в основном решение каких то практ. задачек), среднестатистический студент МФТИ узнает о линукс и С++ достаточно, что бы заниматься числ. моделированием на вполне приличном уровне.

AIv ★★★★★ ()
Ответ на: комментарий от AIv

Да хер там. Пока года три плотно С++ программером не поработает, пока все костыли и грабли на ощупь не выучит, рано его будет выпускать из песочницы без сопровождения старших.

ugoday ★★★★★ ()
Ответ на: комментарий от yoghurt

К вопросу о «колосальном вложение сил и времени на изучение С++, куда больше, чем у КЛ» (с) ugoday - за полтора года среднестатистический студент МФТИ узнает о С++ и питоне столько, что пишет на бакалаврский диплом самый быстрый в мире код (в данной предметной области) на основе LRnLA.

Если не пишет, мы его выгоняем;-)

AIv ★★★★★ ()
Ответ на: комментарий от ugoday

А че, на CL он полгода поковырялся и готовый разработчик??? У Вас есть такие примеры?

Про С++ я как бэ основываюсь на своем личном опыте (учим по неск чел в год, вполне успешно). Там основнгая проблема не со сложностью, а с разгильдяйством студентов - ну так это не к С++ претензии, они и CL так же не асилят.

AIv ★★★★★ ()
Ответ на: комментарий от AIv

Вообще в целом у плюсов подводных камней больше, и ногу себе отстрелить легче, и следовательно шишки надо набивать дольше :)

В CL с этим как-то по-проще. Можно начинать писать вполне себе код и не бояться уже после первой книжки.

yoghurt ★★★★★ ()
Ответ на: комментарий от AIv

За семестр

за полтора года

Ещё пара итераций и мы получим, что за 5-8 лет можно быстренько выучить С++ программера начального уровня.

ugoday ★★★★★ ()
Ответ на: комментарий от yoghurt

Пример из собственного опыта - простая BP ANN соответствующими плюшками: 4KLOC на Си и 0.8KLOC на CL. На плюсах бы оно получилось, конечно, короче, чем на Си, но всё равно больше, чем на CL

yoghurt ★★★★★ ()
Ответ на: комментарий от yoghurt

> Вообще в целом у плюсов подводных камней больше, и ногу себе отстрелить легче

Верю. Но ТС поднял вопрос об использовании CL в совершенно конкретной области, я привел пример из своей практики тоже в сов. конкретной области. Я ж не говорю за всю разработку вааще...

AIv ★★★★★ ()
Ответ на: комментарий от ugoday

> Ещё пара итераций и мы получим, что за 5-8 лет можно быстренько выучить С++ программера начального уровня.

А мы не готовим программеров. Мы готовим (и сами занимаемся) числ моделированием, там используется программирование, но тока как инструмент, и очень специфически. Но ТС и спрашивал про числ. моделирование, поэтому Ваш сарказЪм мимо кассы. За 5-8 лет человек защищает кандидатскую и становится вполне квалифицированным, самостоятельным исследователем. И знание каких то ЯП тут составляет мизер по сравнению с остальными знаниями и навыками.

AIv ★★★★★ ()
Ответ на: комментарий от yoghurt

> BP ANN соответствующими плюшками: 4KLOC на Си и 0.8KLOC

Лично мне это ни о чем не говорит;-)

AIv ★★★★★ ()
Ответ на: комментарий от x4DA

Численные расчеты - не лучший use case для CL

вообще-то должно быть наоборот. посмотри на boost.ublas, Eigen, Blitz++ - все эффективные библиотеки линейной алгебры на C++ пишутся посредством шаблонов выражений, сиречь метапрограммирования в том или ином виде

jtootf ★★★★★ ()
Ответ на: комментарий от ugoday

Спасибо. По видимому, Вы единственный кто умеет читать, из тех кто засветился в данном топике. Хотя, есть еще один аноним, который понял, но ничего дельного не сказал. Попробую эту штуку.

RCV ★★★★ ()
Ответ на: комментарий от BattleCoder

Какие же символьные. Да и пиратская бухта раздаёт бесплатно, берите сколько влезет.

anonymous ()

>Когда коту нечего делать

Когда котам нечего делать (обычное их состояние), то они на лоре с серьёзным видом опытных аналитегов обсуждают лиспы и плюсы.

anonymous ()
Ответ на: комментарий от RCV

Это ж ЛОР. Здесь лисп интересен только в качестве темы для срача. Для технических разговоров о лиспе есть lisper.ru и другие сайты.

ugoday ★★★★★ ()
Ответ на: комментарий от AIv

ТС и спрашивал про числ. моделирование

Нет, ТС говорил о программировании, численные методы взяты только для примера приложения сил. А ты похож на человека, который овладел молотком и теперь ему везде мерещатся гвозди.

ugoday ★★★★★ ()
Ответ на: комментарий от AIv

>Зато на С++ в ряде задач код считает сильно быстрее, и разрабатывается сильно быстрее;-)

Считает сильно быстрее? Не верю.

aedeph ()
Ответ на: комментарий от aedeph

> Считает сильно быстрее? Не верю.

Сходите по ссылке что ли... или не верьте, это уже личные Ваши сложности.

AIv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.