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

## Purpose

nag_sum_convert_herm2complex_sep (c06gs) takes m$m$ Hermitian sequences, each containing n$n$ data values, and forms the real and imaginary parts of the m$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_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:     m – int64int32nag_int scalar
m$m$, the number of Hermitian sequences to be converted into complex form.
Constraint: m1${\mathbf{m}}\ge 1$.
2:     n – int64int32nag_int scalar
n$n$, the number of data values in each Hermitian sequence.
Constraint: n1${\mathbf{n}}\ge 1$.
3:     x( m × n ${\mathbf{m}}×{\mathbf{n}}$) – double array
The data must be stored in x as if in a two-dimensional array of dimension (1 : m,0 : n1)$\left(1:{\mathbf{m}},0:{\mathbf{n}}-1\right)$; each of the m$m$ sequences is stored in a row of the array in Hermitian form. If the n$n$ data values zjp${z}_{j}^{p}$ are written as xjp + i yjp${x}_{j}^{p}+i{y}_{j}^{p}$, then for 0 j n / 2$0\le j\le n/2$, xjp${x}_{j}^{p}$ is contained in x(p,j)${\mathbf{x}}\left(p,j\right)$, and for 1 j (n1) / 2$1\le j\le \left(n-1\right)/2$, yjp${y}_{j}^{p}$ is contained in x(p,nj)${\mathbf{x}}\left(p,n-j\right)$. (See also Section [Real transforms] in the C06 Chapter Introduction.)

None.

None.

### Output Parameters

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

Exact.

None.

## Example

```function nag_sum_convert_herm2complex_sep_example
m = int64(3);
n = int64(6);
x = [0.3854;
0.5417;
0.9172;
0.6772;
0.2983;
0.0644;
0.1138;
0.1181;
0.6037;
0.6751;
0.7255;
0.643;
0.6362;
0.8638;
0.0428;
0.1424;
0.8723;
0.4815];
[u, v, ifail] = nag_sum_convert_herm2complex_sep(m, n, x)
```
```

u =

0.3854
0.5417
0.9172
0.6772
0.2983
0.0644
0.1138
0.1181
0.6037
0.6751
0.7255
0.6430
0.1138
0.1181
0.6037
0.6772
0.2983
0.0644

v =

0
0
0
0.1424
0.8723
0.4815
0.6362
0.8638
0.0428
0
0
0
-0.6362
-0.8638
-0.0428
-0.1424
-0.8723
-0.4815

ifail =

0

```
```function c06gs_example
m = int64(3);
n = int64(6);
x = [0.3854;
0.5417;
0.9172;
0.6772;
0.2983;
0.0644;
0.1138;
0.1181;
0.6037;
0.6751;
0.7255;
0.643;
0.6362;
0.8638;
0.0428;
0.1424;
0.8723;
0.4815];
[u, v, ifail] = c06gs(m, n, x)
```
```

u =

0.3854
0.5417
0.9172
0.6772
0.2983
0.0644
0.1138
0.1181
0.6037
0.6751
0.7255
0.6430
0.1138
0.1181
0.6037
0.6772
0.2983
0.0644

v =

0
0
0
0.1424
0.8723
0.4815
0.6362
0.8638
0.0428
0
0
0
-0.6362
-0.8638
-0.0428
-0.1424
-0.8723
-0.4815

ifail =

0

```