|
Текст подпрограммы и версий ame3r_c.zip , ame3d_c.zip |
Тексты тестовых примеров tame3r_c.zip , tame3d_c.zip |
Копирование разреженной матрицы, заданной в произвольном строчном формате
Подпрограмма ame3r_c выполняет копирование разреженной матрицы A с NR строками, заданной в произвольном строчном представлении, в массивы, определяющие то же самое строчное представление матрицы B.
int ame3r_c (integer *ia, integer *ja, real *an, integer *nr,
integer *ib, integer *jb, real *bn)
Параметры
|
ia, ja - an | заданные портрет и ненулевые элементы разреженной матрицы A в произвольном строчном формате; |
| nr - | число строк матриц A и B (тип: целый); |
|
ib, jb - bn | заданные портрет и массив для ненулевых элементов матрицы B в том же самом строчном формате; |
Версии:
| ame3d_c - | копирование разреженной матрицы, заданной в произвольном строчном формате, в режиме удвоенной точности; при этом параметры an и bn должны иметь тип double |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
int main(void)
{
/* Initialized data */
static int ia[5] = { 1,4,4,6,7 };
static int ja[6] = { 1,5,4,4,2,1 };
static float an[6] = { 1.f,1.f,1.f,1.f,1.f,1.f };
/* Local variables */
extern int ame3r_c(int *, int *, float *, int *, int *, int *, float *);
static int ib[5], jb[6];
static float bn[6];
static int nr, i;
nr = 4;
ame3r_c(ia, ja, an, &nr, ib, jb, bn);
printf("\n %5i %5i %5i %5i %5i \n",
ib[0], ib[1], ib[2], ib[3], ib[4]);
printf("\n %5i %5i %5i %5i %5i %5i \n",
jb[0], jb[1], jb[2], jb[3], jb[4], jb[5]);
for (i = 1; i <= 6; ++i) {
printf("\n %5.0f \n", bn[i-1]);
}
return 0;
} /* main */
Результаты:
ib = ( 1, 4, 4, 6, 7 )
jb = ( 1, 5, 4, 4, 2, 1 )
bn = ( 1, 1, 1, 1, 1, 1 )