shad(3S)
SHAD, DHAD, CHAD, ZHAD - Computes the Hadamard product of two vectors
As shipped in IRIX 6.5.15. Added in IRIX 6.5.15.
NAME SHAD, DHAD, CHAD, ZHAD - Computes the Hadamard product of two vectors SYNOPSIS Single precision Fortran: CALL SHAD (n, alpha, x, incx, y, incy, beta, z, incz) C/C++: #include <scsl_blas.h> void shad(int n, float alpha, float *x, int incx, float *y, int incy, float beta, float *z, int incz); Double precision Fortran: CALL DHAD (n, alpha, x, incx, y, incy, beta, z, incz) C/C++: #include <scsl_blas.h> void shad(int n, double alpha, double *x, int incx, double *y, int incy, double beta, double *z, int incz); Single precision complex Fortran: CALL CHAD (n, alpha, x, incx, y, incy, beta, z, incz) C/C++ #include <scsl_blas.h> void shad(int n, scsl_complex *alpha, scsl_complex *x, int incx, scsl_complex *y, int incy, scsl_complex *beta, scsl_complex *z, int incz); C/C++ STL: #include <complex.h> #include <scsl_blas.h> void shad(int n, complex<float> *alpha, complex<float> *x, int incx, complex<float> *y, int incy, complex<float> *beta, complex<float> *z, int incz); Double precision complex Fortran: CALL ZHAD (n, alpha, x, incx, y, incy, beta, z, incz) C/C++: #include <scsl_blas.h> void shad(int n, scsl_zomplex *alpha, scsl_zomplex *x, int incx, scsl_zomplex *y, int incy, scsl_zomplex *beta, scsl_zomplex *z, int incz); C/C++ STL: #include <complex.h> #include <scsl_blas.h> void shad(int n, complex<double> *alpha, complex<double> *x, int incx, complex<double> *y, int incy, complex<double> *beta, complex<double> *z, int incz); IMPLEMENTATION These routines are part of the SCSL Scientific Library and can be loaded using either the -lscs or the -lscs_mp option. The -lscs_mp option directs the linker to use the multi-processor version of the library. When linking to SCSL with -lscs or -lscs_mp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type int become long long and the <scsl_blas_i8.h> header file should be included. DESCRIPTION These routines compute the Hadamard product of two vectors x and y, storing the results in a vector z. z <- alpha * x * y + beta * z , i = 1, . . . n i i i i alpha = 0.0 is recognized as a special case. beta = 0.0 or beta = 1.0 is also recognized as a special case. These routines accept the following arguments: n Integer. (input) The number of elements in each vector. alpha Scalar alpha. (input) SHAD: Single precision. DHAD: Double precision. CHAD: Single precision complex. ZHAD: Double precision complex. For C/C++, a pointer to this scalar is passed when alpha is complex; otherwise, alpha is passed by value. x Array of dimension (1 + (n-1) * incx). (input) SHAD: Single precision array. DHAD: Double precision array. CHAD: Single precision complex array. ZHAD: Double precision complex array. The vector x. If incx > 0, the ith element of the vector x is located in x(1 + (i-1) * incx) for Fortran and in x[(i-1) * incx] for C/C++. If incx < 0, the ith element of the vector x is located in x(1 + (n-i) * |incx|) for Fortran, x[(n-i) * |incx|] for C/C++. incx Integer. (input) The increment between elements of the vector x. incx must not = 0. y Array of dimension (1 + (n-1) * incy). (input) SHAD: Single precision array. DHAD: Double precision array. CHAD: Single precision complex array. ZHAD: Double precision complex array. The vector y. If incy > 0, the ith element of the vector y is located in y(1+(i-1) * incy) for Fortran, and in y[(i-1) * incy] for C/C++. If incy < 0, the ith element of the vector y is located in y(1 + (n-i) * |incy|) for Fortran, y[(n-i) * |incy|] for C/C++. incy Integer. (input) The increment between elements of the vector y. incy must not be 0. beta The scalar beta. (input) SHAD: Single precision. DHAD: Double precision. CHAD: Single precision complex. ZHAD: Double precision complex. For C/C++, a pointer to this scalar is passed when beta is complex; otherwise, beta is passed by value. z Array of dimension (1 + (n-1) * incz). (input/output) SHAD: Single precision array. DHAD: Double precision array. CHAD: Single precision complex array. ZHAD: Double precision complex array. On entry, the vector z. If incz > 0, the ith element of the vector z is located in z(1 + (i-1) * incz) for Fortran, z[(i-1) * incz] for C/C++. If incz < 0, the ith element of the vector z is located in z(1 + (n-i) * |incz|) for Fortran, z[(n-i) * incz] for C/C++. On exit, z is overwritten with the Hadamard product. incz Integer. (input) The increment between elements of the vector z. incz must not be 0. NOTES These routines are extensions to the Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS). Data Types The following data types are described in this documentation: Term Used Data type Fortran: Array dimensioned n x(n) Integer INTEGER (INTEGER*8 for -lscs_i8[_mp]) Single precision REAL Double precision DOUBLE PRECISION Single precision complex COMPLEX Double precision complex DOUBLE COMPLEX C/C++: Array dimensioned n x[n] Integer int (long long for -lscs_i8[_mp]) Single precision float Double precision double Single precision complex scsl_complex Double precision complex scsl_zomplex C++ STL: Array dimensioned n x[n] Integer int (long long for -lscs_i8[_mp]) Single precision float Double precision double Single precision complex complex<float> Double precision complex complex<double> SEE ALSO INTRO_SCSL(3S), INTRO_BLAS1(3S) INTRO_CBLAS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum.