Computes various norms of a matrix stored in coordinate format.
#include <imsl.h>
float imsl_f_matrix_norm_coordinate (int m, int n, int nz, Imsl_f_sparse_elem a[], ..., 0)
The type double function is imsl_d_matrix_norm_coordinate.
int m
(Input)
The number of rows in matrix A.
int n
(Input)
The number of columns in matrix A.
int nz
(Input)
The number of nonzeros in the matrix A.
Imsl_f_sparse_elem a[]
(Input)
Matrix for which the norm will be computed.
The requested norm of the input matrix, by default, the Frobenius norm. If the norm cannot be computed, NaN is returned.
#include <imsl.h>
float
imsl_f_matrix_norm_coordinate (int m, int n, int nz,
Imsl_f_sparse_elem
a[],
IMSL_ONE_NORM,
IMSL_INF_NORM,
IMSL_SYMMETRIC,
0)
IMSL_ONE_NORM,
Compute
the 1-norm of matrix A.
IMSL_INF_NORM,
Compute
the infinity norm of matrix A.
IMSL_SYMMETRIC,
Matrix
A is stored in symmetric coordinate format.
By default, imsl_f_matrix_norm_coordinate computes the Frobenius norm

If the option IMSL_ONE_NORM is selected, the 1-norm

is returned. If the option IMSL_INF_NORM is selected, the infinity norm

is returned.
Compute the Frobenius norm, infinity norm, and one norm of matrix A. Matrix A is stored in coordinate format.
#include <imsl.h>
void main()
{
Imsl_f_sparse_elem a[] = {0, 0, 10.0,
1, 1, 10.0,
1, 2, -3.0,
1, 3, -1.0,
2, 2, 15.0,
3, 0, -2.0,
3, 3, 10.0,
3, 4, -1.0,
4, 0, -1.0,
4, 3, -5.0,
4, 4, 1.0,
4, 5, -3.0,
5, 0, -1.0,
5, 1, -2.0,
5, 5, 6.0};
int m = 6, n = 6;
int nz = 15;
float frobenius_norm, inf_norm, one_norm;
frobenius_norm
= imsl_f_matrix_norm_coordinate (m, n, nz, a, 0);
inf_norm =
imsl_f_matrix_norm_coordinate(m, n, nz, a,
IMSL_INF_NORM, 0);
one_norm =
imsl_f_matrix_norm_coordinate(m, n, nz, a,
IMSL_ONE_NORM, 0);
printf("Frobenius norm = %f\n", frobenius_norm);
printf("Infinity norm = %f\n", inf_norm);
printf("One norm = %f\n", one_norm);
}
Frobenius norm = 24.839485
Infinity norm = 15.000000
One norm = 18.000000
Compute the Frobenius norm, infinity norm and one norm of matrix A. Matrix A is stored in symmetric coordinate format.
#include <imsl.h>
void main()
{
Imsl_f_sparse_elem a[] = {0, 0, 10.0,
0, 2, -1.0,
0, 5, 5.0,
1, 3, 2.0,
1, 4, 3.0,
2, 2, 3.0,
2, 5, 4.0,
4, 4, -1.0,
4, 5, 4.0};
int m = 6, n = 6;
int nz = 9;
float frobenius_norm, inf_norm, one_norm;
frobenius_norm
= imsl_f_matrix_norm_coordinate (m, n, nz, a,
IMSL_SYMMETRIC, 0);
inf_norm =
imsl_f_matrix_norm_coordinate(m, n, nz, a,
IMSL_INF_NORM,
IMSL_SYMMETRIC, 0);
one_norm =
imsl_f_matrix_norm_coordinate(m, n, nz, a,
IMSL_ONE_NORM,
IMSL_SYMMETRIC, 0);
printf("Frobenius norm = %f\n", frobenius_norm);
printf("Infinity norm = %f\n", inf_norm);
printf("One norm = %f\n", one_norm);
}
Frobenius norm = 15.874508
Infinity norm = 16.000000
|
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |