Files
TheRock/rocm-libraries/projects/rocsolver/clients/common/misc/rocsolver.hpp
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

14290 lines
760 KiB
C++

/* **************************************************************************
* Copyright (C) 2018-2026 Advanced Micro Devices, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* *************************************************************************/
#pragma once
#include <rocblas/rocblas.h>
#include <rocsolver/rocsolver.h>
#include "clientcommon.hpp"
// Most functions within this file exist to provide a consistent interface for our templated tests.
// Function overloading is used to select between the float, double, rocblas_float_complex
// and rocblas_double_complex variants, and to distinguish the batched case (T**) from the normal
// and strided_batched cases (T*).
//
// The normal and strided_batched cases are distinguished from each other by passing a boolean
// parameter, STRIDED. Variants such as the blocked and unblocked versions of algorithms, may be
// provided in similar ways.
/***** Functions not included in the public API that must be declared *****/
#ifdef __cplusplus
extern "C" {
#endif
rocblas_status rocsolver_slatrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* E,
float* tau,
float* W,
rocblas_int ldw);
rocblas_status rocsolver_dlatrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* E,
double* tau,
double* W,
rocblas_int ldw);
rocblas_status rocsolver_clatrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
float* E,
rocblas_float_complex* tau,
rocblas_float_complex* W,
rocblas_int ldw);
rocblas_status rocsolver_zlatrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
double* E,
rocblas_double_complex* tau,
rocblas_double_complex* W,
rocblas_int ldw);
rocblas_status rocsolver_sgemm(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const float* alpha,
float* A,
rocblas_int inca,
rocblas_int lda,
float* B,
rocblas_int incb,
rocblas_int ldb,
const float* beta,
float* C,
rocblas_int incc,
rocblas_int ldc);
rocblas_status rocsolver_dgemm(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const double* alpha,
double* A,
rocblas_int inca,
rocblas_int lda,
double* B,
rocblas_int incb,
rocblas_int ldb,
const double* beta,
double* C,
rocblas_int incc,
rocblas_int ldc);
rocblas_status rocsolver_cgemm(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const rocblas_float_complex* alpha,
rocblas_float_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_float_complex* B,
rocblas_int incb,
rocblas_int ldb,
const rocblas_float_complex* beta,
rocblas_float_complex* C,
rocblas_int incc,
rocblas_int ldc);
rocblas_status rocsolver_zgemm(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const rocblas_double_complex* alpha,
rocblas_double_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_double_complex* B,
rocblas_int incb,
rocblas_int ldb,
const rocblas_double_complex* beta,
rocblas_double_complex* C,
rocblas_int incc,
rocblas_int ldc);
rocblas_status rocsolver_sgemm_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const float* alpha,
float* const* A,
rocblas_int inca,
rocblas_int lda,
float* const* B,
rocblas_int incb,
rocblas_int ldb,
const float* beta,
float* const* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_int batch_count);
rocblas_status rocsolver_dgemm_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const double* alpha,
double* const* A,
rocblas_int inca,
rocblas_int lda,
double* const* B,
rocblas_int incb,
rocblas_int ldb,
const double* beta,
double* const* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_int batch_count);
rocblas_status rocsolver_cgemm_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const rocblas_float_complex* alpha,
rocblas_float_complex* const* A,
rocblas_int inca,
rocblas_int lda,
rocblas_float_complex* const* B,
rocblas_int incb,
rocblas_int ldb,
const rocblas_float_complex* beta,
rocblas_float_complex* const* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_int batch_count);
rocblas_status rocsolver_zgemm_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const rocblas_double_complex* alpha,
rocblas_double_complex* const* A,
rocblas_int inca,
rocblas_int lda,
rocblas_double_complex* const* B,
rocblas_int incb,
rocblas_int ldb,
const rocblas_double_complex* beta,
rocblas_double_complex* const* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_int batch_count);
rocblas_status rocsolver_sgemm_strided_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const float* alpha,
float* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride strideA,
float* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride strideB,
const float* beta,
float* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride strideC,
rocblas_int batch_count);
rocblas_status rocsolver_dgemm_strided_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const double* alpha,
double* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride strideA,
double* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride strideB,
const double* beta,
double* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride strideC,
rocblas_int batch_count);
rocblas_status rocsolver_cgemm_strided_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const rocblas_float_complex* alpha,
rocblas_float_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride strideA,
rocblas_float_complex* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride strideB,
const rocblas_float_complex* beta,
rocblas_float_complex* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride strideC,
rocblas_int batch_count);
rocblas_status rocsolver_zgemm_strided_batched(rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
const rocblas_double_complex* alpha,
rocblas_double_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride strideA,
rocblas_double_complex* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride strideB,
const rocblas_double_complex* beta,
rocblas_double_complex* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride strideC,
rocblas_int batch_count);
rocblas_status rocsolver_sstedcx(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange range,
const rocblas_int n,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
float* D,
float* E,
rocblas_int* nev,
float* W,
float* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_dstedcx(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange range,
const rocblas_int n,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
double* D,
double* E,
rocblas_int* nev,
double* W,
double* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_cstedcx(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange range,
const rocblas_int n,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
float* D,
float* E,
rocblas_int* nev,
float* W,
rocblas_float_complex* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_zstedcx(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange range,
const rocblas_int n,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
double* D,
double* E,
rocblas_int* nev,
double* W,
rocblas_double_complex* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_sstedcj(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_int n,
float* D,
float* E,
float* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_dstedcj(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_int n,
double* D,
double* E,
double* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_cstedcj(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_int n,
float* D,
float* E,
rocblas_float_complex* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_zstedcj(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_int n,
double* D,
double* E,
rocblas_double_complex* C,
const rocblas_int ldc,
rocblas_int* info);
rocblas_status rocsolver_sgeqrf_ptr_batched(rocblas_handle handle,
const rocblas_int m,
const rocblas_int n,
float* const A[],
const rocblas_int lda,
float* const ipiv[],
const rocblas_int batch_count);
rocblas_status rocsolver_dgeqrf_ptr_batched(rocblas_handle handle,
const rocblas_int m,
const rocblas_int n,
double* const A[],
const rocblas_int lda,
double* const ipiv[],
const rocblas_int batch_count);
rocblas_status rocsolver_cgeqrf_ptr_batched(rocblas_handle handle,
const rocblas_int m,
const rocblas_int n,
rocblas_float_complex* const A[],
const rocblas_int lda,
rocblas_float_complex* const ipiv[],
const rocblas_int batch_count);
rocblas_status rocsolver_zgeqrf_ptr_batched(rocblas_handle handle,
const rocblas_int m,
const rocblas_int n,
rocblas_double_complex* const A[],
const rocblas_int lda,
rocblas_double_complex* const ipiv[],
const rocblas_int batch_count);
rocblas_status rocsolver_sgesv_outofplace(rocblas_handle handle,
const rocblas_int n,
const rocblas_int nrhs,
float* A,
const rocblas_int lda,
rocblas_int* ipiv,
float* B,
const rocblas_int ldb,
float* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_dgesv_outofplace(rocblas_handle handle,
const rocblas_int n,
const rocblas_int nrhs,
double* A,
const rocblas_int lda,
rocblas_int* ipiv,
double* B,
const rocblas_int ldb,
double* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_cgesv_outofplace(rocblas_handle handle,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_float_complex* A,
const rocblas_int lda,
rocblas_int* ipiv,
rocblas_float_complex* B,
const rocblas_int ldb,
rocblas_float_complex* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_zgesv_outofplace(rocblas_handle handle,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_double_complex* A,
const rocblas_int lda,
rocblas_int* ipiv,
rocblas_double_complex* B,
const rocblas_int ldb,
rocblas_double_complex* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_sgels_outofplace(rocblas_handle handle,
rocblas_operation trans,
const rocblas_int m,
const rocblas_int n,
const rocblas_int nrhs,
float* A,
const rocblas_int lda,
float* B,
const rocblas_int ldb,
float* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_dgels_outofplace(rocblas_handle handle,
rocblas_operation trans,
const rocblas_int m,
const rocblas_int n,
const rocblas_int nrhs,
double* A,
const rocblas_int lda,
double* B,
const rocblas_int ldb,
double* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_cgels_outofplace(rocblas_handle handle,
rocblas_operation trans,
const rocblas_int m,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_float_complex* A,
const rocblas_int lda,
rocblas_float_complex* B,
const rocblas_int ldb,
rocblas_float_complex* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_zgels_outofplace(rocblas_handle handle,
rocblas_operation trans,
const rocblas_int m,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_double_complex* A,
const rocblas_int lda,
rocblas_double_complex* B,
const rocblas_int ldb,
rocblas_double_complex* X,
const rocblas_int ldx,
rocblas_int* info);
rocblas_status rocsolver_ssyevdx_inplace(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
float* A,
const rocblas_int lda,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
const float abstol,
rocblas_int* nev,
float* W,
rocblas_int* info);
rocblas_status rocsolver_dsyevdx_inplace(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
double* A,
const rocblas_int lda,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
const double abstol,
rocblas_int* nev,
double* W,
rocblas_int* info);
rocblas_status rocsolver_cheevdx_inplace(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
const float abstol,
rocblas_int* nev,
float* W,
rocblas_int* info);
rocblas_status rocsolver_zheevdx_inplace(rocblas_handle handle,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
const double abstol,
rocblas_int* nev,
double* W,
rocblas_int* info);
rocblas_status rocsolver_ssygvdx_inplace(rocblas_handle handle,
const rocblas_eform itype,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
float* A,
const rocblas_int lda,
float* B,
const rocblas_int ldb,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
const float abstol,
rocblas_int* h_nev,
float* W,
rocblas_int* info);
rocblas_status rocsolver_dsygvdx_inplace(rocblas_handle handle,
const rocblas_eform itype,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
double* A,
const rocblas_int lda,
double* B,
const rocblas_int ldb,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
const double abstol,
rocblas_int* h_nev,
double* W,
rocblas_int* info);
rocblas_status rocsolver_chegvdx_inplace(rocblas_handle handle,
const rocblas_eform itype,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda,
rocblas_float_complex* B,
const rocblas_int ldb,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
const float abstol,
rocblas_int* h_nev,
float* W,
rocblas_int* info);
rocblas_status rocsolver_zhegvdx_inplace(rocblas_handle handle,
const rocblas_eform itype,
const rocblas_evect evect,
const rocblas_erange erange,
const rocblas_fill uplo,
const rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda,
rocblas_double_complex* B,
const rocblas_int ldb,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
const double abstol,
rocblas_int* h_nev,
double* W,
rocblas_int* info);
rocblas_status rocsolver_sgesvdj_notransv(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
float* A,
const rocblas_int lda,
const float abstol,
float* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
float* U,
const rocblas_int ldu,
float* V,
const rocblas_int ldv,
rocblas_int* info);
rocblas_status rocsolver_dgesvdj_notransv(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
double* A,
const rocblas_int lda,
const double abstol,
double* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
double* U,
const rocblas_int ldu,
double* V,
const rocblas_int ldv,
rocblas_int* info);
rocblas_status rocsolver_cgesvdj_notransv(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda,
const float abstol,
float* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_float_complex* U,
const rocblas_int ldu,
rocblas_float_complex* V,
const rocblas_int ldv,
rocblas_int* info);
rocblas_status rocsolver_zgesvdj_notransv(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda,
const double abstol,
double* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_double_complex* U,
const rocblas_int ldu,
rocblas_double_complex* V,
const rocblas_int ldv,
rocblas_int* info);
rocblas_status rocsolver_sgesvdj_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
float* A,
const rocblas_int lda,
const rocblas_stride strideA,
const float abstol,
float* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
const rocblas_stride strideS,
float* U,
const rocblas_int ldu,
const rocblas_stride strideU,
float* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_dgesvdj_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
double* A,
const rocblas_int lda,
const rocblas_stride strideA,
const double abstol,
double* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
const rocblas_stride strideS,
double* U,
const rocblas_int ldu,
const rocblas_stride strideU,
double* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_cgesvdj_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda,
const rocblas_stride strideA,
const float abstol,
float* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
const rocblas_stride strideS,
rocblas_float_complex* U,
const rocblas_int ldu,
const rocblas_stride strideU,
rocblas_float_complex* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_zgesvdj_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_int m,
const rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda,
const rocblas_stride strideA,
const double abstol,
double* residual,
const rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
const rocblas_stride strideS,
rocblas_double_complex* U,
const rocblas_int ldu,
const rocblas_stride strideU,
rocblas_double_complex* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_sgesvdx_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_srange srange,
const rocblas_int m,
const rocblas_int n,
float* A,
const rocblas_int lda,
const rocblas_stride strideA,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
rocblas_int* nsv,
float* S,
const rocblas_stride strideS,
float* U,
const rocblas_int ldu,
const rocblas_stride strideU,
float* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* ifail,
const rocblas_stride strideF,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_dgesvdx_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_srange srange,
const rocblas_int m,
const rocblas_int n,
double* A,
const rocblas_int lda,
const rocblas_stride strideA,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
rocblas_int* nsv,
double* S,
const rocblas_stride strideS,
double* U,
const rocblas_int ldu,
const rocblas_stride strideU,
double* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* ifail,
const rocblas_stride strideF,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_cgesvdx_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_srange srange,
const rocblas_int m,
const rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda,
const rocblas_stride strideA,
const float vl,
const float vu,
const rocblas_int il,
const rocblas_int iu,
rocblas_int* nsv,
float* S,
const rocblas_stride strideS,
rocblas_float_complex* U,
const rocblas_int ldu,
const rocblas_stride strideU,
rocblas_float_complex* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* ifail,
const rocblas_stride strideF,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_zgesvdx_notransv_strided_batched(rocblas_handle handle,
const rocblas_svect left_svect,
const rocblas_svect right_svect,
const rocblas_srange srange,
const rocblas_int m,
const rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda,
const rocblas_stride strideA,
const double vl,
const double vu,
const rocblas_int il,
const rocblas_int iu,
rocblas_int* nsv,
double* S,
const rocblas_stride strideS,
rocblas_double_complex* U,
const rocblas_int ldu,
const rocblas_stride strideU,
rocblas_double_complex* V,
const rocblas_int ldv,
const rocblas_stride strideV,
rocblas_int* ifail,
const rocblas_stride strideF,
rocblas_int* info,
const rocblas_int batch_count);
rocblas_status rocsolver_ssytrs2(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
float* A,
const rocblas_int lda,
rocblas_int* ipiv,
float* B,
const rocblas_int ldb);
rocblas_status rocsolver_dsytrs2(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
double* A,
const rocblas_int lda,
rocblas_int* ipiv,
double* B,
const rocblas_int ldb);
rocblas_status rocsolver_csytrs2(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_float_complex* A,
const rocblas_int lda,
rocblas_int* ipiv,
rocblas_float_complex* B,
const rocblas_int ldb);
rocblas_status rocsolver_zsytrs2(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_double_complex* A,
const rocblas_int lda,
rocblas_int* ipiv,
rocblas_double_complex* B,
const rocblas_int ldb);
rocblas_status rocsolver_ssytrs2_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
float* A,
const int64_t lda,
int64_t* ipiv,
float* B,
const int64_t ldb);
rocblas_status rocsolver_dsytrs2_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
double* A,
const int64_t lda,
int64_t* ipiv,
double* B,
const int64_t ldb);
rocblas_status rocsolver_csytrs2_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
rocblas_float_complex* A,
const int64_t lda,
int64_t* ipiv,
rocblas_float_complex* B,
const int64_t ldb);
rocblas_status rocsolver_zsytrs2_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
rocblas_double_complex* A,
const int64_t lda,
int64_t* ipiv,
rocblas_double_complex* B,
const int64_t ldb);
rocblas_status rocsolver_ssytrs2_strided_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
float* A,
const rocblas_int lda,
const rocblas_stride strideA,
rocblas_int* ipiv,
const rocblas_stride strideP,
float* B,
const rocblas_int ldb,
const rocblas_stride strideB,
const rocblas_int batch_count);
rocblas_status rocsolver_dsytrs2_strided_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
double* A,
const rocblas_int lda,
const rocblas_stride strideA,
rocblas_int* ipiv,
const rocblas_stride strideP,
double* B,
const rocblas_int ldb,
const rocblas_stride strideB,
const rocblas_int batch_count);
rocblas_status rocsolver_csytrs2_strided_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_float_complex* A,
const rocblas_int lda,
const rocblas_stride strideA,
rocblas_int* ipiv,
const rocblas_stride strideP,
rocblas_float_complex* B,
const rocblas_int ldb,
const rocblas_stride strideB,
const rocblas_int batch_count);
rocblas_status rocsolver_zsytrs2_strided_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_double_complex* A,
const rocblas_int lda,
const rocblas_stride strideA,
rocblas_int* ipiv,
const rocblas_stride strideP,
rocblas_double_complex* B,
const rocblas_int ldb,
const rocblas_stride strideB,
const rocblas_int batch_count);
rocblas_status rocsolver_ssytrs2_strided_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
float* A,
const int64_t lda,
const rocblas_stride strideA,
int64_t* ipiv,
const rocblas_stride strideP,
float* B,
const int64_t ldb,
const rocblas_stride strideB,
const int64_t batch_count);
rocblas_status rocsolver_dsytrs2_strided_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
double* A,
const int64_t lda,
const rocblas_stride strideA,
int64_t* ipiv,
const rocblas_stride strideP,
double* B,
const int64_t ldb,
const rocblas_stride strideB,
const int64_t batch_count);
rocblas_status rocsolver_csytrs2_strided_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
rocblas_float_complex* A,
const int64_t lda,
const rocblas_stride strideA,
int64_t* ipiv,
const rocblas_stride strideP,
rocblas_float_complex* B,
const int64_t ldb,
const rocblas_stride strideB,
const int64_t batch_count);
rocblas_status rocsolver_zsytrs2_strided_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
rocblas_double_complex* A,
const int64_t lda,
const rocblas_stride strideA,
int64_t* ipiv,
const rocblas_stride strideP,
rocblas_double_complex* B,
const int64_t ldb,
const rocblas_stride strideB,
const int64_t batch_count);
rocblas_status rocsolver_ssytrs2_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
float* const A[],
const rocblas_int lda,
rocblas_int* ipiv,
const rocblas_stride strideP,
float* const B[],
const rocblas_int ldb,
const rocblas_int batch_count);
rocblas_status rocsolver_dsytrs2_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
double* const A[],
const rocblas_int lda,
rocblas_int* ipiv,
const rocblas_stride strideP,
double* const B[],
const rocblas_int ldb,
const rocblas_int batch_count);
rocblas_status rocsolver_csytrs2_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_float_complex* const A[],
const rocblas_int lda,
rocblas_int* ipiv,
const rocblas_stride strideP,
rocblas_float_complex* const B[],
const rocblas_int ldb,
const rocblas_int batch_count);
rocblas_status rocsolver_zsytrs2_batched(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
const rocblas_int nrhs,
rocblas_double_complex* const A[],
const rocblas_int lda,
rocblas_int* ipiv,
const rocblas_stride strideP,
rocblas_double_complex* const B[],
const rocblas_int ldb,
const rocblas_int batch_count);
rocblas_status rocsolver_ssytrs2_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
float* const A[],
const int64_t lda,
int64_t* ipiv,
const rocblas_stride strideP,
float* const B[],
const int64_t ldb,
const int64_t batch_count);
rocblas_status rocsolver_dsytrs2_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
double* const A[],
const int64_t lda,
int64_t* ipiv,
const rocblas_stride strideP,
double* const B[],
const int64_t ldb,
const int64_t batch_count);
rocblas_status rocsolver_csytrs2_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
rocblas_float_complex* const A[],
const int64_t lda,
int64_t* ipiv,
const rocblas_stride strideP,
rocblas_float_complex* const B[],
const int64_t ldb,
const int64_t batch_count);
rocblas_status rocsolver_zsytrs2_batched_64(rocblas_handle handle,
const rocblas_fill uplo,
const int64_t n,
const int64_t nrhs,
rocblas_double_complex* const A[],
const int64_t lda,
int64_t* ipiv,
const rocblas_stride strideP,
rocblas_double_complex* const B[],
const int64_t ldb,
const int64_t batch_count);
#ifdef __cplusplus
}
#endif
/***************************************************/
/******************** GEMM ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* alpha,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* beta,
float* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
if(!STRIDED)
return rocsolver_sgemm(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb, ldb,
beta, C, incc, ldc);
else
return rocsolver_sgemm_strided_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda,
stA, B, incb, ldb, stB, beta, C, incc, ldc, stC,
batch_count);
}
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* alpha,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* beta,
double* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
if(!STRIDED)
return rocsolver_dgemm(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb, ldb,
beta, C, incc, ldc);
else
return rocsolver_dgemm_strided_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda,
stA, B, incb, ldb, stB, beta, C, incc, ldc, stC,
batch_count);
}
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* alpha,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* beta,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
if(!STRIDED)
return rocsolver_cgemm(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb, ldb,
beta, C, incc, ldc);
else
return rocsolver_cgemm_strided_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda,
stA, B, incb, ldb, stB, beta, C, incc, ldc, stC,
batch_count);
}
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* alpha,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* beta,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
if(!STRIDED)
return rocsolver_zgemm(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb, ldb,
beta, C, incc, ldc);
else
return rocsolver_zgemm_strided_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda,
stA, B, incb, ldb, stB, beta, C, incc, ldc, stC,
batch_count);
}
// batched
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* alpha,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* beta,
float* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
return rocsolver_sgemm_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb,
ldb, beta, C, incc, ldc, batch_count);
}
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* alpha,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* beta,
double* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
return rocsolver_dgemm_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb,
ldb, beta, C, incc, ldc, batch_count);
}
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* alpha,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* beta,
rocblas_float_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
return rocsolver_cgemm_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb,
ldb, beta, C, incc, ldc, batch_count);
}
inline rocblas_status rocsolver_gemm(bool STRIDED,
rocblas_handle handle,
rocblas_operation transA,
rocblas_operation transB,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* alpha,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* beta,
rocblas_double_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int batch_count,
rocblas_int inca = 1,
rocblas_int incb = 1,
rocblas_int incc = 1)
{
return rocsolver_zgemm_batched(handle, transA, transB, m, n, k, alpha, A, inca, lda, B, incb,
ldb, beta, C, incc, ldc, batch_count);
}
/*****************************************************/
/******************** GECON ********************/
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int n,
float* A,
rocblas_int lda,
const float* anorm,
float* rcond)
{
return rocsolver_sgecon(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int n,
double* A,
rocblas_int lda,
const double* anorm,
double* rcond)
{
return rocsolver_dgecon(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
const float* anorm,
float* rcond)
{
return rocsolver_cgecon(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
const double* anorm,
double* rcond)
{
return rocsolver_zgecon(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t n,
float* A,
int64_t lda,
const float* anorm,
float* rcond)
{
return rocsolver_sgecon_64(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t n,
double* A,
int64_t lda,
const double* anorm,
double* rcond)
{
return rocsolver_dgecon_64(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
const float* anorm,
float* rcond)
{
return rocsolver_cgecon_64(handle, norm_type, n, A, lda, anorm, rcond);
}
inline rocblas_status rocsolver_gecon(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
const double* anorm,
double* rcond)
{
return rocsolver_zgecon_64(handle, norm_type, n, A, lda, anorm, rcond);
}
/*****************************************************/
/******************** LACGV ********************/
inline rocblas_status
rocsolver_lacgv(rocblas_handle handle, rocblas_int n, rocblas_float_complex* x, rocblas_int incx)
{
return rocsolver_clacgv(handle, n, x, incx);
}
inline rocblas_status
rocsolver_lacgv(rocblas_handle handle, rocblas_int n, rocblas_double_complex* x, rocblas_int incx)
{
return rocsolver_zlacgv(handle, n, x, incx);
}
inline rocblas_status
rocsolver_lacgv(rocblas_handle handle, int64_t n, rocblas_float_complex* x, int64_t incx)
{
return rocsolver_clacgv_64(handle, n, x, incx);
}
inline rocblas_status
rocsolver_lacgv(rocblas_handle handle, int64_t n, rocblas_double_complex* x, int64_t incx)
{
return rocsolver_zlacgv_64(handle, n, x, incx);
}
/*****************************************************/
/******************** LASWP ********************/
inline rocblas_status rocsolver_laswp(rocblas_handle handle,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_int k1,
rocblas_int k2,
rocblas_int* ipiv,
rocblas_int inc)
{
return rocsolver_slaswp(handle, n, A, lda, k1, k2, ipiv, inc);
}
inline rocblas_status rocsolver_laswp(rocblas_handle handle,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_int k1,
rocblas_int k2,
rocblas_int* ipiv,
rocblas_int inc)
{
return rocsolver_dlaswp(handle, n, A, lda, k1, k2, ipiv, inc);
}
inline rocblas_status rocsolver_laswp(rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_int k1,
rocblas_int k2,
rocblas_int* ipiv,
rocblas_int inc)
{
return rocsolver_claswp(handle, n, A, lda, k1, k2, ipiv, inc);
}
inline rocblas_status rocsolver_laswp(rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_int k1,
rocblas_int k2,
rocblas_int* ipiv,
rocblas_int inc)
{
return rocsolver_zlaswp(handle, n, A, lda, k1, k2, ipiv, inc);
}
/*****************************************************/
/******************** LANGE ********************/
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int m,
rocblas_int n,
float* A,
const rocblas_int lda,
float* norms)
{
return rocsolver_slange(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int m,
rocblas_int n,
double* A,
const rocblas_int lda,
double* norms)
{
return rocsolver_dlange(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda,
float* norms)
{
return rocsolver_clange(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda,
double* norms)
{
return rocsolver_zlange(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t m,
int64_t n,
float* A,
const int64_t lda,
float* norms)
{
return rocsolver_slange_64(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t m,
int64_t n,
double* A,
const int64_t lda,
double* norms)
{
return rocsolver_dlange_64(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t m,
int64_t n,
rocblas_float_complex* A,
const int64_t lda,
float* norms)
{
return rocsolver_clange_64(handle, norm_type, m, n, A, lda, norms);
}
inline rocblas_status rocsolver_lange(rocblas_handle handle,
rocsolver_norm_type norm_type,
int64_t m,
int64_t n,
rocblas_double_complex* A,
const int64_t lda,
double* norms)
{
return rocsolver_zlange_64(handle, norm_type, m, n, A, lda, norms);
}
/*****************************************************/
/******************** LARFG ********************/
inline rocblas_status rocsolver_larfg(rocblas_handle handle,
rocblas_int n,
float* alpha,
float* x,
rocblas_int incx,
float* tau)
{
return rocsolver_slarfg(handle, n, alpha, x, incx, tau);
}
inline rocblas_status rocsolver_larfg(rocblas_handle handle,
rocblas_int n,
double* alpha,
double* x,
rocblas_int incx,
double* tau)
{
return rocsolver_dlarfg(handle, n, alpha, x, incx, tau);
}
inline rocblas_status rocsolver_larfg(rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* alpha,
rocblas_float_complex* x,
rocblas_int incx,
rocblas_float_complex* tau)
{
return rocsolver_clarfg(handle, n, alpha, x, incx, tau);
}
inline rocblas_status rocsolver_larfg(rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* alpha,
rocblas_double_complex* x,
rocblas_int incx,
rocblas_double_complex* tau)
{
return rocsolver_zlarfg(handle, n, alpha, x, incx, tau);
}
inline rocblas_status
rocsolver_larfg(rocblas_handle handle, int64_t n, float* alpha, float* x, int64_t incx, float* tau)
{
return rocsolver_slarfg_64(handle, n, alpha, x, incx, tau);
}
inline rocblas_status
rocsolver_larfg(rocblas_handle handle, int64_t n, double* alpha, double* x, int64_t incx, double* tau)
{
return rocsolver_dlarfg_64(handle, n, alpha, x, incx, tau);
}
inline rocblas_status rocsolver_larfg(rocblas_handle handle,
int64_t n,
rocblas_float_complex* alpha,
rocblas_float_complex* x,
int64_t incx,
rocblas_float_complex* tau)
{
return rocsolver_clarfg_64(handle, n, alpha, x, incx, tau);
}
inline rocblas_status rocsolver_larfg(rocblas_handle handle,
int64_t n,
rocblas_double_complex* alpha,
rocblas_double_complex* x,
int64_t incx,
rocblas_double_complex* tau)
{
return rocsolver_zlarfg_64(handle, n, alpha, x, incx, tau);
}
/*****************************************************/
/******************** LARF ********************/
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
rocblas_int m,
rocblas_int n,
float* x,
rocblas_int incx,
float* alpha,
float* A,
rocblas_int lda)
{
return rocsolver_slarf(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
rocblas_int m,
rocblas_int n,
double* x,
rocblas_int incx,
double* alpha,
double* A,
rocblas_int lda)
{
return rocsolver_dlarf(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* x,
rocblas_int incx,
rocblas_float_complex* alpha,
rocblas_float_complex* A,
rocblas_int lda)
{
return rocsolver_clarf(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* x,
rocblas_int incx,
rocblas_double_complex* alpha,
rocblas_double_complex* A,
rocblas_int lda)
{
return rocsolver_zlarf(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
int64_t m,
int64_t n,
float* x,
int64_t incx,
float* alpha,
float* A,
int64_t lda)
{
return rocsolver_slarf_64(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
int64_t m,
int64_t n,
double* x,
int64_t incx,
double* alpha,
double* A,
int64_t lda)
{
return rocsolver_dlarf_64(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
int64_t m,
int64_t n,
rocblas_float_complex* x,
int64_t incx,
rocblas_float_complex* alpha,
rocblas_float_complex* A,
int64_t lda)
{
return rocsolver_clarf_64(handle, side, m, n, x, incx, alpha, A, lda);
}
inline rocblas_status rocsolver_larf(rocblas_handle handle,
rocblas_side side,
int64_t m,
int64_t n,
rocblas_double_complex* x,
int64_t incx,
rocblas_double_complex* alpha,
rocblas_double_complex* A,
int64_t lda)
{
return rocsolver_zlarf_64(handle, side, m, n, x, incx, alpha, A, lda);
}
/*****************************************************/
/******************** LARFT ********************/
inline rocblas_status rocsolver_larft(rocblas_handle handle,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int n,
rocblas_int k,
float* V,
rocblas_int ldv,
float* tau,
float* F,
rocblas_int ldt)
{
return rocsolver_slarft(handle, direct, storev, n, k, V, ldv, tau, F, ldt);
}
inline rocblas_status rocsolver_larft(rocblas_handle handle,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int n,
rocblas_int k,
double* V,
rocblas_int ldv,
double* tau,
double* F,
rocblas_int ldt)
{
return rocsolver_dlarft(handle, direct, storev, n, k, V, ldv, tau, F, ldt);
}
inline rocblas_status rocsolver_larft(rocblas_handle handle,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_float_complex* tau,
rocblas_float_complex* F,
rocblas_int ldt)
{
return rocsolver_clarft(handle, direct, storev, n, k, V, ldv, tau, F, ldt);
}
inline rocblas_status rocsolver_larft(rocblas_handle handle,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_double_complex* tau,
rocblas_double_complex* F,
rocblas_int ldt)
{
return rocsolver_zlarft(handle, direct, storev, n, k, V, ldv, tau, F, ldt);
}
/*****************************************************/
/******************** LARFB ********************/
inline rocblas_status rocsolver_larfb(rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* V,
rocblas_int ldv,
float* F,
rocblas_int ldt,
float* A,
rocblas_int lda)
{
return rocsolver_slarfb(handle, side, trans, direct, storev, m, n, k, V, ldv, F, ldt, A, lda);
}
inline rocblas_status rocsolver_larfb(rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* V,
rocblas_int ldv,
double* F,
rocblas_int ldt,
double* A,
rocblas_int lda)
{
return rocsolver_dlarfb(handle, side, trans, direct, storev, m, n, k, V, ldv, F, ldt, A, lda);
}
inline rocblas_status rocsolver_larfb(rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_float_complex* F,
rocblas_int ldt,
rocblas_float_complex* A,
rocblas_int lda)
{
return rocsolver_clarfb(handle, side, trans, direct, storev, m, n, k, V, ldv, F, ldt, A, lda);
}
inline rocblas_status rocsolver_larfb(rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_direct direct,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_double_complex* F,
rocblas_int ldt,
rocblas_double_complex* A,
rocblas_int lda)
{
return rocsolver_zlarfb(handle, side, trans, direct, storev, m, n, k, V, ldv, F, ldt, A, lda);
}
/***************************************************************/
/******************** LASR *************************************/
inline rocblas_status rocsolver_lasr(rocblas_handle handle,
rocblas_side side,
rocblas_pivot pivot,
rocblas_direct direct,
rocblas_int m,
rocblas_int n,
float* C,
float* S,
float* A,
rocblas_int lda)
{
return rocsolver_slasr(handle, side, pivot, direct, m, n, C, S, A, lda);
}
inline rocblas_status rocsolver_lasr(rocblas_handle handle,
rocblas_side side,
rocblas_pivot pivot,
rocblas_direct direct,
rocblas_int m,
rocblas_int n,
double* C,
double* S,
double* A,
rocblas_int lda)
{
return rocsolver_dlasr(handle, side, pivot, direct, m, n, C, S, A, lda);
}
inline rocblas_status rocsolver_lasr(rocblas_handle handle,
rocblas_side side,
rocblas_pivot pivot,
rocblas_direct direct,
rocblas_int m,
rocblas_int n,
float* C,
float* S,
rocblas_float_complex* A,
rocblas_int lda)
{
return rocsolver_clasr(handle, side, pivot, direct, m, n, C, S, A, lda);
}
inline rocblas_status rocsolver_lasr(rocblas_handle handle,
rocblas_side side,
rocblas_pivot pivot,
rocblas_direct direct,
rocblas_int m,
rocblas_int n,
double* C,
double* S,
rocblas_double_complex* A,
rocblas_int lda)
{
return rocsolver_zlasr(handle, side, pivot, direct, m, n, C, S, A, lda);
}
/***************************************************************/
/******************** LAUUM ********************/
inline rocblas_status rocsolver_lauum(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
float* A,
const rocblas_int lda)
{
return rocsolver_slauum(handle, uplo, n, A, lda);
}
inline rocblas_status rocsolver_lauum(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
double* A,
const rocblas_int lda)
{
return rocsolver_dlauum(handle, uplo, n, A, lda);
}
inline rocblas_status rocsolver_lauum(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
rocblas_float_complex* A,
const rocblas_int lda)
{
return rocsolver_clauum(handle, uplo, n, A, lda);
}
inline rocblas_status rocsolver_lauum(rocblas_handle handle,
const rocblas_fill uplo,
const rocblas_int n,
rocblas_double_complex* A,
const rocblas_int lda)
{
return rocsolver_zlauum(handle, uplo, n, A, lda);
}
/***************************************************************/
/******************** BDSQR ********************/
inline rocblas_status rocsolver_bdsqr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nv,
rocblas_int nu,
rocblas_int nc,
float* D,
float* E,
float* V,
rocblas_int ldv,
float* U,
rocblas_int ldu,
float* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_sbdsqr(handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, info);
}
inline rocblas_status rocsolver_bdsqr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nv,
rocblas_int nu,
rocblas_int nc,
double* D,
double* E,
double* V,
rocblas_int ldv,
double* U,
rocblas_int ldu,
double* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_dbdsqr(handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, info);
}
inline rocblas_status rocsolver_bdsqr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nv,
rocblas_int nu,
rocblas_int nc,
float* D,
float* E,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_cbdsqr(handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, info);
}
inline rocblas_status rocsolver_bdsqr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nv,
rocblas_int nu,
rocblas_int nc,
double* D,
double* E,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_zbdsqr(handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, info);
}
/***************************************************************/
/******************** LATRD ********************/
inline rocblas_status rocsolver_latrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* E,
float* tau,
float* W,
rocblas_int ldw)
{
return rocsolver_slatrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
inline rocblas_status rocsolver_latrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* E,
double* tau,
double* W,
rocblas_int ldw)
{
return rocsolver_dlatrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
inline rocblas_status rocsolver_latrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
float* E,
rocblas_float_complex* tau,
rocblas_float_complex* W,
rocblas_int ldw)
{
return rocsolver_clatrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
inline rocblas_status rocsolver_latrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
double* E,
rocblas_double_complex* tau,
rocblas_double_complex* W,
rocblas_int ldw)
{
return rocsolver_zlatrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
/***************************************************************/
/******************** LATRD_FORSYTRD ********************/
inline rocblas_status rocsolver_latrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* E,
float* tau,
float* W,
rocblas_int ldw)
{
return rocsolver_slatrd_forsytrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
inline rocblas_status rocsolver_latrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* E,
double* tau,
double* W,
rocblas_int ldw)
{
return rocsolver_dlatrd_forsytrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
inline rocblas_status rocsolver_latrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
float* E,
rocblas_float_complex* tau,
rocblas_float_complex* W,
rocblas_int ldw)
{
return rocsolver_clatrd_forsytrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
inline rocblas_status rocsolver_latrd_forsytrd(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
double* E,
rocblas_double_complex* tau,
rocblas_double_complex* W,
rocblas_int ldw)
{
return rocsolver_zlatrd_forsytrd(handle, uplo, n, k, A, lda, E, tau, W, ldw);
}
/***************************************************************/
/******************** LABRD ********************/
inline rocblas_status rocsolver_labrd(rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int nb,
float* A,
rocblas_int lda,
float* D,
float* E,
float* tauq,
float* taup,
float* X,
rocblas_int ldx,
float* Y,
rocblas_int ldy)
{
return rocsolver_slabrd(handle, m, n, nb, A, lda, D, E, tauq, taup, X, ldx, Y, ldy);
}
inline rocblas_status rocsolver_labrd(rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int nb,
double* A,
rocblas_int lda,
double* D,
double* E,
double* tauq,
double* taup,
double* X,
rocblas_int ldx,
double* Y,
rocblas_int ldy)
{
return rocsolver_dlabrd(handle, m, n, nb, A, lda, D, E, tauq, taup, X, ldx, Y, ldy);
}
inline rocblas_status rocsolver_labrd(rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int nb,
rocblas_float_complex* A,
rocblas_int lda,
float* D,
float* E,
rocblas_float_complex* tauq,
rocblas_float_complex* taup,
rocblas_float_complex* X,
rocblas_int ldx,
rocblas_float_complex* Y,
rocblas_int ldy)
{
return rocsolver_clabrd(handle, m, n, nb, A, lda, D, E, tauq, taup, X, ldx, Y, ldy);
}
inline rocblas_status rocsolver_labrd(rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int nb,
rocblas_double_complex* A,
rocblas_int lda,
double* D,
double* E,
rocblas_double_complex* tauq,
rocblas_double_complex* taup,
rocblas_double_complex* X,
rocblas_int ldx,
rocblas_double_complex* Y,
rocblas_int ldy)
{
return rocsolver_zlabrd(handle, m, n, nb, A, lda, D, E, tauq, taup, X, ldx, Y, ldy);
}
/***************************************************************/
/******************** ORGxR_UNGxR ********************/
inline rocblas_status rocsolver_orgxr_ungxr(bool GQR,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv)
{
return GQR ? rocsolver_sorgqr(handle, m, n, k, A, lda, Ipiv)
: rocsolver_sorg2r(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgxr_ungxr(bool GQR,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv)
{
return GQR ? rocsolver_dorgqr(handle, m, n, k, A, lda, Ipiv)
: rocsolver_dorg2r(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgxr_ungxr(bool GQR,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv)
{
return GQR ? rocsolver_cungqr(handle, m, n, k, A, lda, Ipiv)
: rocsolver_cung2r(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgxr_ungxr(bool GQR,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv)
{
return GQR ? rocsolver_zungqr(handle, m, n, k, A, lda, Ipiv)
: rocsolver_zung2r(handle, m, n, k, A, lda, Ipiv);
}
/***************************************************************/
/******************** ORGLx_UNGLx ********************/
inline rocblas_status rocsolver_orglx_unglx(bool GLQ,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv)
{
return GLQ ? rocsolver_sorglq(handle, m, n, k, A, lda, Ipiv)
: rocsolver_sorgl2(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orglx_unglx(bool GLQ,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv)
{
return GLQ ? rocsolver_dorglq(handle, m, n, k, A, lda, Ipiv)
: rocsolver_dorgl2(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orglx_unglx(bool GLQ,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv)
{
return GLQ ? rocsolver_cunglq(handle, m, n, k, A, lda, Ipiv)
: rocsolver_cungl2(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orglx_unglx(bool GLQ,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv)
{
return GLQ ? rocsolver_zunglq(handle, m, n, k, A, lda, Ipiv)
: rocsolver_zungl2(handle, m, n, k, A, lda, Ipiv);
}
/***************************************************************/
/******************** ORGxL_UNGxL ********************/
inline rocblas_status rocsolver_orgxl_ungxl(bool GQL,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv)
{
return GQL ? rocsolver_sorgql(handle, m, n, k, A, lda, Ipiv)
: rocsolver_sorg2l(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgxl_ungxl(bool GQL,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv)
{
return GQL ? rocsolver_dorgql(handle, m, n, k, A, lda, Ipiv)
: rocsolver_dorg2l(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgxl_ungxl(bool GQL,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv)
{
return GQL ? rocsolver_cungql(handle, m, n, k, A, lda, Ipiv)
: rocsolver_cung2l(handle, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgxl_ungxl(bool GQL,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv)
{
return GQL ? rocsolver_zungql(handle, m, n, k, A, lda, Ipiv)
: rocsolver_zung2l(handle, m, n, k, A, lda, Ipiv);
}
/***************************************************************/
/******************** ORGBR_UNGBR ********************/
inline rocblas_status rocsolver_orgbr_ungbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv)
{
return rocsolver_sorgbr(handle, storev, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgbr_ungbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv)
{
return rocsolver_dorgbr(handle, storev, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgbr_ungbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv)
{
return rocsolver_cungbr(handle, storev, m, n, k, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgbr_ungbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv)
{
return rocsolver_zungbr(handle, storev, m, n, k, A, lda, Ipiv);
}
/***************************************************************/
/******************** ORGTR_UNGTR ********************/
inline rocblas_status rocsolver_orgtr_ungtr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
float* Ipiv)
{
return rocsolver_sorgtr(handle, uplo, n, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgtr_ungtr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
double* Ipiv)
{
return rocsolver_dorgtr(handle, uplo, n, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgtr_ungtr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv)
{
return rocsolver_cungtr(handle, uplo, n, A, lda, Ipiv);
}
inline rocblas_status rocsolver_orgtr_ungtr(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv)
{
return rocsolver_zungtr(handle, uplo, n, A, lda, Ipiv);
}
/***************************************************************/
/******************** ORMxR_UNMxR ********************/
inline rocblas_status rocsolver_ormxr_unmxr(bool MQR,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv,
float* C,
rocblas_int ldc)
{
return MQR ? rocsolver_sormqr(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_sorm2r(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormxr_unmxr(bool MQR,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv,
double* C,
rocblas_int ldc)
{
return MQR ? rocsolver_dormqr(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_dorm2r(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormxr_unmxr(bool MQR,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv,
rocblas_float_complex* C,
rocblas_int ldc)
{
return MQR ? rocsolver_cunmqr(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_cunm2r(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormxr_unmxr(bool MQR,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv,
rocblas_double_complex* C,
rocblas_int ldc)
{
return MQR ? rocsolver_zunmqr(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_zunm2r(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
/***************************************************************/
/******************** ORMLx_UNMLx ********************/
inline rocblas_status rocsolver_ormlx_unmlx(bool MLQ,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv,
float* C,
rocblas_int ldc)
{
return MLQ ? rocsolver_sormlq(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_sorml2(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormlx_unmlx(bool MLQ,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv,
double* C,
rocblas_int ldc)
{
return MLQ ? rocsolver_dormlq(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_dorml2(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormlx_unmlx(bool MLQ,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv,
rocblas_float_complex* C,
rocblas_int ldc)
{
return MLQ ? rocsolver_cunmlq(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_cunml2(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormlx_unmlx(bool MLQ,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv,
rocblas_double_complex* C,
rocblas_int ldc)
{
return MLQ ? rocsolver_zunmlq(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_zunml2(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
/***************************************************************/
/******************** ORMxL_UNMxL ********************/
inline rocblas_status rocsolver_ormxl_unmxl(bool MQL,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv,
float* C,
rocblas_int ldc)
{
return MQL ? rocsolver_sormql(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_sorm2l(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormxl_unmxl(bool MQL,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv,
double* C,
rocblas_int ldc)
{
return MQL ? rocsolver_dormql(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_dorm2l(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormxl_unmxl(bool MQL,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv,
rocblas_float_complex* C,
rocblas_int ldc)
{
return MQL ? rocsolver_cunmql(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_cunm2l(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormxl_unmxl(bool MQL,
rocblas_handle handle,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv,
rocblas_double_complex* C,
rocblas_int ldc)
{
return MQL ? rocsolver_zunmql(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc)
: rocsolver_zunm2l(handle, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
/***************************************************************/
/******************** ORMBR_UNMBR ********************/
inline rocblas_status rocsolver_ormbr_unmbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
float* A,
rocblas_int lda,
float* Ipiv,
float* C,
rocblas_int ldc)
{
return rocsolver_sormbr(handle, storev, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormbr_unmbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
double* A,
rocblas_int lda,
double* Ipiv,
double* C,
rocblas_int ldc)
{
return rocsolver_dormbr(handle, storev, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormbr_unmbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv,
rocblas_float_complex* C,
rocblas_int ldc)
{
return rocsolver_cunmbr(handle, storev, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormbr_unmbr(rocblas_handle handle,
rocblas_storev storev,
rocblas_side side,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int k,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv,
rocblas_double_complex* C,
rocblas_int ldc)
{
return rocsolver_zunmbr(handle, storev, side, trans, m, n, k, A, lda, Ipiv, C, ldc);
}
/***************************************************************/
/******************** ORMTR_UNMTR ********************/
inline rocblas_status rocsolver_ormtr_unmtr(rocblas_handle handle,
rocblas_side side,
rocblas_fill uplo,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
float* Ipiv,
float* C,
rocblas_int ldc)
{
return rocsolver_sormtr(handle, side, uplo, trans, m, n, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormtr_unmtr(rocblas_handle handle,
rocblas_side side,
rocblas_fill uplo,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
double* Ipiv,
double* C,
rocblas_int ldc)
{
return rocsolver_dormtr(handle, side, uplo, trans, m, n, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormtr_unmtr(rocblas_handle handle,
rocblas_side side,
rocblas_fill uplo,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_float_complex* Ipiv,
rocblas_float_complex* C,
rocblas_int ldc)
{
return rocsolver_cunmtr(handle, side, uplo, trans, m, n, A, lda, Ipiv, C, ldc);
}
inline rocblas_status rocsolver_ormtr_unmtr(rocblas_handle handle,
rocblas_side side,
rocblas_fill uplo,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_double_complex* Ipiv,
rocblas_double_complex* C,
rocblas_int ldc)
{
return rocsolver_zunmtr(handle, side, uplo, trans, m, n, A, lda, Ipiv, C, ldc);
}
/***************************************************************/
/******************** STERF ********************/
inline rocblas_status
rocsolver_sterf(rocblas_handle handle, rocblas_int n, float* D, float* E, rocblas_int* info)
{
return rocsolver_ssterf(handle, n, D, E, info);
}
inline rocblas_status
rocsolver_sterf(rocblas_handle handle, rocblas_int n, double* D, double* E, rocblas_int* info)
{
return rocsolver_dsterf(handle, n, D, E, info);
}
/********************************************************/
/******************** STEBZ ********************/
inline rocblas_status rocsolver_stebz(rocblas_handle handle,
rocblas_erange erange,
rocblas_eorder eorder,
rocblas_int n,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
float* D,
float* E,
rocblas_int* nev,
rocblas_int* nsplit,
float* W,
rocblas_int* iblock,
rocblas_int* isplit,
rocblas_int* info)
{
return rocsolver_sstebz(handle, erange, eorder, n, vl, vu, il, iu, abstol, D, E, nev, nsplit, W,
iblock, isplit, info);
}
inline rocblas_status rocsolver_stebz(rocblas_handle handle,
rocblas_erange erange,
rocblas_eorder eorder,
rocblas_int n,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
double* D,
double* E,
rocblas_int* nev,
rocblas_int* nsplit,
double* W,
rocblas_int* iblock,
rocblas_int* isplit,
rocblas_int* info)
{
return rocsolver_dstebz(handle, erange, eorder, n, vl, vu, il, iu, abstol, D, E, nev, nsplit, W,
iblock, isplit, info);
}
/********************************************************/
/******************** STEQR ********************/
inline rocblas_status rocsolver_steqr(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
float* D,
float* E,
float* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_ssteqr(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_steqr(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
double* D,
double* E,
double* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_dsteqr(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_steqr(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
float* D,
float* E,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_csteqr(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_steqr(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
double* D,
double* E,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_zsteqr(handle, evect, n, D, E, C, ldc, info);
}
/********************************************************/
/******************** STEDC ********************/
inline rocblas_status rocsolver_stedc(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
float* D,
float* E,
float* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_sstedc(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_stedc(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
double* D,
double* E,
double* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_dstedc(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_stedc(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
float* D,
float* E,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_cstedc(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_stedc(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
double* D,
double* E,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_zstedc(handle, evect, n, D, E, C, ldc, info);
}
/********************************************************/
/******************** STEDCJ ********************/
inline rocblas_status rocsolver_stedcj(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
float* D,
float* E,
float* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_sstedcj(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_stedcj(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
double* D,
double* E,
double* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_dstedcj(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_stedcj(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
float* D,
float* E,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_cstedcj(handle, evect, n, D, E, C, ldc, info);
}
inline rocblas_status rocsolver_stedcj(rocblas_handle handle,
rocblas_evect evect,
rocblas_int n,
double* D,
double* E,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_zstedcj(handle, evect, n, D, E, C, ldc, info);
}
/********************************************************/
/******************** STEDCX ********************/
inline rocblas_status rocsolver_stedcx(rocblas_handle handle,
rocblas_evect evect,
rocblas_erange range,
rocblas_int n,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float* D,
float* E,
rocblas_int* nev,
float* W,
float* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_sstedcx(handle, evect, range, n, vl, vu, il, iu, D, E, nev, W, C, ldc, info);
}
inline rocblas_status rocsolver_stedcx(rocblas_handle handle,
rocblas_evect evect,
rocblas_erange range,
rocblas_int n,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double* D,
double* E,
rocblas_int* nev,
double* W,
double* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_dstedcx(handle, evect, range, n, vl, vu, il, iu, D, E, nev, W, C, ldc, info);
}
inline rocblas_status rocsolver_stedcx(rocblas_handle handle,
rocblas_evect evect,
rocblas_erange range,
rocblas_int n,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float* D,
float* E,
rocblas_int* nev,
float* W,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_cstedcx(handle, evect, range, n, vl, vu, il, iu, D, E, nev, W, C, ldc, info);
}
inline rocblas_status rocsolver_stedcx(rocblas_handle handle,
rocblas_evect evect,
rocblas_erange range,
rocblas_int n,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double* D,
double* E,
rocblas_int* nev,
double* W,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_int* info)
{
return rocsolver_zstedcx(handle, evect, range, n, vl, vu, il, iu, D, E, nev, W, C, ldc, info);
}
/********************************************************/
/******************** STEIN ********************/
inline rocblas_status rocsolver_stein(rocblas_handle handle,
rocblas_int n,
float* D,
float* E,
rocblas_int* nev,
float* W,
rocblas_int* iblock,
rocblas_int* isplit,
float* Z,
rocblas_int ldz,
rocblas_int* ifail,
rocblas_int* info)
{
return rocsolver_sstein(handle, n, D, E, nev, W, iblock, isplit, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_stein(rocblas_handle handle,
rocblas_int n,
double* D,
double* E,
rocblas_int* nev,
double* W,
rocblas_int* iblock,
rocblas_int* isplit,
double* Z,
rocblas_int ldz,
rocblas_int* ifail,
rocblas_int* info)
{
return rocsolver_dstein(handle, n, D, E, nev, W, iblock, isplit, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_stein(rocblas_handle handle,
rocblas_int n,
float* D,
float* E,
rocblas_int* nev,
float* W,
rocblas_int* iblock,
rocblas_int* isplit,
rocblas_float_complex* Z,
rocblas_int ldz,
rocblas_int* ifail,
rocblas_int* info)
{
return rocsolver_cstein(handle, n, D, E, nev, W, iblock, isplit, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_stein(rocblas_handle handle,
rocblas_int n,
double* D,
double* E,
rocblas_int* nev,
double* W,
rocblas_int* iblock,
rocblas_int* isplit,
rocblas_double_complex* Z,
rocblas_int ldz,
rocblas_int* ifail,
rocblas_int* info)
{
return rocsolver_zstein(handle, n, D, E, nev, W, iblock, isplit, Z, ldz, ifail, info);
}
/********************************************************/
/******************** LASYF ********************/
inline rocblas_status rocsolver_lasyf(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nb,
rocblas_int* kb,
float* A,
rocblas_int lda,
rocblas_int* ipiv,
rocblas_int* info)
{
return rocsolver_slasyf(handle, uplo, n, nb, kb, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_lasyf(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nb,
rocblas_int* kb,
double* A,
rocblas_int lda,
rocblas_int* ipiv,
rocblas_int* info)
{
return rocsolver_dlasyf(handle, uplo, n, nb, kb, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_lasyf(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nb,
rocblas_int* kb,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_int* ipiv,
rocblas_int* info)
{
return rocsolver_clasyf(handle, uplo, n, nb, kb, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_lasyf(rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nb,
rocblas_int* kb,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_int* ipiv,
rocblas_int* info)
{
return rocsolver_zlasyf(handle, uplo, n, nb, kb, A, lda, ipiv, info);
}
/********************************************************/
/******************** BDSVDX ********************/
inline rocblas_status rocsolver_bdsvdx(rocblas_handle handle,
rocblas_fill uplo,
rocblas_svect svect,
rocblas_srange srange,
rocblas_int n,
float* D,
float* E,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nsv,
float* S,
float* Z,
const rocblas_int ldz,
rocblas_int* ifail,
rocblas_int* info)
{
return rocsolver_sbdsvdx(handle, uplo, svect, srange, n, D, E, vl, vu, il, iu, nsv, S, Z, ldz,
ifail, info);
}
inline rocblas_status rocsolver_bdsvdx(rocblas_handle handle,
rocblas_fill uplo,
rocblas_svect svect,
rocblas_srange srange,
rocblas_int n,
double* D,
double* E,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nsv,
double* S,
double* Z,
const rocblas_int ldz,
rocblas_int* ifail,
rocblas_int* info)
{
return rocsolver_dbdsvdx(handle, uplo, svect, srange, n, D, E, vl, vu, il, iu, nsv, S, Z, ldz,
ifail, info);
}
/********************************************************/
/******************** POTF2_POTRF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_spotrf_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_spotf2_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_spotrf(handle, uplo, n, A, lda, info)
: rocsolver_spotf2(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_dpotrf_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_dpotf2_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_dpotrf(handle, uplo, n, A, lda, info)
: rocsolver_dpotf2(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_cpotrf_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_cpotf2_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_cpotrf(handle, uplo, n, A, lda, info)
: rocsolver_cpotf2(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_zpotrf_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_zpotf2_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_zpotrf(handle, uplo, n, A, lda, info)
: rocsolver_zpotf2(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
float* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_spotrf_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_spotf2_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_spotrf_64(handle, uplo, n, A, lda, info)
: rocsolver_spotf2_64(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
double* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_dpotrf_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_dpotf2_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_dpotrf_64(handle, uplo, n, A, lda, info)
: rocsolver_dpotf2_64(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_cpotrf_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_cpotf2_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_cpotrf_64(handle, uplo, n, A, lda, info)
: rocsolver_cpotf2_64(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
if(STRIDED)
return POTRF
? rocsolver_zpotrf_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count)
: rocsolver_zpotf2_strided_batched_64(handle, uplo, n, A, lda, stA, info, batch_count);
else
return POTRF ? rocsolver_zpotrf_64(handle, uplo, n, A, lda, info)
: rocsolver_zpotf2_64(handle, uplo, n, A, lda, info);
}
// batched
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return POTRF ? rocsolver_spotrf_batched(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_spotf2_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return POTRF ? rocsolver_dpotrf_batched(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_dpotf2_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return POTRF ? rocsolver_cpotrf_batched(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_cpotf2_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return POTRF ? rocsolver_zpotrf_batched(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_zpotf2_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
float* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
return POTRF ? rocsolver_spotrf_batched_64(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_spotf2_batched_64(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
double* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
return POTRF ? rocsolver_dpotrf_batched_64(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_dpotf2_batched_64(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
return POTRF ? rocsolver_cpotrf_batched_64(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_cpotf2_batched_64(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potf2_potrf(bool STRIDED,
bool POTRF,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t batch_count)
{
return POTRF ? rocsolver_zpotrf_batched_64(handle, uplo, n, A, lda, info, batch_count)
: rocsolver_zpotf2_batched_64(handle, uplo, n, A, lda, info, batch_count);
}
/********************************************************/
/******************** POTRS ********************/
// normal and strided_batched
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_spotrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
batch_count);
else
return rocsolver_spotrs(handle, uplo, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_dpotrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
batch_count);
else
return rocsolver_dpotrs(handle, uplo, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_cpotrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
batch_count);
else
return rocsolver_cpotrs(handle, uplo, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_zpotrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
batch_count);
else
return rocsolver_zpotrs(handle, uplo, n, nrhs, A, lda, B, ldb);
}
// batched
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
return rocsolver_spotrs_batched(handle, uplo, n, nrhs, A, lda, B, ldb, batch_count);
}
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
return rocsolver_dpotrs_batched(handle, uplo, n, nrhs, A, lda, B, ldb, batch_count);
}
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
return rocsolver_cpotrs_batched(handle, uplo, n, nrhs, A, lda, B, ldb, batch_count);
}
inline rocblas_status rocsolver_potrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int batch_count)
{
return rocsolver_zpotrs_batched(handle, uplo, n, nrhs, A, lda, B, ldb, batch_count);
}
/********************************************************/
/******************** POSV ********************/
// normal and strided_batched
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_sposv_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
info, batch_count);
else
return rocsolver_sposv(handle, uplo, n, nrhs, A, lda, B, ldb, info);
}
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_dposv_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
info, batch_count);
else
return rocsolver_dposv(handle, uplo, n, nrhs, A, lda, B, ldb, info);
}
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_cposv_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
info, batch_count);
else
return rocsolver_cposv(handle, uplo, n, nrhs, A, lda, B, ldb, info);
}
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_zposv_strided_batched(handle, uplo, n, nrhs, A, lda, stA, B, ldb, stB,
info, batch_count);
else
return rocsolver_zposv(handle, uplo, n, nrhs, A, lda, B, ldb, info);
}
// batched
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_sposv_batched(handle, uplo, n, nrhs, A, lda, B, ldb, info, batch_count);
}
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_dposv_batched(handle, uplo, n, nrhs, A, lda, B, ldb, info, batch_count);
}
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_cposv_batched(handle, uplo, n, nrhs, A, lda, B, ldb, info, batch_count);
}
inline rocblas_status rocsolver_posv(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_zposv_batched(handle, uplo, n, nrhs, A, lda, B, ldb, info, batch_count);
}
/********************************************************/
/******************** POTRI ********************/
// normal and strided_batched
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_spotri_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return rocsolver_spotri(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_dpotri_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return rocsolver_dpotri(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_cpotri_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return rocsolver_cpotri(handle, uplo, n, A, lda, info);
}
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
if(STRIDED)
return rocsolver_zpotri_strided_batched(handle, uplo, n, A, lda, stA, info, batch_count);
else
return rocsolver_zpotri(handle, uplo, n, A, lda, info);
}
// batched
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_spotri_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_dpotri_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_cpotri_batched(handle, uplo, n, A, lda, info, batch_count);
}
inline rocblas_status rocsolver_potri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int batch_count)
{
return rocsolver_zpotri_batched(handle, uplo, n, A, lda, info, batch_count);
}
/********************************************************/
/******************** GETF2_GETRF_NPVT ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF ? rocsolver_sgetrf_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc)
: rocsolver_sgetf2_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_sgetrf_npvt(handle, m, n, A, lda, info)
: rocsolver_sgetf2_npvt(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF ? rocsolver_dgetrf_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc)
: rocsolver_dgetf2_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_dgetrf_npvt(handle, m, n, A, lda, info)
: rocsolver_dgetf2_npvt(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF ? rocsolver_cgetrf_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc)
: rocsolver_cgetf2_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_cgetrf_npvt(handle, m, n, A, lda, info)
: rocsolver_cgetf2_npvt(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF ? rocsolver_zgetrf_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc)
: rocsolver_zgetf2_npvt_strided_batched(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_zgetrf_npvt(handle, m, n, A, lda, info)
: rocsolver_zgetf2_npvt(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
float* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF ? rocsolver_sgetrf_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc)
: rocsolver_sgetf2_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_sgetrf_npvt_64(handle, m, n, A, lda, info)
: rocsolver_sgetf2_npvt_64(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
double* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF ? rocsolver_dgetrf_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc)
: rocsolver_dgetf2_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_dgetrf_npvt_64(handle, m, n, A, lda, info)
: rocsolver_dgetf2_npvt_64(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF ? rocsolver_cgetrf_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc)
: rocsolver_cgetf2_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_cgetrf_npvt_64(handle, m, n, A, lda, info)
: rocsolver_cgetf2_npvt_64(handle, m, n, A, lda, info);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF ? rocsolver_zgetrf_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc)
: rocsolver_zgetf2_npvt_strided_batched_64(handle, m, n, A, lda, stA, info, bc);
else
return GETRF ? rocsolver_zgetrf_npvt_64(handle, m, n, A, lda, info)
: rocsolver_zgetf2_npvt_64(handle, m, n, A, lda, info);
}
// batched
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_sgetrf_npvt_batched(handle, m, n, A, lda, info, bc)
: rocsolver_sgetf2_npvt_batched(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_dgetrf_npvt_batched(handle, m, n, A, lda, info, bc)
: rocsolver_dgetf2_npvt_batched(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_cgetrf_npvt_batched(handle, m, n, A, lda, info, bc)
: rocsolver_cgetf2_npvt_batched(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_zgetrf_npvt_batched(handle, m, n, A, lda, info, bc)
: rocsolver_zgetf2_npvt_batched(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
float* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_sgetrf_npvt_batched_64(handle, m, n, A, lda, info, bc)
: rocsolver_sgetf2_npvt_batched_64(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
double* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_dgetrf_npvt_batched_64(handle, m, n, A, lda, info, bc)
: rocsolver_dgetf2_npvt_batched_64(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_cgetrf_npvt_batched_64(handle, m, n, A, lda, info, bc)
: rocsolver_cgetf2_npvt_batched_64(handle, m, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf_npvt(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_zgetrf_npvt_batched_64(handle, m, n, A, lda, info, bc)
: rocsolver_zgetf2_npvt_batched_64(handle, m, n, A, lda, info, bc);
}
/********************************************************/
/******************** GETF2_GETRF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF
? rocsolver_sgetrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_sgetf2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_sgetrf(handle, m, n, A, lda, ipiv, info)
: rocsolver_sgetf2(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF
? rocsolver_dgetrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_dgetf2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_dgetrf(handle, m, n, A, lda, ipiv, info)
: rocsolver_dgetf2(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF
? rocsolver_cgetrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_cgetf2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_cgetrf(handle, m, n, A, lda, ipiv, info)
: rocsolver_cgetf2(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return GETRF
? rocsolver_zgetrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_zgetf2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_zgetrf(handle, m, n, A, lda, ipiv, info)
: rocsolver_zgetf2(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
float* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF
? rocsolver_sgetrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_sgetf2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_sgetrf_64(handle, m, n, A, lda, ipiv, info)
: rocsolver_sgetf2_64(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
double* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF
? rocsolver_dgetrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_dgetf2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_dgetrf_64(handle, m, n, A, lda, ipiv, info)
: rocsolver_dgetf2_64(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF
? rocsolver_cgetrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_cgetf2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_cgetrf_64(handle, m, n, A, lda, ipiv, info)
: rocsolver_cgetf2_64(handle, m, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
if(STRIDED)
return GETRF
? rocsolver_zgetrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_zgetf2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, info, bc);
else
return GETRF ? rocsolver_zgetrf_64(handle, m, n, A, lda, ipiv, info)
: rocsolver_zgetf2_64(handle, m, n, A, lda, ipiv, info);
}
// batched
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_sgetrf_batched(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_sgetf2_batched(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_dgetrf_batched(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_dgetf2_batched(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_cgetrf_batched(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_cgetf2_batched(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return GETRF ? rocsolver_zgetrf_batched(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_zgetf2_batched(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
float* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_sgetrf_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_sgetf2_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
double* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_dgetrf_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_dgetf2_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_cgetrf_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_cgetf2_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getf2_getrf(bool STRIDED,
bool GETRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
int64_t* info,
int64_t bc)
{
return GETRF ? rocsolver_zgetrf_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc)
: rocsolver_zgetf2_batched_64(handle, m, n, A, lda, ipiv, stP, info, bc);
}
/********************************************************/
/******************** GESVD ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
float* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_sgesvd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S, stS, U, ldu,
stU, V, ldv, stV, E, stE, fast_alg, info, bc)
: rocsolver_sgesvd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, E, fast_alg, info);
}
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
double* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_dgesvd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S, stS, U, ldu,
stU, V, ldv, stV, E, stE, fast_alg, info, bc)
: rocsolver_dgesvd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, E, fast_alg, info);
}
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
float* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_cgesvd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S, stS, U, ldu,
stU, V, ldv, stV, E, stE, fast_alg, info, bc)
: rocsolver_cgesvd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, E, fast_alg, info);
}
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
double* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_zgesvd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S, stS, U, ldu,
stU, V, ldv, stV, E, stE, fast_alg, info, bc)
: rocsolver_zgesvd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, E, fast_alg, info);
}
// batched
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
float* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgesvd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, E, stE, fast_alg, info, bc);
}
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
double* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgesvd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, E, stE, fast_alg, info, bc);
}
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
float* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgesvd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, E, stE, fast_alg, info, bc);
}
inline rocblas_status rocsolver_gesvd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
double* E,
rocblas_stride stE,
rocblas_workmode fast_alg,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgesvd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, E, stE, fast_alg, info, bc);
}
/********************************************************/
/******************** GESDD ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgesdd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_sgesdd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgesdd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_dgesdd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgesdd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_cgesdd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgesdd_strided_batched(handle, leftv, rightv, m, n, A, lda, stA, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_zgesdd(handle, leftv, rightv, m, n, A, lda, S, U, ldu, V, ldv, info);
}
// batched
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgesdd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, info, bc);
}
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgesdd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, info, bc);
}
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgesdd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, info, bc);
}
inline rocblas_status rocsolver_gesdd(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgesdd_batched(handle, leftv, rightv, m, n, A, lda, S, stS, U, ldu, stU, V,
ldv, stV, info, bc);
}
/********************************************************/
/******************** GESVDJ ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgesvdj_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_sgesvdj(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgesvdj_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_dgesvdj(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgesvdj_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_cgesvdj(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgesvdj_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S,
stS, U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_zgesvdj(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
// batched
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgesvdj_batched(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info,
bc);
}
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgesvdj_batched(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info,
bc);
}
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgesvdj_batched(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info,
bc);
}
inline rocblas_status rocsolver_gesvdj(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgesvdj_batched(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info,
bc);
}
/********************************************************/
/******************** GESVDJ_NOTRANSV ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_sgesvdj_notransv_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S, stS,
U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_sgesvdj_notransv(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_dgesvdj_notransv_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S, stS,
U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_dgesvdj_notransv(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_cgesvdj_notransv_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S, stS,
U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_cgesvdj_notransv(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_zgesvdj_notransv_strided_batched(handle, leftv, rightv, m, n, A, lda, stA,
abstol, residual, max_sweeps, n_sweeps, S, stS,
U, ldu, stU, V, ldv, stV, info, bc)
: rocsolver_zgesvdj_notransv(handle, leftv, rightv, m, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, S, U, ldu, V, ldv, info);
}
// batched
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_sgesvdj_notransv_batched(handle, leftv, rightv, m, n, A, lda, abstol,
// residual, max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info, bc);
}
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_dgesvdj_notransv_batched(handle, leftv, rightv, m, n, A, lda, abstol,
// residual, max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info, bc);
}
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_cgesvdj_notransv_batched(handle, leftv, rightv, m, n, A, lda, abstol,
// residual, max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info, bc);
}
inline rocblas_status rocsolver_gesvdj_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_zgesvdj_notransv_batched(handle, leftv, rightv, m, n, A, lda, abstol,
// residual, max_sweeps, n_sweeps, S, stS, U, ldu, stU, V, ldv, stV, info, bc);
}
/********************************************************/
/******************** GESVDX ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgesvdx_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocsolver_sgesvdx(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, U, ldu, V, ldv, ifail, info);
}
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgesvdx_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocsolver_dgesvdx(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, U, ldu, V, ldv, ifail, info);
}
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgesvdx_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocsolver_cgesvdx(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, U, ldu, V, ldv, ifail, info);
}
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgesvdx_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocsolver_zgesvdx(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, U, ldu, V, ldv, ifail, info);
}
// batched
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgesvdx_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgesvdx_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgesvdx_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_gesvdx(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgesvdx_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
/********************************************************/
/******************** GESVDX_NOTRANSV ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_sgesvdx_notransv_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocblas_status_not_implemented; // rocsolver_sgesvdx_notransv(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, U, ldu, V, ldv, ifail, info);
}
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_dgesvdx_notransv_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocblas_status_not_implemented; // rocsolver_dgesvdx_notransv(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, U, ldu, V, ldv, ifail, info);
}
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_cgesvdx_notransv_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocblas_status_not_implemented; // rocsolver_cgesvdx_notransv(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, U, ldu, V, ldv, ifail, info);
}
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_zgesvdx_notransv_strided_batched(handle, leftv, rightv, srange, m, n, A, lda,
stA, vl, vu, il, iu, ns, S, stS, U, ldu, stU,
V, ldv, stV, ifail, stF, info, bc)
: rocblas_status_not_implemented; // rocsolver_zgesvdx_notransv(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, U, ldu, V, ldv, ifail, info);
}
// batched
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
float* U,
rocblas_int ldu,
rocblas_stride stU,
float* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_sgesvdx_notransv_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
double* U,
rocblas_int ldu,
rocblas_stride stU,
double* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_dgesvdx_notransv_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
float* S,
rocblas_stride stS,
rocblas_float_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_float_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_cgesvdx_notransv_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_gesvdx_notransv(bool STRIDED,
rocblas_handle handle,
rocblas_svect leftv,
rocblas_svect rightv,
rocblas_srange srange,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* ns,
double* S,
rocblas_stride stS,
rocblas_double_complex* U,
rocblas_int ldu,
rocblas_stride stU,
rocblas_double_complex* V,
rocblas_int ldv,
rocblas_stride stV,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_zgesvdx_notransv_batched(handle, leftv, rightv, srange, m, n, A, lda, vl, vu, il, iu,
// ns, S, stS, U, ldu, stU, V, ldv, stV, ifail, stF, info, bc);
}
/********************************************************/
/******************** GETRS ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgetrs_strided_batched(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_sgetrs(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgetrs_strided_batched(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_dgetrs(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgetrs_strided_batched(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_cgetrs(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgetrs_strided_batched(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_zgetrs(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
float* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
float* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_sgetrs_strided_batched_64(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_sgetrs_64(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
double* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
double* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_dgetrs_strided_batched_64(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_dgetrs_64(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_cgetrs_strided_batched_64(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_cgetrs_64(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_zgetrs_strided_batched_64(handle, trans, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_zgetrs_64(handle, trans, n, nrhs, A, lda, ipiv, B, ldb);
}
// batched
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_sgetrs_batched(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_dgetrs_batched(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_cgetrs_batched(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_zgetrs_batched(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
float* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
float* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_sgetrs_batched_64(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
double* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
double* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_dgetrs_batched_64(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_cgetrs_batched_64(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_zgetrs_batched_64(handle, trans, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
/********************************************************/
/******************** SYTRS ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssytrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv, stP,
B, ldb, stB, bc)
: rocsolver_ssytrs(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsytrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv, stP,
B, ldb, stB, bc)
: rocsolver_dsytrs(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_csytrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv, stP,
B, ldb, stB, bc)
: rocsolver_csytrs(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_zsytrs_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv, stP,
B, ldb, stB, bc)
: rocsolver_zsytrs(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
float* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
float* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_ssytrs_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_ssytrs_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
double* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
double* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_dsytrs_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_dsytrs_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_csytrs_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_csytrs_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_zsytrs_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_zsytrs_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
// batched
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_ssytrs_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_dsytrs_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_csytrs_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_zsytrs_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
float* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
float* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_ssytrs_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
double* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
double* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_dsytrs_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_csytrs_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_zsytrs_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
/********************************************************/
/******************** SYTRS2 ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssytrs2_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_ssytrs2(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsytrs2_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_dsytrs2(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_csytrs2_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_csytrs2(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED ? rocsolver_zsytrs2_strided_batched(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_zsytrs2(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
float* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
float* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_ssytrs2_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_ssytrs2_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
double* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
double* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_dsytrs2_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_dsytrs2_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_csytrs2_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_csytrs2_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_zsytrs2_strided_batched_64(handle, uplo, n, nrhs, A, lda, stA, ipiv,
stP, B, ldb, stB, bc)
: rocsolver_zsytrs2_64(handle, uplo, n, nrhs, A, lda, ipiv, B, ldb);
}
// batched
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_ssytrs2_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_dsytrs2_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_csytrs2_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_zsytrs2_batched(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
float* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
float* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_ssytrs2_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
double* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
double* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_dsytrs2_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_csytrs2_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
inline rocblas_status rocsolver_sytrs2(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
int64_t n,
int64_t nrhs,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
int64_t* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_zsytrs2_batched_64(handle, uplo, n, nrhs, A, lda, ipiv, stP, B, ldb, bc);
}
/******************** GETRS_NPVT ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED
? rocsolver_sgetrs_npvt_strided_batched(handle, trans, n, nrhs, A, lda, stA, B, ldb, stB, bc)
: rocsolver_sgetrs_npvt(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED
? rocsolver_dgetrs_npvt_strided_batched(handle, trans, n, nrhs, A, lda, stA, B, ldb, stB, bc)
: rocsolver_dgetrs_npvt(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED
? rocsolver_cgetrs_npvt_strided_batched(handle, trans, n, nrhs, A, lda, stA, B, ldb, stB, bc)
: rocsolver_cgetrs_npvt(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return STRIDED
? rocsolver_zgetrs_npvt_strided_batched(handle, trans, n, nrhs, A, lda, stA, B, ldb, stB, bc)
: rocsolver_zgetrs_npvt(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
float* A,
int64_t lda,
rocblas_stride stA,
float* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_sgetrs_npvt_strided_batched_64(handle, trans, n, nrhs, A, lda, stA,
B, ldb, stB, bc)
: rocsolver_sgetrs_npvt_64(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
double* A,
int64_t lda,
rocblas_stride stA,
double* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_dgetrs_npvt_strided_batched_64(handle, trans, n, nrhs, A, lda, stA,
B, ldb, stB, bc)
: rocsolver_dgetrs_npvt_64(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
rocblas_float_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_cgetrs_npvt_strided_batched_64(handle, trans, n, nrhs, A, lda, stA,
B, ldb, stB, bc)
: rocsolver_cgetrs_npvt_64(handle, trans, n, nrhs, A, lda, B, ldb);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
rocblas_double_complex* B,
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return STRIDED ? rocsolver_zgetrs_npvt_strided_batched_64(handle, trans, n, nrhs, A, lda, stA,
B, ldb, stB, bc)
: rocsolver_zgetrs_npvt_64(handle, trans, n, nrhs, A, lda, B, ldb);
}
// batched
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_sgetrs_npvt_batched(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_dgetrs_npvt_batched(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_cgetrs_npvt_batched(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return rocsolver_zgetrs_npvt_batched(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
float* const A[],
int64_t lda,
rocblas_stride stA,
float* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_sgetrs_npvt_batched_64(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
double* const A[],
int64_t lda,
rocblas_stride stA,
double* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_dgetrs_npvt_batched_64(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_cgetrs_npvt_batched_64(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_getrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
int64_t n,
int64_t nrhs,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
int64_t ldb,
rocblas_stride stB,
int64_t bc)
{
return rocsolver_zgetrs_npvt_batched_64(handle, trans, n, nrhs, A, lda, B, ldb, bc);
}
/********************************************************/
/******************** GESV ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgesv_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B,
ldb, stB, info, bc)
: rocsolver_sgesv(handle, n, nrhs, A, lda, ipiv, B, ldb, info);
}
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgesv_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B,
ldb, stB, info, bc)
: rocsolver_dgesv(handle, n, nrhs, A, lda, ipiv, B, ldb, info);
}
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgesv_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B,
ldb, stB, info, bc)
: rocsolver_cgesv(handle, n, nrhs, A, lda, ipiv, B, ldb, info);
}
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgesv_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B,
ldb, stB, info, bc)
: rocsolver_zgesv(handle, n, nrhs, A, lda, ipiv, B, ldb, info);
}
// batched
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgesv_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgesv_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgesv_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gesv(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgesv_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
/********************************************************/
/******************** GESV_OUTOFPLACE ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_sgesv_outofplace_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B, ldb, stB, X, ldx, stX, info, bc)
: rocsolver_sgesv_outofplace(handle, n, nrhs, A, lda, ipiv, B, ldb, X, ldx, info);
}
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_dgesv_outofplace_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B, ldb, stB, X, ldx, stX, info, bc)
: rocsolver_dgesv_outofplace(handle, n, nrhs, A, lda, ipiv, B, ldb, X, ldx, info);
}
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_cgesv_outofplace_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B, ldb, stB, X, ldx, stX, info, bc)
: rocsolver_cgesv_outofplace(handle, n, nrhs, A, lda, ipiv, B, ldb, X, ldx, info);
}
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_zgesv_outofplace_strided_batched(handle, n, nrhs, A, lda, stA, ipiv, stP, B, ldb, stB, X, ldx, stX, info, bc)
: rocsolver_zgesv_outofplace(handle, n, nrhs, A, lda, ipiv, B, ldb, X, ldx, info);
}
// batched
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_sgesv_outofplace_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_dgesv_outofplace_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_cgesv_outofplace_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gesv_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_zgesv_outofplace_batched(handle, n, nrhs, A, lda, ipiv, stP, B, ldb, info, bc);
}
/********************************************************/
/******************** GETRI_OUTOFPLACE ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgetri_outofplace_strided_batched(handle, n, A, lda, stA, ipiv, stP,
C, ldc, stC, info, bc)
: rocsolver_sgetri_outofplace(handle, n, A, lda, ipiv, C, ldc, info);
}
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgetri_outofplace_strided_batched(handle, n, A, lda, stA, ipiv, stP,
C, ldc, stC, info, bc)
: rocsolver_dgetri_outofplace(handle, n, A, lda, ipiv, C, ldc, info);
}
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgetri_outofplace_strided_batched(handle, n, A, lda, stA, ipiv, stP,
C, ldc, stC, info, bc)
: rocsolver_cgetri_outofplace(handle, n, A, lda, ipiv, C, ldc, info);
}
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgetri_outofplace_strided_batched(handle, n, A, lda, stA, ipiv, stP,
C, ldc, stC, info, bc)
: rocsolver_zgetri_outofplace(handle, n, A, lda, ipiv, C, ldc, info);
}
// batched
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
float* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgetri_outofplace_batched(handle, n, A, lda, ipiv, stP, C, ldc, info, bc);
}
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
double* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgetri_outofplace_batched(handle, n, A, lda, ipiv, stP, C, ldc, info, bc);
}
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_float_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgetri_outofplace_batched(handle, n, A, lda, ipiv, stP, C, ldc, info, bc);
}
inline rocblas_status rocsolver_getri_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_double_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgetri_outofplace_batched(handle, n, A, lda, ipiv, stP, C, ldc, info, bc);
}
/********************************************************/
/******************** GETRI_NPVT_OUTOFPLACE ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgetri_npvt_outofplace_strided_batched(handle, n, A, lda, stA, C,
ldc, stC, info, bc)
: rocsolver_sgetri_npvt_outofplace(handle, n, A, lda, C, ldc, info);
}
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgetri_npvt_outofplace_strided_batched(handle, n, A, lda, stA, C,
ldc, stC, info, bc)
: rocsolver_dgetri_npvt_outofplace(handle, n, A, lda, C, ldc, info);
}
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgetri_npvt_outofplace_strided_batched(handle, n, A, lda, stA, C,
ldc, stC, info, bc)
: rocsolver_cgetri_npvt_outofplace(handle, n, A, lda, C, ldc, info);
}
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgetri_npvt_outofplace_strided_batched(handle, n, A, lda, stA, C,
ldc, stC, info, bc)
: rocsolver_zgetri_npvt_outofplace(handle, n, A, lda, C, ldc, info);
}
// batched
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgetri_npvt_outofplace_batched(handle, n, A, lda, C, ldc, info, bc);
}
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgetri_npvt_outofplace_batched(handle, n, A, lda, C, ldc, info, bc);
}
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgetri_npvt_outofplace_batched(handle, n, A, lda, C, ldc, info, bc);
}
inline rocblas_status rocsolver_getri_npvt_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgetri_npvt_outofplace_batched(handle, n, A, lda, C, ldc, info, bc);
}
/********************************************************/
/******************** GETRI ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgetri_strided_batched(handle, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_sgetri(handle, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgetri_strided_batched(handle, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_dgetri(handle, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgetri_strided_batched(handle, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_cgetri(handle, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgetri_strided_batched(handle, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_zgetri(handle, n, A, lda, ipiv, info);
}
// batched
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgetri_batched(handle, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgetri_batched(handle, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgetri_batched(handle, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_getri(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgetri_batched(handle, n, A, lda, ipiv, stP, info, bc);
}
/********************************************************/
/******************** GETRI_NPVT ********************/
// normal and strided_batched
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgetri_npvt_strided_batched(handle, n, A, lda, stA, info, bc)
: rocsolver_sgetri_npvt(handle, n, A, lda, info);
}
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgetri_npvt_strided_batched(handle, n, A, lda, stA, info, bc)
: rocsolver_dgetri_npvt(handle, n, A, lda, info);
}
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgetri_npvt_strided_batched(handle, n, A, lda, stA, info, bc)
: rocsolver_cgetri_npvt(handle, n, A, lda, info);
}
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgetri_npvt_strided_batched(handle, n, A, lda, stA, info, bc)
: rocsolver_zgetri_npvt(handle, n, A, lda, info);
}
// batched
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgetri_npvt_batched(handle, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgetri_npvt_batched(handle, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgetri_npvt_batched(handle, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_getri_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgetri_npvt_batched(handle, n, A, lda, info, bc);
}
/********************************************************/
/******************** TRTRI ********************/
// normal and strided_batched
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_strtri_strided_batched(handle, uplo, diag, n, A, lda, stA, info, bc)
: rocsolver_strtri(handle, uplo, diag, n, A, lda, info);
}
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dtrtri_strided_batched(handle, uplo, diag, n, A, lda, stA, info, bc)
: rocsolver_dtrtri(handle, uplo, diag, n, A, lda, info);
}
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ctrtri_strided_batched(handle, uplo, diag, n, A, lda, stA, info, bc)
: rocsolver_ctrtri(handle, uplo, diag, n, A, lda, info);
}
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ztrtri_strided_batched(handle, uplo, diag, n, A, lda, stA, info, bc)
: rocsolver_ztrtri(handle, uplo, diag, n, A, lda, info);
}
// batched
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_strtri_batched(handle, uplo, diag, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dtrtri_batched(handle, uplo, diag, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ctrtri_batched(handle, uplo, diag, n, A, lda, info, bc);
}
inline rocblas_status rocsolver_trtri(bool STRIDED,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_diagonal diag,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ztrtri_batched(handle, uplo, diag, n, A, lda, info, bc);
}
/********************************************************/
/******************** GEQR2_GEQRF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQRF ? rocsolver_sgeqrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_sgeqr2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_sgeqrf(handle, m, n, A, lda, ipiv)
: rocsolver_sgeqr2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQRF ? rocsolver_dgeqrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_dgeqr2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_dgeqrf(handle, m, n, A, lda, ipiv)
: rocsolver_dgeqr2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQRF ? rocsolver_cgeqrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_cgeqr2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_cgeqrf(handle, m, n, A, lda, ipiv)
: rocsolver_cgeqr2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQRF ? rocsolver_zgeqrf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_zgeqr2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_zgeqrf(handle, m, n, A, lda, ipiv)
: rocsolver_zgeqr2(handle, m, n, A, lda, ipiv);
}
// batched
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_sgeqrf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_sgeqr2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_dgeqrf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_dgeqr2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_cgeqrf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_cgeqr2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_zgeqrf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_zgeqr2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
// ptr_batched
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const ipiv[],
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_sgeqrf_ptr_batched(handle, m, n, A, lda, ipiv, bc)
: rocblas_status_not_implemented;
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const ipiv[],
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_dgeqrf_ptr_batched(handle, m, n, A, lda, ipiv, bc)
: rocblas_status_not_implemented;
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const ipiv[],
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_cgeqrf_ptr_batched(handle, m, n, A, lda, ipiv, bc)
: rocblas_status_not_implemented;
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const ipiv[],
rocblas_stride stP,
rocblas_int bc)
{
return GEQRF ? rocsolver_zgeqrf_ptr_batched(handle, m, n, A, lda, ipiv, bc)
: rocblas_status_not_implemented;
}
// normal and strided_batched
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
float* A,
int64_t lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
int64_t bc)
{
if(STRIDED)
return GEQRF ? rocsolver_sgeqrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_sgeqr2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_sgeqrf_64(handle, m, n, A, lda, ipiv)
: rocsolver_sgeqr2_64(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
double* A,
int64_t lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
int64_t bc)
{
if(STRIDED)
return GEQRF ? rocsolver_dgeqrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_dgeqr2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_dgeqrf_64(handle, m, n, A, lda, ipiv)
: rocsolver_dgeqr2_64(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
int64_t bc)
{
if(STRIDED)
return GEQRF ? rocsolver_cgeqrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_cgeqr2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_cgeqrf_64(handle, m, n, A, lda, ipiv)
: rocsolver_cgeqr2_64(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
int64_t bc)
{
if(STRIDED)
return GEQRF ? rocsolver_zgeqrf_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_zgeqr2_strided_batched_64(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQRF ? rocsolver_zgeqrf_64(handle, m, n, A, lda, ipiv)
: rocsolver_zgeqr2_64(handle, m, n, A, lda, ipiv);
}
// batched
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
float* const A[],
int64_t lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
int64_t bc)
{
return GEQRF ? rocsolver_sgeqrf_batched_64(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_sgeqr2_batched_64(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
double* const A[],
int64_t lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
int64_t bc)
{
return GEQRF ? rocsolver_dgeqrf_batched_64(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_dgeqr2_batched_64(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
int64_t bc)
{
return GEQRF ? rocsolver_cgeqrf_batched_64(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_cgeqr2_batched_64(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geqr2_geqrf(bool STRIDED,
bool GEQRF,
rocblas_handle handle,
int64_t m,
int64_t n,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
int64_t bc)
{
return GEQRF ? rocsolver_zgeqrf_batched_64(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_zgeqr2_batched_64(handle, m, n, A, lda, ipiv, stP, bc);
}
/********************************************************/
/******************** GERQ2_GERQF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GERQF ? rocsolver_sgerqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_sgerq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GERQF ? rocsolver_sgerqf(handle, m, n, A, lda, ipiv)
: rocsolver_sgerq2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GERQF ? rocsolver_dgerqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_dgerq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GERQF ? rocsolver_dgerqf(handle, m, n, A, lda, ipiv)
: rocsolver_dgerq2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GERQF ? rocsolver_cgerqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_cgerq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GERQF ? rocsolver_cgerqf(handle, m, n, A, lda, ipiv)
: rocsolver_cgerq2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GERQF ? rocsolver_zgerqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_zgerq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GERQF ? rocsolver_zgerqf(handle, m, n, A, lda, ipiv)
: rocsolver_zgerq2(handle, m, n, A, lda, ipiv);
}
// batched
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GERQF ? rocsolver_sgerqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_sgerq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GERQF ? rocsolver_dgerqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_dgerq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GERQF ? rocsolver_cgerqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_cgerq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_gerq2_gerqf(bool STRIDED,
bool GERQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GERQF ? rocsolver_zgerqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_zgerq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
/********************************************************/
/******************** GEQL2_GEQLF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQLF ? rocsolver_sgeqlf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_sgeql2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQLF ? rocsolver_sgeqlf(handle, m, n, A, lda, ipiv)
: rocsolver_sgeql2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQLF ? rocsolver_dgeqlf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_dgeql2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQLF ? rocsolver_dgeqlf(handle, m, n, A, lda, ipiv)
: rocsolver_dgeql2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQLF ? rocsolver_cgeqlf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_cgeql2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQLF ? rocsolver_cgeqlf(handle, m, n, A, lda, ipiv)
: rocsolver_cgeql2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEQLF ? rocsolver_zgeqlf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_zgeql2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GEQLF ? rocsolver_zgeqlf(handle, m, n, A, lda, ipiv)
: rocsolver_zgeql2(handle, m, n, A, lda, ipiv);
}
// batched
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQLF ? rocsolver_sgeqlf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_sgeql2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQLF ? rocsolver_dgeqlf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_dgeql2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQLF ? rocsolver_cgeqlf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_cgeql2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_geql2_geqlf(bool STRIDED,
bool GEQLF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GEQLF ? rocsolver_zgeqlf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_zgeql2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
/********************************************************/
/******************** GELQ2_GELQF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GELQF ? rocsolver_sgelqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_sgelq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GELQF ? rocsolver_sgelqf(handle, m, n, A, lda, ipiv)
: rocsolver_sgelq2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GELQF ? rocsolver_dgelqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_dgelq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GELQF ? rocsolver_dgelqf(handle, m, n, A, lda, ipiv)
: rocsolver_dgelq2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GELQF ? rocsolver_cgelqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_cgelq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GELQF ? rocsolver_cgelqf(handle, m, n, A, lda, ipiv)
: rocsolver_cgelq2(handle, m, n, A, lda, ipiv);
}
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GELQF ? rocsolver_zgelqf_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc)
: rocsolver_zgelq2_strided_batched(handle, m, n, A, lda, stA, ipiv, stP, bc);
else
return GELQF ? rocsolver_zgelqf(handle, m, n, A, lda, ipiv)
: rocsolver_zgelq2(handle, m, n, A, lda, ipiv);
}
// batched
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GELQF ? rocsolver_sgelqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_sgelq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GELQF ? rocsolver_dgelqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_dgelq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GELQF ? rocsolver_cgelqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_cgelq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
inline rocblas_status rocsolver_gelq2_gelqf(bool STRIDED,
bool GELQF,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* ipiv,
rocblas_stride stP,
rocblas_int bc)
{
return GELQF ? rocsolver_zgelqf_batched(handle, m, n, A, lda, ipiv, stP, bc)
: rocsolver_zgelq2_batched(handle, m, n, A, lda, ipiv, stP, bc);
}
/********************************************************/
/******************** GELS ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_sgels_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB,
info, bc);
else
return rocsolver_sgels(handle, trans, m, n, nrhs, A, lda, B, ldb, info);
}
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_dgels_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB,
info, bc);
else
return rocsolver_dgels(handle, trans, m, n, nrhs, A, lda, B, ldb, info);
}
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_cgels_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB,
info, bc);
else
return rocsolver_cgels(handle, trans, m, n, nrhs, A, lda, B, ldb, info);
}
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_zgels_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB,
info, bc);
else
return rocsolver_zgels(handle, trans, m, n, nrhs, A, lda, B, ldb, info);
}
// batched
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgels_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgels_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgels_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, info, bc);
}
inline rocblas_status rocsolver_gels(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgels_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, info, bc);
}
/********************************************************/
/******************** GELS_OUTOFPLACE ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocblas_status_not_implemented; // rocsolver_sgels_outofplace_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB, X, ldx, stX, info, bc);
else
return rocsolver_sgels_outofplace(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info);
}
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocblas_status_not_implemented; // rocsolver_dgels_outofplace_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB, X, ldx, stX, info, bc);
else
return rocsolver_dgels_outofplace(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info);
}
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocblas_status_not_implemented; // rocsolver_cgels_outofplace_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB, X, ldx, stX, info, bc);
else
return rocsolver_cgels_outofplace(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info);
}
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocblas_status_not_implemented; // rocsolver_zgels_outofplace_strided_batched(handle, trans, m, n, nrhs, A, lda, stA, B, ldb, stB, X, ldx, stX, info, bc);
else
return rocsolver_zgels_outofplace(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info);
}
// batched
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_sgels_outofplace_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info, bc);
}
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_dgels_outofplace_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info, bc);
}
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_cgels_outofplace_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info, bc);
}
inline rocblas_status rocsolver_gels_outofplace(bool STRIDED,
rocblas_handle handle,
rocblas_operation trans,
rocblas_int m,
rocblas_int n,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_zgels_outofplace_batched(handle, trans, m, n, nrhs, A, lda, B, ldb, X, ldx, info, bc);
}
/********************************************************/
/******************** GEBD2_GEBRD ********************/
// normal and strided_batched
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
float* tauq,
rocblas_stride stQ,
float* taup,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEBRD ? rocsolver_sgebrd_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc)
: rocsolver_sgebd2_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc);
else
return GEBRD ? rocsolver_sgebrd(handle, m, n, A, lda, D, E, tauq, taup)
: rocsolver_sgebd2(handle, m, n, A, lda, D, E, tauq, taup);
}
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
double* tauq,
rocblas_stride stQ,
double* taup,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEBRD ? rocsolver_dgebrd_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc)
: rocsolver_dgebd2_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc);
else
return GEBRD ? rocsolver_dgebrd(handle, m, n, A, lda, D, E, tauq, taup)
: rocsolver_dgebd2(handle, m, n, A, lda, D, E, tauq, taup);
}
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_float_complex* tauq,
rocblas_stride stQ,
rocblas_float_complex* taup,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEBRD ? rocsolver_cgebrd_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc)
: rocsolver_cgebd2_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc);
else
return GEBRD ? rocsolver_cgebrd(handle, m, n, A, lda, D, E, tauq, taup)
: rocsolver_cgebd2(handle, m, n, A, lda, D, E, tauq, taup);
}
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_double_complex* tauq,
rocblas_stride stQ,
rocblas_double_complex* taup,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return GEBRD ? rocsolver_zgebrd_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc)
: rocsolver_zgebd2_strided_batched(handle, m, n, A, lda, stA, D, stD, E, stE,
tauq, stQ, taup, stP, bc);
else
return GEBRD ? rocsolver_zgebrd(handle, m, n, A, lda, D, E, tauq, taup)
: rocsolver_zgebd2(handle, m, n, A, lda, D, E, tauq, taup);
}
// batched
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
float* tauq,
rocblas_stride stQ,
float* taup,
rocblas_stride stP,
rocblas_int bc)
{
return GEBRD
? rocsolver_sgebrd_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc)
: rocsolver_sgebd2_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc);
}
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
double* tauq,
rocblas_stride stQ,
double* taup,
rocblas_stride stP,
rocblas_int bc)
{
return GEBRD
? rocsolver_dgebrd_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc)
: rocsolver_dgebd2_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc);
}
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_float_complex* tauq,
rocblas_stride stQ,
rocblas_float_complex* taup,
rocblas_stride stP,
rocblas_int bc)
{
return GEBRD
? rocsolver_cgebrd_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc)
: rocsolver_cgebd2_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc);
}
inline rocblas_status rocsolver_gebd2_gebrd(bool STRIDED,
bool GEBRD,
rocblas_handle handle,
rocblas_int m,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_double_complex* tauq,
rocblas_stride stQ,
rocblas_double_complex* taup,
rocblas_stride stP,
rocblas_int bc)
{
return GEBRD
? rocsolver_zgebrd_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc)
: rocsolver_zgebd2_batched(handle, m, n, A, lda, D, stD, E, stE, tauq, stQ, taup, stP, bc);
}
/********************************************************/
/******************** SYTD2/SYTRD_HETD2/HETRD ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
float* tau,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return SYTRD ? rocsolver_ssytrd_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc)
: rocsolver_ssytd2_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc);
else
return SYTRD ? rocsolver_ssytrd(handle, uplo, n, A, lda, D, E, tau)
: rocsolver_ssytd2(handle, uplo, n, A, lda, D, E, tau);
}
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
double* tau,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return SYTRD ? rocsolver_dsytrd_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc)
: rocsolver_dsytd2_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc);
else
return SYTRD ? rocsolver_dsytrd(handle, uplo, n, A, lda, D, E, tau)
: rocsolver_dsytd2(handle, uplo, n, A, lda, D, E, tau);
}
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_float_complex* tau,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return SYTRD ? rocsolver_chetrd_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc)
: rocsolver_chetd2_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc);
else
return SYTRD ? rocsolver_chetrd(handle, uplo, n, A, lda, D, E, tau)
: rocsolver_chetd2(handle, uplo, n, A, lda, D, E, tau);
}
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_double_complex* tau,
rocblas_stride stP,
rocblas_int bc)
{
if(STRIDED)
return SYTRD ? rocsolver_zhetrd_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc)
: rocsolver_zhetd2_strided_batched(handle, uplo, n, A, lda, stA, D, stD, E,
stE, tau, stP, bc);
else
return SYTRD ? rocsolver_zhetrd(handle, uplo, n, A, lda, D, E, tau)
: rocsolver_zhetd2(handle, uplo, n, A, lda, D, E, tau);
}
// batched
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
float* tau,
rocblas_stride stP,
rocblas_int bc)
{
return SYTRD ? rocsolver_ssytrd_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc)
: rocsolver_ssytd2_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc);
}
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
double* tau,
rocblas_stride stP,
rocblas_int bc)
{
return SYTRD ? rocsolver_dsytrd_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc)
: rocsolver_dsytd2_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc);
}
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_float_complex* tau,
rocblas_stride stP,
rocblas_int bc)
{
return SYTRD ? rocsolver_chetrd_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc)
: rocsolver_chetd2_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc);
}
inline rocblas_status rocsolver_sytxx_hetxx(bool STRIDED,
bool SYTRD,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_double_complex* tau,
rocblas_stride stP,
rocblas_int bc)
{
return SYTRD ? rocsolver_zhetrd_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc)
: rocsolver_zhetd2_batched(handle, uplo, n, A, lda, D, stD, E, stE, tau, stP, bc);
}
/********************************************************/
/******************** SYGS2/SYGST_HEGS2/HEGST ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
if(STRIDED)
return SYGST
? rocsolver_ssygst_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc)
: rocsolver_ssygs2_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc);
else
return SYGST ? rocsolver_ssygst(handle, itype, uplo, n, A, lda, B, ldb)
: rocsolver_ssygs2(handle, itype, uplo, n, A, lda, B, ldb);
}
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
if(STRIDED)
return SYGST
? rocsolver_dsygst_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc)
: rocsolver_dsygs2_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc);
else
return SYGST ? rocsolver_dsygst(handle, itype, uplo, n, A, lda, B, ldb)
: rocsolver_dsygs2(handle, itype, uplo, n, A, lda, B, ldb);
}
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
if(STRIDED)
return SYGST
? rocsolver_chegst_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc)
: rocsolver_chegs2_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc);
else
return SYGST ? rocsolver_chegst(handle, itype, uplo, n, A, lda, B, ldb)
: rocsolver_chegs2(handle, itype, uplo, n, A, lda, B, ldb);
}
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
if(STRIDED)
return SYGST
? rocsolver_zhegst_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc)
: rocsolver_zhegs2_strided_batched(handle, itype, uplo, n, A, lda, stA, B, ldb, stB, bc);
else
return SYGST ? rocsolver_zhegst(handle, itype, uplo, n, A, lda, B, ldb)
: rocsolver_zhegs2(handle, itype, uplo, n, A, lda, B, ldb);
}
// batched
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return SYGST ? rocsolver_ssygst_batched(handle, itype, uplo, n, A, lda, B, ldb, bc)
: rocsolver_ssygs2_batched(handle, itype, uplo, n, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return SYGST ? rocsolver_dsygst_batched(handle, itype, uplo, n, A, lda, B, ldb, bc)
: rocsolver_dsygs2_batched(handle, itype, uplo, n, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return SYGST ? rocsolver_chegst_batched(handle, itype, uplo, n, A, lda, B, ldb, bc)
: rocsolver_chegs2_batched(handle, itype, uplo, n, A, lda, B, ldb, bc);
}
inline rocblas_status rocsolver_sygsx_hegsx(bool STRIDED,
bool SYGST,
rocblas_handle handle,
rocblas_eform itype,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_int bc)
{
return SYGST ? rocsolver_zhegst_batched(handle, itype, uplo, n, A, lda, B, ldb, bc)
: rocsolver_zhegs2_batched(handle, itype, uplo, n, A, lda, B, ldb, bc);
}
/********************************************************/
/******************** SYEV/HEEV ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssyev_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, E,
stE, info, bc)
: rocsolver_ssyev(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsyev_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, E,
stE, info, bc)
: rocsolver_dsyev(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cheev_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, E,
stE, info, bc)
: rocsolver_cheev(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zheev_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, E,
stE, info, bc)
: rocsolver_zheev(handle, evect, uplo, n, A, lda, D, E, info);
}
// batched
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssyev_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsyev_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cheev_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zheev_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
// normal and strided_batched (int64_t)
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
float* A,
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_ssyev_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_ssyev_64(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
double* A,
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_dsyev_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_dsyev_64(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_cheev_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_cheev_64(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_zheev_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_zheev_64(handle, evect, uplo, n, A, lda, D, E, info);
}
// batched (int64_t)
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
float* const A[],
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_ssyev_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
double* const A[],
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_dsyev_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_cheev_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syev_heev(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_zheev_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
/********************************************************/
/******************** SYEVD/HEEVD ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssyevd_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_ssyevd(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsyevd_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_dsyevd(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cheevd_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_cheevd(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zheevd_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD,
E, stE, info, bc)
: rocsolver_zheevd(handle, evect, uplo, n, A, lda, D, E, info);
}
// batched
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssyevd_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsyevd_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cheevd_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zheevd_batched(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
// normal and strided_batched (int64_t)
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
float* A,
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_ssyevd_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D,
stD, E, stE, info, bc)
: rocsolver_ssyevd_64(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
double* A,
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_dsyevd_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D,
stD, E, stE, info, bc)
: rocsolver_dsyevd_64(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_float_complex* A,
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_cheevd_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D,
stD, E, stE, info, bc)
: rocsolver_cheevd_64(handle, evect, uplo, n, A, lda, D, E, info);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_double_complex* A,
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return STRIDED ? rocsolver_zheevd_strided_batched_64(handle, evect, uplo, n, A, lda, stA, D,
stD, E, stE, info, bc)
: rocsolver_zheevd_64(handle, evect, uplo, n, A, lda, D, E, info);
}
// batched (int64_t)
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
float* const A[],
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_ssyevd_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
double* const A[],
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_dsyevd_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_float_complex* const A[],
int64_t lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_cheevd_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
inline rocblas_status rocsolver_syevd_heevd(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
int64_t n,
rocblas_double_complex* const A[],
int64_t lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
int64_t* info,
int64_t bc)
{
return rocsolver_zheevd_batched_64(handle, evect, uplo, n, A, lda, D, stD, E, stE, info, bc);
}
/********************************************************/
/******************** SYEVDJ/HEEVDJ ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_ssyevdj_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, info, bc)
: rocsolver_ssyevdj(handle, evect, uplo, n, A, lda, D, info);
}
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_dsyevdj_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, info, bc)
: rocsolver_dsyevdj(handle, evect, uplo, n, A, lda, D, info);
}
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_cheevdj_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, info, bc)
: rocsolver_cheevdj(handle, evect, uplo, n, A, lda, D, info);
}
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_zheevdj_strided_batched(handle, evect, uplo, n, A, lda, stA, D, stD, info, bc)
: rocsolver_zheevdj(handle, evect, uplo, n, A, lda, D, info);
}
// batched
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssyevdj_batched(handle, evect, uplo, n, A, lda, D, stD, info, bc);
}
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsyevdj_batched(handle, evect, uplo, n, A, lda, D, stD, info, bc);
}
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cheevdj_batched(handle, evect, uplo, n, A, lda, D, stD, info, bc);
}
inline rocblas_status rocsolver_syevdj_heevdj(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zheevdj_batched(handle, evect, uplo, n, A, lda, D, stD, info, bc);
}
/********************************************************/
/******************** SYEVDX/HEEVDX ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_ssyevdx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il,
iu, nev, W, stW, Z, ldz, stZ, info, bc)
: rocsolver_ssyevdx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W, Z, ldz,
info);
}
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_dsyevdx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il,
iu, nev, W, stW, Z, ldz, stZ, info, bc)
: rocsolver_dsyevdx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W, Z, ldz,
info);
}
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_cheevdx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il,
iu, nev, W, stW, Z, ldz, stZ, info, bc)
: rocsolver_cheevdx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W, Z, ldz,
info);
}
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_zheevdx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il,
iu, nev, W, stW, Z, ldz, stZ, info, bc)
: rocsolver_zheevdx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W, Z, ldz,
info);
}
// batched
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssyevdx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W,
stW, Z, ldz, info, bc);
}
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsyevdx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W,
stW, Z, ldz, info, bc);
}
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cheevdx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W,
stW, Z, ldz, info, bc);
}
inline rocblas_status rocsolver_syevdx_heevdx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zheevdx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, nev, W,
stW, Z, ldz, info, bc);
}
/********************************************************/
/******************** SYEVJ/HEEVJ ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_ssyevj_strided_batched(handle, esort, evect, uplo, n, A, lda, stA, abstol,
residual, max_sweeps, n_sweeps, W, stW, info, bc)
: rocsolver_ssyevj(handle, esort, evect, uplo, n, A, lda, abstol, residual, max_sweeps,
n_sweeps, W, info);
}
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_dsyevj_strided_batched(handle, esort, evect, uplo, n, A, lda, stA, abstol,
residual, max_sweeps, n_sweeps, W, stW, info, bc)
: rocsolver_dsyevj(handle, esort, evect, uplo, n, A, lda, abstol, residual, max_sweeps,
n_sweeps, W, info);
}
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_cheevj_strided_batched(handle, esort, evect, uplo, n, A, lda, stA, abstol,
residual, max_sweeps, n_sweeps, W, stW, info, bc)
: rocsolver_cheevj(handle, esort, evect, uplo, n, A, lda, abstol, residual, max_sweeps,
n_sweeps, W, info);
}
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocsolver_zheevj_strided_batched(handle, esort, evect, uplo, n, A, lda, stA, abstol,
residual, max_sweeps, n_sweeps, W, stW, info, bc)
: rocsolver_zheevj(handle, esort, evect, uplo, n, A, lda, abstol, residual, max_sweeps,
n_sweeps, W, info);
}
// batched
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssyevj_batched(handle, esort, evect, uplo, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsyevj_batched(handle, esort, evect, uplo, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cheevj_batched(handle, esort, evect, uplo, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
inline rocblas_status rocsolver_syevj_heevj(bool STRIDED,
rocblas_handle handle,
rocblas_esort esort,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zheevj_batched(handle, esort, evect, uplo, n, A, lda, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
/********************************************************/
/******************** SYEVX/HEEVX ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssyevx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA,
vl, vu, il, iu, abstol, nev, W, stW, Z, ldz,
stZ, ifail, stF, info, bc)
: rocsolver_ssyevx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu,
abstol, nev, W, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsyevx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA,
vl, vu, il, iu, abstol, nev, W, stW, Z, ldz,
stZ, ifail, stF, info, bc)
: rocsolver_dsyevx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu,
abstol, nev, W, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cheevx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA,
vl, vu, il, iu, abstol, nev, W, stW, Z, ldz,
stZ, ifail, stF, info, bc)
: rocsolver_cheevx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu,
abstol, nev, W, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zheevx_strided_batched(handle, evect, erange, uplo, n, A, lda, stA,
vl, vu, il, iu, abstol, nev, W, stW, Z, ldz,
stZ, ifail, stF, info, bc)
: rocsolver_zheevx(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu,
abstol, nev, W, Z, ldz, ifail, info);
}
// batched
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssyevx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsyevx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cheevx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_syevx_heevx(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zheevx_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
/********************************************************/
/******************** SYEVDX/HEEVDX_INPLACE ********************/
// normal and strided_batched
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_ssyevdx_inplace_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_ssyevdx_inplace(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, info);
}
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_dsyevdx_inplace_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_dsyevdx_inplace(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, info);
}
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_cheevdx_inplace_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_cheevdx_inplace(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, info);
}
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_zheevdx_inplace_strided_batched(handle, evect, erange, uplo, n, A, lda, stA, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_zheevdx_inplace(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol,
nev, W, info);
}
// batched
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_ssyevdx_inplace_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_dsyevdx_inplace_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_cheevdx_inplace_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
inline rocblas_status rocsolver_syevdx_heevdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_zheevdx_inplace_batched(handle, evect, erange, uplo, n, A, lda, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
/********************************************************/
/******************** SYGV_HEGV ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_ssygv_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_ssygv(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_dsygv_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_dsygv(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_chegv_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_chegv(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_zhegv_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_zhegv(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
// batched
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssygv_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsygv_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_chegv_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
inline rocblas_status rocsolver_sygv_hegv(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zhegv_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
/********************************************************/
/******************** SYGVD_HEGVD ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_ssygvd_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_ssygvd(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_dsygvd_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_dsygvd(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_chegvd_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_chegvd(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_zhegvd_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, E, stE, info, bc);
else
return rocsolver_zhegvd(handle, itype, evect, uplo, n, A, lda, B, ldb, D, E, info);
}
// batched
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssygvd_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsygvd_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
float* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_chegvd_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
inline rocblas_status rocsolver_sygvd_hegvd(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
double* E,
rocblas_stride stE,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zhegvd_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, E, stE,
info, bc);
}
/********************************************************/
/******************** SYGVDJ_HEGVDJ ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_ssygvdj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, info, bc);
else
return rocsolver_ssygvdj(handle, itype, evect, uplo, n, A, lda, B, ldb, D, info);
}
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_dsygvdj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, info, bc);
else
return rocsolver_dsygvdj(handle, itype, evect, uplo, n, A, lda, B, ldb, D, info);
}
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_chegvdj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, info, bc);
else
return rocsolver_chegvdj(handle, itype, evect, uplo, n, A, lda, B, ldb, D, info);
}
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_zhegvdj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, D, stD, info, bc);
else
return rocsolver_zhegvdj(handle, itype, evect, uplo, n, A, lda, B, ldb, D, info);
}
// batched
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssygvdj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, info, bc);
}
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsygvdj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, info, bc);
}
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_chegvdj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, info, bc);
}
inline rocblas_status rocsolver_sygvdj_hegvdj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* D,
rocblas_stride stD,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zhegvdj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, D, stD, info, bc);
}
/********************************************************/
/******************** SYGVDX/HEGVDX ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssygvdx_strided_batched(handle, itype, evect, erange, uplo, n, A,
lda, stA, B, ldb, stB, vl, vu, il, iu, nev,
W, stW, Z, ldz, stZ, info, bc)
: rocsolver_ssygvdx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl,
vu, il, iu, nev, W, Z, ldz, info);
}
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsygvdx_strided_batched(handle, itype, evect, erange, uplo, n, A,
lda, stA, B, ldb, stB, vl, vu, il, iu, nev,
W, stW, Z, ldz, stZ, info, bc)
: rocsolver_dsygvdx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl,
vu, il, iu, nev, W, Z, ldz, info);
}
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_chegvdx_strided_batched(handle, itype, evect, erange, uplo, n, A,
lda, stA, B, ldb, stB, vl, vu, il, iu, nev,
W, stW, Z, ldz, stZ, info, bc)
: rocsolver_chegvdx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl,
vu, il, iu, nev, W, Z, ldz, info);
}
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zhegvdx_strided_batched(handle, itype, evect, erange, uplo, n, A,
lda, stA, B, ldb, stB, vl, vu, il, iu, nev,
W, stW, Z, ldz, stZ, info, bc)
: rocsolver_zhegvdx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl,
vu, il, iu, nev, W, Z, ldz, info);
}
// batched
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssygvdx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, nev, W, stW, Z, ldz, info, bc);
}
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsygvdx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, nev, W, stW, Z, ldz, info, bc);
}
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_chegvdx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, nev, W, stW, Z, ldz, info, bc);
}
inline rocblas_status rocsolver_sygvdx_hegvdx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zhegvdx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, nev, W, stW, Z, ldz, info, bc);
}
/********************************************************/
/******************** SYGVJ_HEGVJ ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_ssygvj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, abstol, residual, max_sweeps, n_sweeps, W, stW,
info, bc);
else
return rocsolver_ssygvj(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, info);
}
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_dsygvj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, abstol, residual, max_sweeps, n_sweeps, W, stW,
info, bc);
else
return rocsolver_dsygvj(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, info);
}
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_chegvj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, abstol, residual, max_sweeps, n_sweeps, W, stW,
info, bc);
else
return rocsolver_chegvj(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, info);
}
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return rocsolver_zhegvj_strided_batched(handle, itype, evect, uplo, n, A, lda, stA, B, ldb,
stB, abstol, residual, max_sweeps, n_sweeps, W, stW,
info, bc);
else
return rocsolver_zhegvj(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, info);
}
// batched
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssygvj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsygvj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float abstol,
float* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_chegvj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
inline rocblas_status rocsolver_sygvj_hegvj(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double abstol,
double* residual,
rocblas_int max_sweeps,
rocblas_int* n_sweeps,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zhegvj_batched(handle, itype, evect, uplo, n, A, lda, B, ldb, abstol, residual,
max_sweeps, n_sweeps, W, stW, info, bc);
}
/********************************************************/
/******************** SYGVX/HEGVX ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_ssygvx_strided_batched(handle, itype, evect, erange, uplo, n, A, lda,
stA, B, ldb, stB, vl, vu, il, iu, abstol, nev,
W, stW, Z, ldz, stZ, ifail, stF, info, bc)
: rocsolver_ssygvx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dsygvx_strided_batched(handle, itype, evect, erange, uplo, n, A, lda,
stA, B, ldb, stB, vl, vu, il, iu, abstol, nev,
W, stW, Z, ldz, stZ, ifail, stF, info, bc)
: rocsolver_dsygvx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_chegvx_strided_batched(handle, itype, evect, erange, uplo, n, A, lda,
stA, B, ldb, stB, vl, vu, il, iu, abstol, nev,
W, stW, Z, ldz, stZ, ifail, stF, info, bc)
: rocsolver_chegvx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, Z, ldz, ifail, info);
}
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* Z,
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zhegvx_strided_batched(handle, itype, evect, erange, uplo, n, A, lda,
stA, B, ldb, stB, vl, vu, il, iu, abstol, nev,
W, stW, Z, ldz, stZ, ifail, stF, info, bc)
: rocsolver_zhegvx(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, Z, ldz, ifail, info);
}
// batched
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
float* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_ssygvx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
double* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dsygvx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_float_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_chegvx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
inline rocblas_status rocsolver_sygvx_hegvx(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_double_complex* const Z[],
rocblas_int ldz,
rocblas_stride stZ,
rocblas_int* ifail,
rocblas_stride stF,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zhegvx_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, stW, Z, ldz, ifail, stF, info, bc);
}
/********************************************************/
/******************** SYGVX/HEGVX_INPLACE ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_ssygvdx_inplace_strided_batched(handle, itype, evect, erange, uplo, n, A, lda, stA, B, ldb, stB, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_ssygvdx_inplace(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, info);
}
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_dsygvdx_inplace_strided_batched(handle, itype, evect, erange, uplo, n, A, lda, stA, B, ldb, stB, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_dsygvdx_inplace(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, info);
}
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_chegvdx_inplace_strided_batched(handle, itype, evect, erange, uplo, n, A, lda, stA, B, ldb, stB, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_chegvdx_inplace(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, info);
}
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED
? rocblas_status_not_implemented // rocsolver_zhegvdx_inplace_strided_batched(handle, itype, evect, erange, uplo, n, A, lda, stA, B, ldb, stB, vl, vu, il, iu, abstol, nev, W, stW, info, bc)
: rocsolver_zhegvdx_inplace(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu,
il, iu, abstol, nev, W, info);
}
// batched
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
float abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_ssygvdx_inplace_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_dsygvdx_inplace_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
float vl,
float vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
float* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_chegvdx_inplace_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
inline rocblas_status rocsolver_sygvdx_hegvdx_inplace(bool STRIDED,
rocblas_handle handle,
rocblas_eform itype,
rocblas_evect evect,
rocblas_erange erange,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
double vl,
double vu,
rocblas_int il,
rocblas_int iu,
double abstol,
rocblas_int* nev,
double* W,
rocblas_stride stW,
rocblas_int* info,
rocblas_int bc)
{
return rocblas_status_not_implemented; // rocsolver_zhegvdx_inplace_batched(handle, itype, evect, erange, uplo, n, A, lda, B, ldb, vl, vu, il, iu, abstol, nev, W, stW, info, bc);
}
/********************************************************/
/******************** SYTF2_SYTRF ********************/
// normal and strided_batched
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return SYTRF
? rocsolver_ssytrf_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_ssytf2_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc);
else
return SYTRF ? rocsolver_ssytrf(handle, uplo, n, A, lda, ipiv, info)
: rocsolver_ssytf2(handle, uplo, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return SYTRF
? rocsolver_dsytrf_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_dsytf2_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc);
else
return SYTRF ? rocsolver_dsytrf(handle, uplo, n, A, lda, ipiv, info)
: rocsolver_dsytf2(handle, uplo, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return SYTRF
? rocsolver_csytrf_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_csytf2_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc);
else
return SYTRF ? rocsolver_csytrf(handle, uplo, n, A, lda, ipiv, info)
: rocsolver_csytf2(handle, uplo, n, A, lda, ipiv, info);
}
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
if(STRIDED)
return SYTRF
? rocsolver_zsytrf_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc)
: rocsolver_zsytf2_strided_batched(handle, uplo, n, A, lda, stA, ipiv, stP, info, bc);
else
return SYTRF ? rocsolver_zsytrf(handle, uplo, n, A, lda, ipiv, info)
: rocsolver_zsytf2(handle, uplo, n, A, lda, ipiv, info);
}
// batched
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return SYTRF ? rocsolver_ssytrf_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc)
: rocsolver_ssytf2_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return SYTRF ? rocsolver_dsytrf_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc)
: rocsolver_dsytf2_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return SYTRF ? rocsolver_csytrf_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc)
: rocsolver_csytf2_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc);
}
inline rocblas_status rocsolver_sytf2_sytrf(bool STRIDED,
bool SYTRF,
rocblas_handle handle,
rocblas_fill uplo,
rocblas_int n,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_int* ipiv,
rocblas_stride stP,
rocblas_int* info,
rocblas_int bc)
{
return SYTRF ? rocsolver_zsytrf_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc)
: rocsolver_zsytf2_batched(handle, uplo, n, A, lda, ipiv, stP, info, bc);
}
/********************************************************/
/******************** GEBLTTRF_NPVT ********************/
// normal and strided_batched
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_sgeblttrf_npvt_strided_batched(handle, nb, nblocks, A, lda, stA, B,
ldb, stB, C, ldc, stC, info, bc)
: rocsolver_sgeblttrf_npvt(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info);
}
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_dgeblttrf_npvt_strided_batched(handle, nb, nblocks, A, lda, stA, B,
ldb, stB, C, ldc, stC, info, bc)
: rocsolver_dgeblttrf_npvt(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info);
}
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_cgeblttrf_npvt_strided_batched(handle, nb, nblocks, A, lda, stA, B,
ldb, stB, C, ldc, stC, info, bc)
: rocsolver_cgeblttrf_npvt(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info);
}
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return STRIDED ? rocsolver_zgeblttrf_npvt_strided_batched(handle, nb, nblocks, A, lda, stA, B,
ldb, stB, C, ldc, stC, info, bc)
: rocsolver_zgeblttrf_npvt(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info);
}
// batched
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgeblttrf_npvt_batched(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info, bc);
}
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgeblttrf_npvt_batched(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info, bc);
}
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgeblttrf_npvt_batched(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info, bc);
}
inline rocblas_status rocsolver_geblttrf_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgeblttrf_npvt_batched(handle, nb, nblocks, A, lda, B, ldb, C, ldc, info, bc);
}
/********************************************************/
/******************** GEBLTTRF_NPVT_INTERLEAVED ********************/
// interleaved_batched
inline rocblas_status rocsolver_geblttrf_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
float* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
float* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_sgeblttrf_npvt_interleaved_batched(handle, nb, nblocks, A, inca, lda, stA, B,
incb, ldb, stB, C, incc, ldc, stC, info, bc);
}
inline rocblas_status rocsolver_geblttrf_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
double* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
double* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_dgeblttrf_npvt_interleaved_batched(handle, nb, nblocks, A, inca, lda, stA, B,
incb, ldb, stB, C, incc, ldc, stC, info, bc);
}
inline rocblas_status rocsolver_geblttrf_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_float_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_cgeblttrf_npvt_interleaved_batched(handle, nb, nblocks, A, inca, lda, stA, B,
incb, ldb, stB, C, incc, ldc, stC, info, bc);
}
inline rocblas_status rocsolver_geblttrf_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_double_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
rocblas_int* info,
rocblas_int bc)
{
return rocsolver_zgeblttrf_npvt_interleaved_batched(handle, nb, nblocks, A, inca, lda, stA, B,
incb, ldb, stB, C, incc, ldc, stC, info, bc);
}
/********************************************************/
/******************** GEBLTTRS_NPVT ********************/
// normal and strided_batched
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
float* A,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int ldb,
rocblas_stride stB,
float* C,
rocblas_int ldc,
rocblas_stride stC,
float* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return STRIDED
? rocsolver_sgeblttrs_npvt_strided_batched(handle, nb, nblocks, nrhs, A, lda, stA, B, ldb,
stB, C, ldc, stC, X, ldx, stX, bc)
: rocsolver_sgeblttrs_npvt(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X, ldx);
}
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
double* A,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int ldb,
rocblas_stride stB,
double* C,
rocblas_int ldc,
rocblas_stride stC,
double* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return STRIDED
? rocsolver_dgeblttrs_npvt_strided_batched(handle, nb, nblocks, nrhs, A, lda, stA, B, ldb,
stB, C, ldc, stC, X, ldx, stX, bc)
: rocsolver_dgeblttrs_npvt(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X, ldx);
}
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_float_complex* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return STRIDED
? rocsolver_cgeblttrs_npvt_strided_batched(handle, nb, nblocks, nrhs, A, lda, stA, B, ldb,
stB, C, ldc, stC, X, ldx, stX, bc)
: rocsolver_cgeblttrs_npvt(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X, ldx);
}
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* C,
rocblas_int ldc,
rocblas_stride stC,
rocblas_double_complex* X,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return STRIDED
? rocsolver_zgeblttrs_npvt_strided_batched(handle, nb, nblocks, nrhs, A, lda, stA, B, ldb,
stB, C, ldc, stC, X, ldx, stX, bc)
: rocsolver_zgeblttrs_npvt(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X, ldx);
}
// batched
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
float* const A[],
rocblas_int lda,
rocblas_stride stA,
float* const B[],
rocblas_int ldb,
rocblas_stride stB,
float* const C[],
rocblas_int ldc,
rocblas_stride stC,
float* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_sgeblttrs_npvt_batched(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X,
ldx, bc);
}
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
double* const A[],
rocblas_int lda,
rocblas_stride stA,
double* const B[],
rocblas_int ldb,
rocblas_stride stB,
double* const C[],
rocblas_int ldc,
rocblas_stride stC,
double* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_dgeblttrs_npvt_batched(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X,
ldx, bc);
}
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
rocblas_float_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_float_complex* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_cgeblttrs_npvt_batched(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X,
ldx, bc);
}
inline rocblas_status rocsolver_geblttrs_npvt(bool STRIDED,
rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
rocblas_double_complex* const A[],
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* const B[],
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* const C[],
rocblas_int ldc,
rocblas_stride stC,
rocblas_double_complex* const X[],
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_zgeblttrs_npvt_batched(handle, nb, nblocks, nrhs, A, lda, B, ldb, C, ldc, X,
ldx, bc);
}
/********************************************************/
/******************** GEBLTTRS_NPVT ********************/
// normal and strided_batched
inline rocblas_status rocsolver_geblttrs_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
float* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
float* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
float* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
float* X,
rocblas_int incx,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_sgeblttrs_npvt_interleaved_batched(handle, nb, nblocks, nrhs, A, inca, lda,
stA, B, incb, ldb, stB, C, incc, ldc, stC,
X, incx, ldx, stX, bc);
}
inline rocblas_status rocsolver_geblttrs_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
double* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
double* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
double* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
double* X,
rocblas_int incx,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_dgeblttrs_npvt_interleaved_batched(handle, nb, nblocks, nrhs, A, inca, lda,
stA, B, incb, ldb, stB, C, incc, ldc, stC,
X, incx, ldx, stX, bc);
}
inline rocblas_status rocsolver_geblttrs_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
rocblas_float_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
rocblas_float_complex* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
rocblas_float_complex* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
rocblas_float_complex* X,
rocblas_int incx,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_cgeblttrs_npvt_interleaved_batched(handle, nb, nblocks, nrhs, A, inca, lda,
stA, B, incb, ldb, stB, C, incc, ldc, stC,
X, incx, ldx, stX, bc);
}
inline rocblas_status rocsolver_geblttrs_npvt_interleaved(rocblas_handle handle,
rocblas_int nb,
rocblas_int nblocks,
rocblas_int nrhs,
rocblas_double_complex* A,
rocblas_int inca,
rocblas_int lda,
rocblas_stride stA,
rocblas_double_complex* B,
rocblas_int incb,
rocblas_int ldb,
rocblas_stride stB,
rocblas_double_complex* C,
rocblas_int incc,
rocblas_int ldc,
rocblas_stride stC,
rocblas_double_complex* X,
rocblas_int incx,
rocblas_int ldx,
rocblas_stride stX,
rocblas_int bc)
{
return rocsolver_zgeblttrs_npvt_interleaved_batched(handle, nb, nblocks, nrhs, A, inca, lda,
stA, B, incb, ldb, stB, C, incc, ldc, stC,
X, incx, ldx, stX, bc);
}
/********************************************************/
/*************** CREATE_ DESTROY_ RFINFO ****************/
// local rocsolver_rfinfo; automatically created and destroyed
class rocsolver_local_rfinfo
{
rocsolver_rfinfo l_rfinfo;
public:
rocsolver_local_rfinfo(rocblas_handle handle)
{
rocsolver_create_rfinfo(&l_rfinfo, handle);
}
~rocsolver_local_rfinfo()
{
rocsolver_destroy_rfinfo(l_rfinfo);
}
operator rocsolver_rfinfo&()
{
return l_rfinfo;
}
operator const rocsolver_rfinfo&() const
{
return l_rfinfo;
}
};
/******************** CSRRF_ANALYSIS ********************/
inline rocblas_status rocsolver_csrrf_analysis(rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_int nnzM,
rocblas_int* ptrM,
rocblas_int* indM,
float* valM,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
float* valT,
rocblas_int* pivP,
rocblas_int* pivQ,
float* B,
rocblas_int ldb,
rocsolver_rfinfo rfinfo)
{
return rocsolver_scsrrf_analysis(handle, n, nrhs, nnzM, ptrM, indM, valM, nnzT, ptrT, indT,
valT, pivP, pivQ, B, ldb, rfinfo);
}
inline rocblas_status rocsolver_csrrf_analysis(rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_int nnzM,
rocblas_int* ptrM,
rocblas_int* indM,
double* valM,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
double* valT,
rocblas_int* pivP,
rocblas_int* pivQ,
double* B,
rocblas_int ldb,
rocsolver_rfinfo rfinfo)
{
return rocsolver_dcsrrf_analysis(handle, n, nrhs, nnzM, ptrM, indM, valM, nnzT, ptrT, indT,
valT, pivP, pivQ, B, ldb, rfinfo);
}
/********************************************************/
/********************* CSRRF_SUMLU ************************/
inline rocblas_status rocsolver_csrrf_sumlu(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzL,
rocblas_int* ptrL,
rocblas_int* indL,
float* valL,
rocblas_int nnzU,
rocblas_int* ptrU,
rocblas_int* indU,
float* valU,
rocblas_int* ptrT,
rocblas_int* indT,
float* valT)
{
return rocsolver_scsrrf_sumlu(handle, n, nnzL, ptrL, indL, valL, nnzU, ptrU, indU, valU, ptrT,
indT, valT);
}
inline rocblas_status rocsolver_csrrf_sumlu(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzL,
rocblas_int* ptrL,
rocblas_int* indL,
double* valL,
rocblas_int nnzU,
rocblas_int* ptrU,
rocblas_int* indU,
double* valU,
rocblas_int* ptrT,
rocblas_int* indT,
double* valT)
{
return rocsolver_dcsrrf_sumlu(handle, n, nnzL, ptrL, indL, valL, nnzU, ptrU, indU, valU, ptrT,
indT, valT);
}
/********************************************************/
/********************* CSRRF_SPLITLU ************************/
inline rocblas_status rocsolver_csrrf_splitlu(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
float* valT,
rocblas_int* ptrL,
rocblas_int* indL,
float* valL,
rocblas_int* ptrU,
rocblas_int* indU,
float* valU)
{
return rocsolver_scsrrf_splitlu(handle, n, nnzT, ptrT, indT, valT, ptrL, indL, valL, ptrU, indU,
valU);
}
inline rocblas_status rocsolver_csrrf_splitlu(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
double* valT,
rocblas_int* ptrL,
rocblas_int* indL,
double* valL,
rocblas_int* ptrU,
rocblas_int* indU,
double* valU)
{
return rocsolver_dcsrrf_splitlu(handle, n, nnzT, ptrT, indT, valT, ptrL, indL, valL, ptrU, indU,
valU);
}
/********************************************************/
/********************* CSRRF_REFACTCHOL ************************/
inline rocblas_status rocsolver_csrrf_refactchol(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzA,
rocblas_int* ptrA,
rocblas_int* indA,
float* valA,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
float* valT,
rocblas_int* pivQ,
rocsolver_rfinfo rfinfo)
{
return rocsolver_scsrrf_refactchol(handle, n, nnzA, ptrA, indA, valA, nnzT, ptrT, indT, valT,
pivQ, rfinfo);
}
inline rocblas_status rocsolver_csrrf_refactchol(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzA,
rocblas_int* ptrA,
rocblas_int* indA,
double* valA,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
double* valT,
rocblas_int* pivQ,
rocsolver_rfinfo rfinfo)
{
return rocsolver_dcsrrf_refactchol(handle, n, nnzA, ptrA, indA, valA, nnzT, ptrT, indT, valT,
pivQ, rfinfo);
}
/********************* CSRRF_REFACTLU ************************/
inline rocblas_status rocsolver_csrrf_refactlu(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzA,
rocblas_int* ptrA,
rocblas_int* indA,
float* valA,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
float* valT,
rocblas_int* pivP,
rocblas_int* pivQ,
rocsolver_rfinfo rfinfo)
{
return rocsolver_scsrrf_refactlu(handle, n, nnzA, ptrA, indA, valA, nnzT, ptrT, indT, valT,
pivP, pivQ, rfinfo);
}
inline rocblas_status rocsolver_csrrf_refactlu(rocblas_handle handle,
rocblas_int n,
rocblas_int nnzA,
rocblas_int* ptrA,
rocblas_int* indA,
double* valA,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
double* valT,
rocblas_int* pivP,
rocblas_int* pivQ,
rocsolver_rfinfo rfinfo)
{
return rocsolver_dcsrrf_refactlu(handle, n, nnzA, ptrA, indA, valA, nnzT, ptrT, indT, valT,
pivP, pivQ, rfinfo);
}
/********************************************************/
/********************* CSRRF_SOLVE ************************/
inline rocblas_status rocsolver_csrrf_solve(rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
float* valT,
rocblas_int* pivP,
rocblas_int* pivQ,
float* B,
rocblas_int ldb,
rocsolver_rfinfo rfinfo)
{
return rocsolver_scsrrf_solve(handle, n, nrhs, nnzT, ptrT, indT, valT, pivP, pivQ, B, ldb,
rfinfo);
}
inline rocblas_status rocsolver_csrrf_solve(rocblas_handle handle,
rocblas_int n,
rocblas_int nrhs,
rocblas_int nnzT,
rocblas_int* ptrT,
rocblas_int* indT,
double* valT,
rocblas_int* pivP,
rocblas_int* pivQ,
double* B,
rocblas_int ldb,
rocsolver_rfinfo rfinfo)
{
return rocsolver_dcsrrf_solve(handle, n, nrhs, nnzT, ptrT, indT, valT, pivP, pivQ, B, ldb,
rfinfo);
}
/********************************************************/