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