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_sum_withdraw_convert_herm2complex_sep (c06gs)

## Purpose

nag_sum_convert_herm2complex_sep (c06gs) takes $m$ Hermitian sequences, each containing $n$ data values, and forms the real and imaginary parts of the $m$ corresponding complex sequences.
Note: this function is scheduled to be withdrawn, please see c06gs in Advice on Replacement Calls for Withdrawn/Superseded Routines..

## Syntax

[u, v, ifail] = c06gs(m, n, x)
[u, v, ifail] = nag_sum_withdraw_convert_herm2complex_sep(m, n, x)

## Description

This is a utility function for use in conjunction with nag_sum_fft_real_1d_multi_rfmt (c06fp) and nag_sum_fft_hermitian_1d_multi_rfmt (c06fq) (see the C06 Chapter Introduction).

None.

## Parameters

### Compulsory Input Parameters

1:     $\mathrm{m}$int64int32nag_int scalar
$m$, the number of Hermitian sequences to be converted into complex form.
Constraint: ${\mathbf{m}}\ge 1$.
2:     $\mathrm{n}$int64int32nag_int scalar
$n$, the number of data values in each Hermitian sequence.
Constraint: ${\mathbf{n}}\ge 1$.
3:     $\mathrm{x}\left({\mathbf{m}}×{\mathbf{n}}\right)$ – double array
The data must be stored in x as if in a two-dimensional array of dimension $\left(1:{\mathbf{m}},0:{\mathbf{n}}-1\right)$; each of the $m$ sequences is stored in a row of the array in Hermitian form. If the $n$ data values ${z}_{j}^{p}$ are written as ${x}_{j}^{p}+i{y}_{j}^{p}$, then for $0\le j\le n/2$, ${x}_{j}^{p}$ is contained in ${\mathbf{x}}\left(p,j\right)$, and for $1\le j\le \left(n-1\right)/2$, ${y}_{j}^{p}$ is contained in ${\mathbf{x}}\left(p,n-j\right)$. (See also Real transforms in the C06 Chapter Introduction.)

None.

### Output Parameters

1:     $\mathrm{u}\left({\mathbf{m}}×{\mathbf{n}}\right)$ – double array
2:     $\mathrm{v}\left({\mathbf{m}}×{\mathbf{n}}\right)$ – double array
The real and imaginary parts of the $m$ sequences of length $n$, are stored in u and v respectively, as if in two-dimensional arrays of dimension $\left(1:{\mathbf{m}},0:{\mathbf{n}}-1\right)$; each of the $m$ sequences is stored as if in a row of each array. In other words, if the real parts of the $p$th sequence are denoted by ${x}_{\mathit{j}}^{p}$, for $\mathit{j}=0,1,\dots ,n-1$ then the $mn$ elements of the array u contain the values
 $x01, x02, …, x0m, x11, x12, …, x1m, …, x n-1 1 , x n-1 2 ,…, x n-1 m$
3:     $\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{m}}<1$.
${\mathbf{ifail}}=2$
 On entry, ${\mathbf{n}}<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.

Exact.

None.

## Example

This example reads in sequences of real data values which are assumed to be Hermitian sequences of complex data stored in Hermitian form. The sequences are then expanded into full complex form using nag_sum_convert_herm2complex_sep (c06gs) and printed.
```function c06gs_example

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

% 3 Hermitian sequences stored as rows in compact form
m = int64(3);
n = int64(6);
x = [0.3854  0.6772  0.1138  0.6751  0.6362  0.1424;
0.5417  0.2983  0.1181  0.7255  0.8638  0.8723;
0.9172  0.0644  0.6037  0.6430  0.0428  0.4815];

disp('Original values in compact Hermitian form:');
disp(x);

% Put x in full complex form
[u, v, ifail] = c06gs(m, n, x);

nd = [m,n];
z = reshape(u + i*v,nd);
disp(' ');
title = 'Original data in full complex form';
[ifail] = x04da('General','Non-unit', z, title);

```
```c06gs example results

Original values in compact Hermitian form:
0.3854    0.6772    0.1138    0.6751    0.6362    0.1424
0.5417    0.2983    0.1181    0.7255    0.8638    0.8723
0.9172    0.0644    0.6037    0.6430    0.0428    0.4815

Original data in full complex form
1       2       3       4       5       6
1   0.3854  0.6772  0.1138  0.6751  0.1138  0.6772
0.0000  0.1424  0.6362  0.0000 -0.6362 -0.1424

2   0.5417  0.2983  0.1181  0.7255  0.1181  0.2983
0.0000  0.8723  0.8638  0.0000 -0.8638 -0.8723

3   0.9172  0.0644  0.6037  0.6430  0.6037  0.0644
0.0000  0.4815  0.0428  0.0000 -0.0428 -0.4815
```