# NAG Library Function Document

## 1Purpose

nag_multiple_hermitian_to_complex (c06gsc) takes $m$ Hermitian sequences, each containing $n$ data values, and forms the real and imaginary parts of the $m$ corresponding complex sequences.

## 2Specification

 #include #include
 void nag_multiple_hermitian_to_complex (Integer m, Integer n, const double x[], double u[], double v[], NagError *fail)

## 3Description

This is a utility function for use in conjunction with nag_fft_multiple_real (c06fpc) and nag_fft_multiple_hermitian (c06fqc).

None.

## 5Arguments

1:    $\mathbf{m}$IntegerInput
On entry: the number of Hermitian sequences, $m$, to be converted into complex form.
Constraint: ${\mathbf{m}}\ge 1$.
2:    $\mathbf{n}$IntegerInput
On entry: the number of data values, $n$, in each sequence.
Constraint: ${\mathbf{n}}\ge 1$.
3:    $\mathbf{x}\left[{\mathbf{m}}×{\mathbf{n}}\right]$const doubleInput
On entry: the $m$ data sequences must be stored in x consecutively. If the $n$ data values ${z}_{j}^{p}$ are written as ${x}_{j}^{p}+{iy}_{j}^{p}$, $p=1,2,\dots ,m$, then for $0\le j\le n/2$, ${x}_{j}^{p}$ is contained in ${\mathbf{x}}\left[\left(p-1\right)×n+j\right]$, and for $1\le j\le \left(n-1\right)/2$, ${y}_{j}^{p}$ is contained in ${\mathbf{x}}\left[\left(p-1\right)×n+n-j\right]$.
4:    $\mathbf{u}\left[{\mathbf{m}}×{\mathbf{n}}\right]$doubleOutput
5:    $\mathbf{v}\left[{\mathbf{m}}×{\mathbf{n}}\right]$doubleOutput
On exit: the real and imaginary parts of the $m$ sequences of length $n$ are stored consecutively in u and v respectively. 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
 $x 0 1 , x 1 1 , … , x n-1 1 , x 0 2 , x 1 2 , … , x n-1 2 , … , x 0 m , x 1 m , … , x n-1 m .$
The imaginary parts must be ordered similarly in v.
6:    $\mathbf{fail}$NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

## 6Error Indicators and Warnings

NE_INT_ARG_LT
On entry, ${\mathbf{m}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{m}}\ge 1$.
On entry, ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{n}}\ge 1$.

Exact.

## 8Parallelism and Performance

nag_multiple_hermitian_to_complex (c06gsc) is not threaded in any implementation.

None.

## 10Example

This program 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_multiple_hermitian_to_complex (c06gsc) and printed.

### 10.1Program Text

Program Text (c06gsce.c)

### 10.2Program Data

Program Data (c06gsce.d)

### 10.3Program Results

Program Results (c06gsce.r)

© The Numerical Algorithms Group Ltd, Oxford, UK. 2017