|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/am_htm_c/amz6r_c.htm
Дата изменения: Thu Mar 16 16:24:27 2006 Дата индексирования: Mon Oct 1 22:48:44 2012 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий amz6r_c.zip , amz6d_c.zip |
Тексты тестовых примеров tamz6r_c.zip , tamz6d_c.zip |
Преобразование симметричной ленточной матрицы, заданной в компактной форме, в компактную форму представления для симметричной матрицы.
Симметричная ленточная матрица А порядка N с NС ко - диагоналями, зaдaнная в компактной форме, преобразуется в компактную форму представления симметричной матрицы.
int amz6r_c (real *a, integer *n, integer *nc, real *b)
Параметры
| a - | вещественный двумерный массив размера n на (nc + 1), в котором задается симметричная ленточная матрица в компактной форме; |
| n - | заданный порядок матрицы (тип: целый); |
| nc - | заданное число ко - диагоналей (тип: целый); |
| b - | вещественный вектор длины n на (n + 1)/2, в котором запоминается исходная симметричная ленточная матрица в компактной форме представления для симметричной матрицы. |
Версии
| amz6d_c - | преобразование симметричной ленточной матрицы, заданной в компактной форме с удвоенной точностью, в компактную форму представления для симметричной матрицы. |
Вызываемые подпрограммы: нет.
Замечания по использованию
|
Массив a и вектор b должны занимать разное место в памяти. В подпрограмме amz6d_c параметры a и b должны иметь тип double. |
int main(void)
{
/* Initialized data */
static float a[8] /* was [4][2] */ = { 0.f,2.1f,3.2f,4.3f,1.1f,2.2f,
3.3f,4.4f };
/* Local variables */
extern int amz6r_c(float *, int *, int *, float *);
static float b[10];
static int n, nc, i__;
n = 4;
nc = 1;
amz6r_c(a, &n, &nc, b);
for (i__ = 0; i__ <= 8; i__+=2) {
printf("\n %16.7e %16.7e \n", b[i__], b[i__ + 1]);
}
return 0;
} /* main */
Результаты: b = ( 1.1, 2.1, 2.2, 0., 3.2, 3.3, 0., 0., 4.3, 4.4 )