blas_dpermute - permutes a real (double precision) array in terms of the permutation vector P, output by dsortv
SUBROUTINE BLAS_DPERMUTE( N, P, INCP, X, INCX) INTEGER N, INCP, INCX INTEGER P(*) DOUBLE PRECISION X(*)
SUBROUTINE BLAS_DPERMUTE_64( N, P, INCP, X, INCX) INTEGER*8 N, INCP, INCX INTEGER*8 P(*) DOUBLE PRECISION X(*)
SUBROUTINE PERMUTE( [N], P, [INCP], X, [INCX]) INTEGER :: N, INCP, INCX INTEGER, DIMENSION(:) :: P REAL(8), DIMENSION(:) :: X
SUBROUTINE PERMUTE_64( [N], P, [INCP], X, [INCX]) INTEGER(8) :: N, INCP, INCX INTEGER(8), DIMENSION(:) :: P REAL(8), DIMENSION(:) :: X
#include <sunperf.h>
void blas_dpermute(int n, int *p, int incp, double *x, int incx);
void blas_dpermute_64(long n, long *p, long incp, double *x, long incx);
If INCP > 0,
if INCX > 0,
sorted X((i-1)*INCX+1) = X(P((i-1)*INCP+1)),
if INCX < 0,
sorted X((N-i)*|INCX|+1) = X(P((i-1)*INCP+1));
If INCP < 0,
if INCX > 0,
sorted X((i-1)*INCX+1) = X(P((N-i)*|INCP|+1)).
if INCX < 0,
sorted X((N-i)*|INCX|+1)
= X(P((N-i)*|INCP|+1)).
blas_dsortv(3P), blas_dsort(3P)