Хроники Города Глупова - вопрос знатокам (вычислительная физика)
[Recent Entries][Archive][Friends][User Info]
05:50 pm
[Link] |
вопрос знатокам (вычислительная физика)
|
|
| |
В оригинальной (фортрановской) версии книжки NumRecipes все было сделано тоже для одинарной точности, а на дискетке к ней были помнится обе версии.
В жизни конечно имеет смысл долько двойная точность.
:-)
(Предполагая что у вас 32битная машина, конечно)
Я вот сейчас сижу, и перевожу с NumRecipes Фортрана (на котором в жизни никогда не работал) на Си, периодически заглядывая к себе в старые коды, где я переводил индексацию с фортрановской на сишную. Вообще, ноги бы вырвать тому, кто пишет директивы goto в простейших случаях, когда можно без этого атавизма обойтись.
А просто библиотеку нельзя собрать да и вызвать из Си? Или вам надо сильно менять что-то?
Надо как самый минимум перебить статические массивы на динамические, у меня размер матрицы выясняется только по ходу программы.
Аллокация-деаллокация массивов возможна и в Фортране77 -- если вы под виндой то там микрософтовые расширения есть точно Allocате/Deallocate, если нет то можно вызвать из фортрана malloc.
Потом, вы наверное можете передавать в Фортран адреса и размеры массивов, захваченных в Си. Так должно быть проще всего.
Нет в самом деле -- какая вам разница от статических массивов -- там сколько я помню везде почти передавалась аргументы и "куча" для работы -- вы ее создайте в Си и все.
Смысл этой сказки вот какой. Cast во float может иметь смысл, когда надо отрезать хвост ненужный. Вообще, в операциях с матрицами нужно очень аккуратно. Например, по возможности избегать фунцкии pow(), особенно, если надо на результат потом делить, ну и масса всякого прочего-неочевидного.
Я темный человек и не знаю Си.
:-)
На Фортране с матрицами проще, мне кажется -- и если вам не очень нужны сложные типы, то почему не сделать все что касается НумРец на фортране, а в Си только передать результаты.
Имелись ввиду функции jacobi, tqli, tred2, gaussj... |
|