Автор | Сообщение |
kreol
87 сообщений |
#5023 2011-11-10 03:41 GMT+3 часа(ов) |
предистория
Может ли лисп соревноваться в быстроте и "правильной" обработкой таких типов задач. и насколько развиты библиотеки для "мат. аппарата"? т.к. у фортарана за время его существования появилось их очень много... в частности интересует racket все это к тому, что стоит ли пытаться писать курсовые/дипломные на лиспе или смириться и работать на фортране? т.к. если не будет хватать библиотек то как бы писать их я не буду... ну и производительность важна... и еще вопрос можно ли как-то взаимодействовать из лиспа с кодом фортрана? например экспортировать функции? |
|
megamanx
307 сообщений |
#5031 2011-11-11 12:11 GMT+3 часа(ов) |
Цитата Есть 2 причины: 1) Старые 80-летние пердуны 2) Большое количество библиотек и учебных материалов, которые старые 80-летние пердуны не хотят переписывать Цитата Нет. Если нужно считать быстро, то используются библиотеки на других языках. В том же питоне хорошая скорость достигается использованием библиотек на фортране и си. Цитата Зависит от курсовой. Для моделирования, скажем, тумана или распространения жидкости в пористой среде точно Лисп использовать не стоит. А при моделировании какой-нибудь залихватской логистической теории вперемешку с нечёткой логикой самое оно. Тут ведь ещё одно проблема есть - захочешь написать статью в журнал, а рецензент нихера не понимает. Цитата Не, смиряться и работать на фортране точно не стоит. Учи что-нибудь нормальное, то, с помощью чего можно потом заработать. Конечно, те алгоритмы, которые будут давать при изучении фортрана, обязательно надо учить. Но мои знакомые делали так - писали курсовые на си++, потом диплом на си++. Параллельно учили что-то скриптовое. Цитата На фортране можно делать dll и so. Из интерпретатора можно из вызывать. |
|
I wish I'd made you angry earlier
|
|
kreol
87 сообщений |
#5032 2011-11-11 17:25 GMT+3 часа(ов) |
ок. спасибо. языки учу... для написания курсвовой пока хватает знаний и в фортрана и паскаля и с++ думаю что и лиспа хотя тут не очень уверен((.
но вот недавно столкнулся с веселой проблемой. а проблема в том, чтобы сложить три числа)) 0,1 + 0,1 + 0,1 даже фортран выдает 0.300001 хотя может это из-за того, что я использовал gfortran. возможно более современные будут лучше... зато gcc выдает все как надо 0,300000 в python же 0,300000000004 правильно посчитал вместе с gcc - perl, clisp и ! php (который в slackware) к сожалению racket и javascript ))) посчитали так же как и python. на других не пробовал. да и незачем... если моделировать то скорее придется что-то из этого: 1 соударение двух и больше упругих тел 2 что-то из механики разрушения 3 короче связано с механикой сплошной среды к сожалению нам алгоритмов или каких-то основ построения/выбора модели и какой яп где будет лучше не давали. да наверное и не дадут... |
|
megamanx
307 сообщений |
#5033 2011-11-11 17:42 GMT+3 часа(ов) |
МСС... Прошёл мимо неё, не соударившись...
|
|
I wish I'd made you angry earlier
|
|
megamanx
307 сообщений |
#5034 2011-11-11 23:37 GMT+3 часа(ов) |
Ну если у тебя моделирование многочастичных систем - то сам бог веле учить си и писать под куду (хотя, говорят, на фортране тоже можно). Это быстрее, это сложнее, и это модно.
|
|
I wish I'd made you angry earlier
|
|
misha![]()
1275 сообщений |
#5038 2011-11-12 16:55 GMT+3 часа(ов) |
Если отсутствует опыт использование лиспа в данной области, то лучше писать на фортране. Тем более что он более подходит для математического моделирования, чем лисп. Не стоит утюгом забивать гвозди
![]() kreolОни все посчитали правильно, вот только питон и рэкет вывели более точное значение. |
|
nosilverbullet
14 сообщений |
#5045 2011-11-14 14:05 GMT+3 часа(ов) |
kreol Числа с плавающей запятой ты ни в каком языке не сможешь складывать без погрешности округления, т.к. в памяти компьютера они представляются в двоичном виде, и десятичные дроби 0.1 и 0.3 чисто физически приходится округлять, чтобы записать с двоичным показателем экспоненты. См. например http://ru.wikipedia.org/wiki/Число_одинарной_точности С другой стороны, в лиспе есть рациональная арифметика, без потери точности разумеется: (+ (/ 1 10) (/ 1 10) (/ 1 10)) выдаёт 3/10. |
|
megamanx
307 сообщений |
#5046 2011-11-14 14:45 GMT+3 часа(ов) |
Раз уж начали тему. В ряде интерпретируемых языков числа с плавающей точкой по умолчанию идут с двойной точностью. В перле, например, долгое время вообще не было простых чисел, они до сих пор вручную кастуются до integer. Поэтому при сложении они дали точность такую, какую получишь в си при использовании double.
|
|
I wish I'd made you angry earlier
|
|
misha![]()
1275 сообщений |
#5047 2011-11-14 15:37 GMT+3 часа(ов) |
nosilverbulletРациональные числа являются встроенным типом данных, поэтому лучше записать так > (+ 1/10 1/10 1/10) Lisp for numerical methods compared to other languages отредактировал(а) misha: 2011-11-14 20:01 GMT+3 часа(ов) |
|
kreol
87 сообщений |
#5048 2011-11-14 20:45 GMT+3 часа(ов) |
понятно.
Цитата да. это тоже понятно. я помогал делать перевод в двоичное исчисление дробных чисел))) так что это для меня понятно)) не понятно это почему фортран считает "хуже" чем тот же javascript? или в фортране надо другой тип какой-то использовать? или от как хотя бы с примером на лиспе не выписать в виде 3/10 числа которые "не удобно" переводить. misha, спасибо за ссылку) |
|
megamanx
307 сообщений |
#5049 2011-11-14 22:57 GMT+3 часа(ов) |
Цитата В яваскрипте числа тоже double все. Какой тип в фортране использовал? REAL*8? |
|
I wish I'd made you angry earlier
|
|
kreol
87 сообщений |
#5050 2011-11-14 23:04 GMT+3 часа(ов) |
просто real. без указания "размера"
|
|
megamanx
307 сообщений |
#5051 2011-11-14 23:13 GMT+3 часа(ов) |
А документации нет? Почти везде REAL - это одинарная точность
To define a Double Precision Real variable in a Fortran program unit, use the following statements: real*8 aa,bb,cc double precision gg,hh implicit real*8 k implicit double precision j The "real*8" statement specifies the variable names to be double precision 8-byte real numbers which has 15 digits of accuracy and a magnitude range of 10 from -308 to +308. The "double precision" statement is the same as "real*8" statement in nearly all 32-bit computers. |
|
I wish I'd made you angry earlier
|
|
misha![]()
1275 сообщений |
#5052 2011-11-14 23:54 GMT+3 часа(ов) |
Racket
> (+ 0.1f0 0.1f0 0.1f0) Мой DotForth(.net framework) [ 0.1f 0.1f 0.1f + + print( Single ) ] |
|
kreol
87 сообщений |
#5053 2011-11-15 00:52 GMT+3 часа(ов) |
Цитата не. нету такого зверя) ага. я вспомнил... Цитата ясно. Цитата а это для racket ? |
|
megamanx
307 сообщений |
#5054 2011-11-15 12:43 GMT+3 часа(ов) |
Можно нескромный вопрос? А какова область применения форта, написанного на .NET?
|
|
I wish I'd made you angry earlier
|
|
joba
157 сообщений |
#5056 2011-11-15 20:32 GMT+3 часа(ов) |
>даже фортран выдает 0.300001 хотя может это из-за того, что я использовал gfortran
Неправда. http://ideone.com/1eKUu |
|
joba
157 сообщений |
#5057 2011-11-15 20:44 GMT+3 часа(ов) |
>gcc выдает все как надо 0,300000
Вранье. http://ideone.com/3zpID >python же 0,300000000004 Тоже вранье -- 0.30000000000000004 |
|
kreol
87 сообщений |
#5061 2011-11-15 23:56 GMT+3 часа(ов) |
Цитата ага. я сам придумал эти числа. вон то мне делать нечего... только что открыл эти две ссылки. вот результат в первой 0.30000001 вот результат во второй 0.3000000000000000444089210 отредактировал(а) kreol: 2011-11-16 00:02 GMT+3 часа(ов) |
|
joba
157 сообщений |
#5062 2011-11-16 00:01 GMT+3 часа(ов) |
>ага. я сам придумал эти числа. вон то мне делать нечего...
Х.з. может ты просто косоглазый и не умеешь пользоваться printf. |
|
joba
157 сообщений |
#5063 2011-11-16 00:07 GMT+3 часа(ов) |
>только что открыл эти две ссылки. вот результат в первой 0.30000001 вот результат во второй 0.3000000000000000444089210
Т.е. ты соврал. Q.E.D. |
|
kreol
87 сообщений |
#5064 2011-11-16 00:13 GMT+3 часа(ов) |
Цитата пересмотри свою манеру общения на форуме. уже надоело видеть как ты по хамски обращаешься к другим пользователям. Цитата это показывает лишь то, что у меня интерпретатор не выводит полностью все цифры. |
|
joba
157 сообщений |
#5065 2011-11-16 00:33 GMT+3 часа(ов) |
>пересмотри свою манеру общения на форуме.
А то что? >уже надоело видеть как ты по хамски обращаешься к другим пользователям. Что значит "по хамски"? Где я тебе нахамил, например? Кстати, мне тоже надоело видеть, как ты каждое предложение начинаешь с маленькой буквы, но это твое право и я тебе не смею перечить. Так не перечь и мне. >это показывает лишь то, что у меня интерпретатор не выводит полностью все цифры. Какой интерпретатор, что ты несешь вообще? Интерпретатор там только python. |
|
misha![]()
1275 сообщений |
#5066 2011-11-16 00:56 GMT+3 часа(ов) |
megamanxЯ его использую как интерактивный ассемблер, для этого я его, собственно, и создавал. Может интересует что-то более конкретное? отредактировал(а) misha: 2011-11-16 01:04 GMT+3 часа(ов) |
|
megamanx
307 сообщений |
#5067 2011-11-16 01:14 GMT+3 часа(ов) |
Что такое интерактивный ассемблер? Он компилирует программу в нативный код?
Я тут просто с tcc бодаюсь, ностальгия после разговоров о фортране. |
|
I wish I'd made you angry earlier
|
|
misha![]()
1275 сообщений |
#5068 2011-11-16 01:22 GMT+3 часа(ов) |
megamanxИмеет repl. megamanxКонечно ![]() |
|
Вадим Тукаев
26 сообщений |
#5763 2012-02-27 12:08 GMT+3 часа(ов) |
Цитата А как же SheerPower? - http://www.sp4gl.com/index_perfect.htmlx |
|
misha![]()
1275 сообщений |
#5775 2012-02-27 20:46 GMT+3 часа(ов) |
Цитата ЦитатаЛисперы обычно используют дроби. А при необходимости распечатывают их как числа с плавающей точкой. |
|