Текст подпрограммы и версий am01r_c.zip , am01d_c.zip , am01c_c.zip |
Тексты тестовых примеров tam01r_c.zip , tam01d_c.zip , tam01c_c.zip |
Вычисление евклидовой нормы симметричной матрицы, заданной в компактной форме.
Для симметричной матрицы А порядка N, заданной в компактной форме, вычисляется евклидова норма
N N || A || E = ( ∑ ∑ | a k m | 2 )1/2 k =1 m =1
real am01r_c (real *a, integer *n)
Параметры
a - | вектор длины n * (n + 1)/2, в котором задается симметричная матрица A в компактной форме (тип: вещественный); |
n - | порядок матрицы A (тип: целый). |
Версии
am01d_c - | вычисление евклидовой нормы вещественной симметричной матрицы, заданной в компактной форме с удвоенной точностью; |
am01c_c - | вычисление евклидовой нормы комплексной симметричной или эрмитовой матрицы, заданной в компактной форме; |
Вызываемые подпрограммы: нет.
Замечания по использованию
1. |
В функции am01d_c пapaмeтp a имeeт тип double. | |
2. | В функции am01c_c пapaмeтp a имeeт тип complex. |
int main(void) { /* Initialized data */ static float a[6] = { 0.f,2.f,3.f,1.f,1.f,2.f }; /* Local variables */ extern float am01r_c(float *, int *); static int n; static float z__; n = 3; z__ = (float)am01r_c(a, &n); printf("\n %12.4e \n", z__); return 0; } /* main */ Результат: z__ = 5.