Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3
 
Аватара пользователя
Еще один ламерский вопрос по MKL. Что такое workspace array и зачем он нужен? Например лапаковская функция:

Код:
?getrf(n,a,lda,ipiv,work,lwork,info)


Непонятно предназначение массива
Код:
work
, в мануале написано, что это workspace array, он вроде входной, как его задавать?

Спасибо

 
Freude писал(а):
Еще один ламерский вопрос по MKL. Что такое workspace array и зачем он нужен? Например лапаковская функция:

$?getrf(n,a,lda,ipiv,work,lwork,info)$

Непонятно предназначение массива $work$, в мануале написано, что это workspace array, он вроде входной, как его задавать?

Спасибо

Какой язык программирования Вы собираетесь изучать?

 
Аватара пользователя
Прогу пишу на Fortran90.

 
Freude писал(а):
Прогу пишу на Fortran90.

А я на C.

 
Аватара пользователя
По-моему никакой разницы :) Я имею в виду по отношению к вопросу. С лучше, привильно делаете.

Добавлено спустя 3 минуты 48 секунд:

Кажется разобрался, его можно задать любым, потом прописать
Код:
lwork=-1
, и subroutine сам его переопределит как надо, правильно?

 
Freude писал(а):
Что такое workspace array и зачем он нужен?... как его задавать?

work - это рабочий массив, используемый внутри подпрограмы. Такая техника типична для Фортрана и берет начало в глубокой древности, когда в Фортране еще не было динамического распределения памяти. Поэтому рабочие массивы обеспечивались именно вызывающей программой.
Если задать lwork = -1, то подпрограмма НЕ вычисляет ничего, кроме требуемого размера work:
Цитата:
If lwork = -1, then a workspace query is assumed; the routine only calculates the optimal size of the work array, returns this value as the first entry of the work array, and no error message related to lwork is issued by xerbla.
See Application Notes below for the suggested value of lwork
Получив требуемое lwork в work(1), нужно повторно обратиться к подпрограмме, задав рабочий массив и его длину (>0).
Посмотрите Application Notes в http://www.intel.com/software/products/mkl/docs/WebHelp/lle/functn_getri.html.

 
Аватара пользователя
Спасибо за информацию.

 [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group