LINUX.ORG.RU
ФорумTalks

Библиотека классов для численного моделирования на С++


0

1

Преамбула. Надоел Фортран.
Хотелосб бы: Ищу библиотеку классов для вычислений на С++. Пожелания:

1. Классы многомерных массивов (как в Фортране) с совместимым
синтаксисом объявления/использования
2. Поддержка комплексной арифметики.
3. Совместимость по структуре с массивами Фортрана
4. Эффективность кода (не медленнее Фортрана)
4. Желательно совместимость с библиотеками процедур LAPACK и BLAS
5. стабильность, обкатанность, доступность кода.

Что увидел:
проекты MV++ и sl++. По описанию трудновато понять, насколько все это грамотно реализовано.

Знаю, что на ЛОР много кто занимается numerical computing. Выскажите Ваше
мнение, уверен, обсуждение будет полезно многим.

Ответ на: комментарий от Reset

1. в части "совместимым синтаксисом объявления/использования" отличия состоят в том, что к элементам надо обращатся как A[i*n+j], ну и матрицы в фортране по столбцам лежат, поэтому перед передачей соответствующим функциям LAPACK'а надо транспонировать.

Reset ★★★★★
()

> 4. Эффективность кода (не медленнее Фортрана)

Недостижимо, очевидно. Библтотеки тут не при чем, недостижимо на уровне компиляторов.

Die-Hard ★★★★★
()
Ответ на: комментарий от Reset

> в части "совместимым синтаксисом объявления/использования" отличия состоят в том, что к элементам надо обращатся как A[i*n+j], ну и матрицы в фортране по столбцам лежат, поэтому перед передачей соответствующим функциям LAPACK'а надо транспонировать.

все это крайне неудобно, если приходится работать с массивами размерности >2. С lapack'ом-то я работать умею. Проблема не в этом. Грубо говоря, не хочется изобретать велосипед и вручную следить за индексами. Задача очень естественная - обеспечить сходный с Фортраном синтаксис работы с комплексными числами, массивами - что и говорить запись

A(i,j)

гораздо более понятна, нежели

A[dim_col*j+i]

да и ошибиться меньше шансов. Кроме того, хотелось бы пользовать возможность C++ по созданию абстракций.

annoynimous ★★★★★
() автор топика
Ответ на: комментарий от Die-Hard

> Недостижимо, очевидно. Библтотеки тут не при чем, недостижимо на уровне компиляторов.

не буду спорить, это не так важно, более того, что не совсем верно - _есть_ немало кода, который на ++ не медленнее фортрановского.

annoynimous ★★★★★
() автор топика

Я чёто не понял этот уродец С++ для вычислений? Тогда уж pure C.

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

gls'ем я пользовался, по крайней мере, некотороми процедурами из него... Но это НЕ С++ библиотека и многие вещи выглядят в ней, хм, немного необычно.

"родственные" проекты я смотрел - потому и спрашиваю: "Что выбрали ВЫ и исходя из каких соображений?"

annoynimous

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

макросы напиши и будет удобно A[OFF(i, j)]

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

Не вижу смысла городить огород классов ради такой примитивной вещи. Зачем себе жизнь усложнять?

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