nag_reorder_vector (m01esc) (PDF version)
m01 Chapter Contents
m01 Chapter Introduction
NAG Library Manual

NAG Library Function Document

nag_reorder_vector (m01esc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_reorder_vector (m01esc) rearranges a vector of arbitrary type data objects into the order specified by a vector of indices.

2  Specification

#include <nag.h>
#include <nagm01.h>
void  nag_reorder_vector (Pointer vec, size_t n, size_t size, ptrdiff_t stride, size_t indices[], NagError *fail)

3  Description

nag_reorder_vector (m01esc) uses a variant of list merging as described by Knuth (1973). The function rearranges a set of n  data objects of arbitrary type, which are stored in an array at intervals of length stride, into the order specified by an array of indices.

4  References

Knuth D E (1973) The Art of Computer Programming (Volume 3) (2nd Edition) Addison–Wesley

5  Arguments

1:     vec[n]Pointer Input/Output
On entry: the array of objects to be rearranged.
On exit: the objects rearranged according to array indices.
2:     nsize_tInput
On entry: the number, n , of objects to be rearranged.
Constraint: n0 .
3:     sizesize_tInput
On entry: the size of each object to be rearranged.
Constraint: size1 .
4:     strideptrdiff_tInput
On entry: the increment between data items in vec to be rearranged.
Note: if stride is positive, vec should point at the first data object; otherwise vec should point at the last data object.
Constraint: stride size .
5:     indices[n]size_tInput
On entry: the indices specifying the order in which the elements of vector are to be rearranged.
6:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_2_INT_ARG_LT
On entry, stride = value while size=value . These arguments must satisfy stride size .
NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_BAD_RANK
Invalid indices vector.
NE_INT_ARG_GT
On entry, stride  must not be greater than value: stride = value.
On entry, n=value.
Constraint: nvalue.
On entry, size=value.
Constraint: sizevalue.
These arguments are limited to an implementation-dependent size which is printed in the error message.
NE_INT_ARG_LT
On entry, n=value.
Constraint: n0.
On entry, size=value.
Constraint: size1.

7  Accuracy

Not applicable.

8  Parallelism and Performance

Not applicable.

9  Further Comments

The average time taken by the function is approximately proportional to n.

10  Example

The example program.

10.1  Program Text

Program Text (m01esce.c)

10.2  Program Data

Program Data (m01esce.d)

10.3  Program Results

Program Results (m01esce.r)


nag_reorder_vector (m01esc) (PDF version)
m01 Chapter Contents
m01 Chapter Introduction
NAG Library Manual

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