Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_file_print_matrix_real_band (x04ce)

## Purpose

nag_file_print_matrix_real_band (x04ce) is an easy-to-use function to print a double band matrix stored in a packed two-dimensional array.

## Syntax

[ifail] = x04ce(m, n, kl, ku, a, title)
[ifail] = nag_file_print_matrix_real_band(m, n, kl, ku, a, title)

## Description

nag_file_print_matrix_real_band (x04ce) prints a double band matrix stored in a packed two-dimensional array. It is an easy-to-use driver for nag_file_print_matrix_real_band_comp (x04cf). The function uses default values for the format in which numbers are printed, for labelling the rows and columns, and for output record length.
nag_file_print_matrix_real_band (x04ce) will choose a format code such that numbers will be printed with an $\mathrm{F}8.4$, an $\mathrm{F}11.4$ or a $1\mathrm{PE}13.4$ format . The $\mathrm{F}8.4$ code is chosen if the sizes of all the matrix elements to be printed lie between $0.001$ and $1.0$. The $\mathrm{F}11.4$ code is chosen if the sizes of all the matrix elements to be printed lie between $0.001$ and $9999.9999$. Otherwise the $1\mathrm{PE}13.4$ code is chosen.
The matrix is printed with integer row and column labels, and with a maximum record length of $80$.
The matrix is output to the unit defined by nag_file_set_unit_advisory (x04ab).

None.

## Parameters

### Compulsory Input Parameters

1:     $\mathrm{m}$int64int32nag_int scalar
2:     $\mathrm{n}$int64int32nag_int scalar
The number of rows and columns of the band matrix, respectively, to be printed.
If either m or n is less than $1$, nag_file_print_matrix_real_band (x04ce) will exit immediately after printing title; no row or column labels are printed.
3:     $\mathrm{kl}$int64int32nag_int scalar
The number of subdiagonals of the band matrix $A$.
Constraint: ${\mathbf{kl}}\ge 0$.
4:     $\mathrm{ku}$int64int32nag_int scalar
The number of superdiagonals of the band matrix $A$.
Constraint: ${\mathbf{ku}}\ge 0$.
5:     $\mathrm{a}\left(\mathit{lda},:\right)$ – double array
The first dimension of the array a must be at least ${\mathbf{kl}}+{\mathbf{ku}}+1$.
The second dimension of the array a must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{m}}+{\mathbf{ku}},{\mathbf{n}}\right)\right)$.
The band matrix to be printed.
The matrix is stored in rows $1$ to ${k}_{l}+{k}_{u}+1$, more precisely, the element ${A}_{ij}$ must be stored in
 $aku+1+i-jj for ​max1,j-ku≤i≤minm,j+kl.$
6:     $\mathrm{title}$ – string
A title to be printed above the matrix.
If , no title (and no blank line) will be printed.
If title contains more than $80$ characters, the contents of title will be wrapped onto more than one line, with the break after $80$ characters.
Any trailing blank characters in title are ignored.

None.

### Output Parameters

1:     $\mathrm{ifail}$int64int32nag_int scalar
${\mathbf{ifail}}={\mathbf{0}}$ unless the function detects an error (see Error Indicators and Warnings).

## Error Indicators and Warnings

Errors or warnings detected by the function:
${\mathbf{ifail}}=1$
 On entry, ${\mathbf{kl}}<0$.
${\mathbf{ifail}}=2$
 On entry, ${\mathbf{ku}}<0$.
${\mathbf{ifail}}=3$
 On entry, $\mathit{lda}<{\mathbf{kl}}+{\mathbf{ku}}+1$.
${\mathbf{ifail}}=-99$
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.

## Accuracy

Not applicable.

A call to nag_file_print_matrix_real_band (x04ce) is equivalent to a call to nag_file_print_matrix_real_band_comp (x04cf) with the following argument values:
```
ncols = 80
indent = 0
labrow = 'I'
labcol = 'I'
form = ' '```

## Example

The example program calls nag_file_print_matrix_real_band (x04ce) to print a $5$ by $5$ band matrix with one subdiagonal and one superdiagonal.
```function x04ce_example

fprintf('x04ce example results\n\n');

% Banded matrix (tridiagonal) A in banded storage format
m  = int64(5);
n  = m;
kl = int64(1);
ku = kl;
% diagonals are stored as rows and columns are preserved.
a  = [ 0, 12, 13, 14, 15;
21, 22, 23, 24, 25;
31, 32, 33, 34,  0];

mtitle = 'Band Matrix:';
[ifail] = x04ce(m, n, kl, ku, a, mtitle);

```
```x04ce example results

Band Matrix:
1          2          3          4          5
1     21.0000    12.0000
2     31.0000    22.0000    13.0000
3                32.0000    23.0000    14.0000
4                           33.0000    24.0000    15.0000
5                                      34.0000    25.0000
```