PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
pbat::gpu::impl::math::Blas Class Reference

Public Member Functions

 Blas (cuda::device_t device=common::Device(common::EDeviceSelectionPreference::HighestComputeCapability))
 
 Blas (Blas const &)=delete
 
 Blas (Blas &&)=delete
 
Blasoperator= (Blas const &)=delete
 
Blasoperator= (Blas &&)=delete
 
cublasHandle_t Handle () const
 
template<CVector TVectorX, CVector TVectorY, class TScalar = TVectorX::ValueType>
void Copy (TVectorX const &x, TVectorY &y, std::shared_ptr< cuda::stream_t > stream=nullptr) const
 
template<CVector TVectorX, CVector TVectorY, class TScalar = TVectorX::ValueType>
void Axpy (TVectorX const &x, TVectorY &y, TScalar alpha=TScalar(1), std::shared_ptr< cuda::stream_t > stream=nullptr)
 
template<CMatrix TMatrixA, CVector TVectorX, CVector TVectorY, class TScalar = TMatrixA::ValueType>
void Gemv (TMatrixA const &A, TVectorX const &x, TVectorY &y, TScalar alpha=TScalar(1), TScalar beta=TScalar(0), std::shared_ptr< cuda::stream_t > stream=nullptr) const
 
template<CMatrix TMatrixA, CMatrix TMatrixB, class TScalar = TMatrixA::ValueType>
void UpperTriangularSolve (TMatrixA const &A, TMatrixB &B, TScalar alpha=TScalar(1), bool bHasUnitDiagonal=false, std::shared_ptr< cuda::stream_t > stream=nullptr) const
 
template<CMatrix TMatrixA, CMatrix TMatrixB, class TScalar = TMatrixA::ValueType>
void LowerTriangularSolve (TMatrixA const &A, TMatrixB &B, TScalar alpha=TScalar(1), bool bHasUnitDiagonal=false, std::shared_ptr< cuda::stream_t > stream=nullptr) const
 
template<CMatrix TMatrixA, CVector TVectorB, class TScalar = TMatrixA::ValueType>
void UpperTriangularSolve (TMatrixA const &A, TVectorB &B, TScalar alpha=TScalar(1), bool bHasUnitDiagonal=false, std::shared_ptr< cuda::stream_t > stream=nullptr) const
 
template<CMatrix TMatrixA, CVector TVectorB, class TScalar = TMatrixA::ValueType>
void LowerTriangularSolve (TMatrixA const &A, TVectorB &B, TScalar alpha=TScalar(1), bool bHasUnitDiagonal=false, std::shared_ptr< cuda::stream_t > stream=nullptr) const
 
template<CMatrix TMatrixA, CMatrix TMatrixB, class TScalar = TMatrixA::ValueType>
void Trsm (cublasSideMode_t side, cublasFillMode_t uplo, cublasDiagType_t diag, TMatrixA const &A, TMatrixB &B, TScalar alpha=TScalar(1), std::shared_ptr< cuda::stream_t > stream=nullptr) const
 

Protected Member Functions

void TrySetStream (std::shared_ptr< cuda::stream_t > stream) const
 

The documentation for this class was generated from the following files: