Текст подпрограммы и версий 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 )