2
* Automatically Tuned Linear Algebra Software v3.10.1
3
* Copyright (C) 2009 Siju Samuel
5
* Code contributers : Siju Samuel, Anthony M. Castaldo, R. Clint Whaley
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions, and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. The name of the ATLAS group or the names of its contributers may
16
* not be used to endorse or promote products derived from this
17
* software without specific written permission.
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
23
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
34
* This is the C translation of the standard LAPACK Fortran routine:
35
* SUBROUTINE C/Z LACGV( N, X, INCX )
40
* ATL_lacgv.c conjugates a complex vector of length N.
46
* The length of the vector X. N >= 0.
48
* X (input/output) complex array, dimension
50
* On entry, the vector of length N to be conjugated.
51
* On exit, X is overwritten with conjg(X).
53
* NOTE : complex numbers are stored as,
54
* real(single/complex), imaginary(single/complex)
55
* in concequtive memory locations.
57
* INCX (input) INTEGER
58
* The spacing between successive elements of X.
60
* NOTE : rewritten by RCW to just call SCAL of underlying type.
63
#include "atlas_misc.h"
65
#include "atlas_lapack.h"
67
/* Compiled only to precisions single complex and double complex. */
68
void ATL_lacgv(ATL_CINT N, TYPE *X, ATL_CINT INCX)
70
ATL_CINT incX = (INCX >= 0) ? (INCX+INCX) : ((-INCX)<<1);
71
Mjoin(PATLU,scal)(N, ATL_rnone, X+1, incX); /* conj imag elts */