diff --git a/.travis/linux/OpenBLAS/install.sh b/.travis/linux/OpenBLAS/install.sh index 244948fc..ee74f96d 100644 --- a/.travis/linux/OpenBLAS/install.sh +++ b/.travis/linux/OpenBLAS/install.sh @@ -26,11 +26,11 @@ if [ ! -e ${CACHE_DIR}/last_commit_id ]; then # cache generation echo "Building cache at $CACHE_DIR" mkdir ${CACHE_DIR} - sudo git clone --depth=1 git://github.com/xianyi/OpenBLAS + git clone --depth=1 git://github.com/xianyi/OpenBLAS pushd OpenBLAS echo OpenBLAS version:$(git rev-parse HEAD) - sudo make FC=gfortran &> /dev/null && sudo make PREFIX=${CACHE_DIR} install + make FC=gfortran &> /dev/null && make PREFIX=${CACHE_DIR} install echo $(git rev-parse HEAD) > ${CACHE_DIR}/last_commit_id popd fi diff --git a/blas/netlib/blas.go b/blas/netlib/blas.go index 9fb55e07..daca0e64 100644 --- a/blas/netlib/blas.go +++ b/blas/netlib/blas.go @@ -3874,6 +3874,11 @@ func (Implementation) Zhbmv(ul blas.Uplo, n, k int, alpha complex128, a []comple C.cblas_zhbmv(C.enum_CBLAS_ORDER(rowMajor), C.enum_CBLAS_UPLO(ul), C.int(n), C.int(k), unsafe.Pointer(&alpha), unsafe.Pointer(_a), C.int(lda), unsafe.Pointer(_x), C.int(incX), unsafe.Pointer(&beta), unsafe.Pointer(_y), C.int(incY)) } +// Zhpmv performs the matrix-vector operation +// y = alpha * A * x + beta * y +// where alpha and beta are scalars, x and y are vectors, and A is an n×n +// Hermitian matrix in packed form. The imaginary parts of the diagonal +// elements of A are ignored and assumed to be zero. func (Implementation) Zhpmv(ul blas.Uplo, n int, alpha complex128, ap, x []complex128, incX int, beta complex128, y []complex128, incY int) { // declared at cblas.h:408:6 void cblas_zhpmv ... @@ -4117,6 +4122,11 @@ func (Implementation) Zher2(ul blas.Uplo, n int, alpha complex128, x []complex12 C.cblas_zher2(C.enum_CBLAS_ORDER(rowMajor), C.enum_CBLAS_UPLO(ul), C.int(n), unsafe.Pointer(&alpha), unsafe.Pointer(_x), C.int(incX), unsafe.Pointer(_y), C.int(incY), unsafe.Pointer(_a), C.int(lda)) } +// Zhpr2 performs the Hermitian rank-2 operation +// A += alpha*x*y^H + conj(alpha)*y*x^H, +// where alpha is a complex scalar, x and y are n element vectors, and A is an +// n×n Hermitian matrix, supplied in packed form. On entry, the imaginary parts +// of the diagonal elements are assumed to be zero, and on return they are set to zero. func (Implementation) Zhpr2(ul blas.Uplo, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, ap []complex128) { // declared at cblas.h:427:6 void cblas_zhpr2 ... diff --git a/blas/netlib/level2cmplx128_test.go b/blas/netlib/level2cmplx128_test.go index 6d9b880b..bfa6edc0 100644 --- a/blas/netlib/level2cmplx128_test.go +++ b/blas/netlib/level2cmplx128_test.go @@ -38,6 +38,10 @@ func TestZhpr(t *testing.T) { testblas.ZhprTest(t, impl) } +func TestZhpr2(t *testing.T) { + testblas.Zhpr2Test(t, impl) +} + func TestZtrmv(t *testing.T) { testblas.ZtrmvTest(t, impl) }