Хроники Города Глупова - вопрос знатокам (вычислительная физика)
October 27th, 2004
05:50 pm

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
вопрос знатокам (вычислительная физика)

(16 comments | Leave a comment)

Comments
 
[User Picture]
From:[info]ex_er2000541@lj
Date:October 27th, 2004 - 11:02 am
(Link)
В оригинальной (фортрановской) версии книжки NumRecipes все было сделано тоже для одинарной точности, а на дискетке к ней были помнится обе версии.

В жизни конечно имеет смысл долько двойная точность.

:-)
[User Picture]
From:[info]ex_er2000541@lj
Date:October 27th, 2004 - 11:04 am
(Link)
(Предполагая что у вас 32битная машина, конечно)
From:[info]ded_mitya@lj
Date:October 27th, 2004 - 11:17 am
(Link)
Я вот сейчас сижу, и перевожу с NumRecipes Фортрана (на котором в жизни никогда не работал) на Си, периодически заглядывая к себе в старые коды, где я переводил индексацию с фортрановской на сишную. Вообще, ноги бы вырвать тому, кто пишет директивы goto в простейших случаях, когда можно без этого атавизма обойтись.
[User Picture]
From:[info]ex_er2000541@lj
Date:October 27th, 2004 - 11:19 am
(Link)
А просто библиотеку нельзя собрать да и вызвать из Си? Или вам надо сильно менять что-то?
From:[info]ded_mitya@lj
Date:October 27th, 2004 - 11:21 am
(Link)
Надо как самый минимум перебить статические массивы на динамические, у меня размер матрицы выясняется только по ходу программы.
[User Picture]
From:[info]ex_er2000541@lj
Date:October 27th, 2004 - 11:33 am
(Link)
Аллокация-деаллокация массивов возможна и в Фортране77 -- если вы под виндой то там микрософтовые расширения есть точно Allocате/Deallocate, если нет то можно вызвать из фортрана malloc.

Потом, вы наверное можете передавать в Фортран адреса и размеры массивов, захваченных в Си.
Так должно быть проще всего.


[User Picture]
From:[info]ex_er2000541@lj
Date:October 27th, 2004 - 11:37 am
(Link)
Нет в самом деле -- какая вам разница от статических массивов -- там сколько я помню везде почти передавалась аргументы и "куча" для работы -- вы ее создайте в Си и все.
From:[info]ded_mitya@lj
Date:October 27th, 2004 - 11:19 am
(Link)
Смысл этой сказки вот какой. Cast во float может иметь смысл, когда надо отрезать хвост ненужный. Вообще, в операциях с матрицами нужно очень аккуратно. Например, по возможности избегать фунцкии pow(), особенно, если надо на результат потом делить, ну и масса всякого прочего-неочевидного.
[User Picture]
From:[info]ex_er2000541@lj
Date:October 27th, 2004 - 11:24 am
(Link)
Я темный человек и не знаю Си.

:-)

На Фортране с матрицами проще, мне кажется -- и если вам не очень нужны сложные типы, то почему не сделать все что касается НумРец на фортране, а в Си только передать результаты.
From:[info]ded_mitya@lj
Date:October 27th, 2004 - 11:20 am
(Link)
Имелись ввиду функции jacobi, tqli, tred2, gaussj...
Комиссариат Культуры Powered by LJ.Rossia.org