InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
infini::ops::linalg::Pinv Class Referenceabstract

#include <linalg_pinv.h>

Inheritance diagram for infini::ops::linalg::Pinv:
infini::ops::Operator< Pinv > infini::ops::OperatorBase infini::ops::OperatorBase

Public Member Functions

 Pinv (const Tensor input, const double rcond, const bool hermitian, Tensor out)
 
 Pinv (const Tensor input, const std::optional< Tensor > atol, const std::optional< Tensor > rtol, const bool hermitian, Tensor out)
 
 Pinv (const Tensor input, const std::optional< double > atol, const std::optional< double > rtol, const bool hermitian, Tensor out)
 
 Pinv (const Tensor input, const Tensor rcond, const bool hermitian, Tensor out)
 
virtual void operator() (const Tensor input, const double rcond, const bool hermitian, Tensor out) const =0
 
virtual void operator() (const Tensor input, const std::optional< Tensor > atol, const std::optional< Tensor > rtol, const bool hermitian, Tensor out) const =0
 
virtual void operator() (const Tensor input, const std::optional< double > atol, const std::optional< double > rtol, const bool hermitian, Tensor out) const =0
 
virtual void operator() (const Tensor input, const Tensor rcond, const bool hermitian, Tensor out) const =0
 
- Public Member Functions inherited from infini::ops::Operator< Pinv >
void operator() (const Handle &handle, const Args &... args)
 
void operator() (const Args &... args) const
 
void operator() (const Handle &handle, const Args &... args)
 
void operator() (const Args &... args) const
 
- Public Member Functions inherited from infini::ops::OperatorBase
virtual ~OperatorBase ()=default
 
virtual std::size_t workspace_size_in_bytes () const
 
void set_handle (const Handle &handle)
 
void set_config (const Config &config)
 
void set_stream (void *stream)
 
void set_workspace (void *workspace)
 
void set_workspace_size_in_bytes (std::size_t workspace_size_in_bytes)
 
virtual ~OperatorBase ()=default
 
virtual std::size_t workspace_size_in_bytes () const
 
void set_handle (const Handle &handle)
 
void set_config (const Config &config)
 
void set_stream (void *stream)
 
void set_workspace (void *workspace)
 
void set_workspace_size_in_bytes (std::size_t workspace_size_in_bytes)
 

Protected Attributes

Tensor::Shape input_shape_
 
Tensor::Strides input_strides_
 
DataType input_type_
 
Tensor::Shape out_shape_
 
Tensor::Strides out_strides_
 
DataType out_type_
 
double rcond_ {}
 
bool hermitian_ {}
 
bool has_atol_ {false}
 
Tensor::Shape atol_shape_
 
Tensor::Strides atol_strides_
 
DataType atol_type_ {DataType::kFloat32}
 
bool has_rtol_ {false}
 
Tensor::Shape rtol_shape_
 
Tensor::Strides rtol_strides_
 
DataType rtol_type_ {DataType::kFloat32}
 
std::optional< double > atol_ {}
 
std::optional< double > rtol_ {}
 
Tensor::Shape rcond_shape_
 
Tensor::Strides rcond_strides_
 
DataType rcond_type_
 
int device_index_ {0}
 
- Protected Attributes inherited from infini::ops::OperatorBase
std::unique_ptr< Handle > handle_ptr_
 
std::unique_ptr< Config > config_ptr_
 
void * stream_ {nullptr}
 
void * workspace_ {nullptr}
 
std::size_t workspace_size_in_bytes_ {0}
 

Additional Inherited Members

- Static Public Member Functions inherited from infini::ops::Operator< Pinv >
static void clear_cache ()
 
static void clear_cache ()
 
static std::unique_ptr< Operator > Make (const Config &config, const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Config &config, const std::vector< Tensor > tensors, Args &&... args)
 
static std::unique_ptr< Operator > Make (const std::vector< Tensor > tensors, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Config &config, const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Tensor tensor, Args &&... args)
 
static std::unique_ptr< Operator > Make (const Config &config, const std::vector< Tensor > tensors, Args &&... args)
 
static std::unique_ptr< Operator > Make (const std::vector< Tensor > tensors, Args &&... args)
 
static void Call (const Handle &handle, const Config &config, const Args &... args)
 
static void Call (const Tensor tensor, const Args &... args)
 
static auto Call (const TensorLike &tensor, const Args &... args)
 
static void Call (const Handle &handle, const Config &config, const Args &... args)
 
static void Call (const Tensor tensor, const Args &... args)
 
static auto Call (const TensorLike &tensor, const Args &... args)
 
static std::vector< std::size_t > active_implementation_indices (Device::Type dev_type)
 
static std::vector< std::size_t > active_implementation_indices (Device::Type dev_type)
 
- Static Protected Attributes inherited from infini::ops::Operator< Pinv >
static constexpr Device::Type device_type_
 
static constexpr std::size_t implementation_index_
 

Constructor & Destructor Documentation

◆ Pinv() [1/4]

infini::ops::linalg::Pinv::Pinv ( const Tensor  input,
const double  rcond,
const bool  hermitian,
Tensor  out 
)
inline

◆ Pinv() [2/4]

infini::ops::linalg::Pinv::Pinv ( const Tensor  input,
const std::optional< Tensor >  atol,
const std::optional< Tensor >  rtol,
const bool  hermitian,
Tensor  out 
)
inline

◆ Pinv() [3/4]

infini::ops::linalg::Pinv::Pinv ( const Tensor  input,
const std::optional< double >  atol,
const std::optional< double >  rtol,
const bool  hermitian,
Tensor  out 
)
inline

◆ Pinv() [4/4]

infini::ops::linalg::Pinv::Pinv ( const Tensor  input,
const Tensor  rcond,
const bool  hermitian,
Tensor  out 
)
inline

Member Function Documentation

◆ operator()() [1/4]

virtual void infini::ops::linalg::Pinv::operator() ( const Tensor  input,
const double  rcond,
const bool  hermitian,
Tensor  out 
) const
pure virtual

◆ operator()() [2/4]

virtual void infini::ops::linalg::Pinv::operator() ( const Tensor  input,
const std::optional< double >  atol,
const std::optional< double >  rtol,
const bool  hermitian,
Tensor  out 
) const
pure virtual

◆ operator()() [3/4]

virtual void infini::ops::linalg::Pinv::operator() ( const Tensor  input,
const std::optional< Tensor >  atol,
const std::optional< Tensor >  rtol,
const bool  hermitian,
Tensor  out 
) const
pure virtual

◆ operator()() [4/4]

virtual void infini::ops::linalg::Pinv::operator() ( const Tensor  input,
const Tensor  rcond,
const bool  hermitian,
Tensor  out 
) const
pure virtual

Member Data Documentation

◆ atol_

std::optional<double> infini::ops::linalg::Pinv::atol_ {}
protected

◆ atol_shape_

Tensor::Shape infini::ops::linalg::Pinv::atol_shape_
protected

◆ atol_strides_

Tensor::Strides infini::ops::linalg::Pinv::atol_strides_
protected

◆ atol_type_

DataType infini::ops::linalg::Pinv::atol_type_ {DataType::kFloat32}
protected

◆ device_index_

int infini::ops::linalg::Pinv::device_index_ {0}
protected

◆ has_atol_

bool infini::ops::linalg::Pinv::has_atol_ {false}
protected

◆ has_rtol_

bool infini::ops::linalg::Pinv::has_rtol_ {false}
protected

◆ hermitian_

bool infini::ops::linalg::Pinv::hermitian_ {}
protected

◆ input_shape_

Tensor::Shape infini::ops::linalg::Pinv::input_shape_
protected

◆ input_strides_

Tensor::Strides infini::ops::linalg::Pinv::input_strides_
protected

◆ input_type_

DataType infini::ops::linalg::Pinv::input_type_
protected

◆ out_shape_

Tensor::Shape infini::ops::linalg::Pinv::out_shape_
protected

◆ out_strides_

Tensor::Strides infini::ops::linalg::Pinv::out_strides_
protected

◆ out_type_

DataType infini::ops::linalg::Pinv::out_type_
protected

◆ rcond_

double infini::ops::linalg::Pinv::rcond_ {}
protected

◆ rcond_shape_

Tensor::Shape infini::ops::linalg::Pinv::rcond_shape_
protected

◆ rcond_strides_

Tensor::Strides infini::ops::linalg::Pinv::rcond_strides_
protected

◆ rcond_type_

DataType infini::ops::linalg::Pinv::rcond_type_
protected

◆ rtol_

std::optional<double> infini::ops::linalg::Pinv::rtol_ {}
protected

◆ rtol_shape_

Tensor::Shape infini::ops::linalg::Pinv::rtol_shape_
protected

◆ rtol_strides_

Tensor::Strides infini::ops::linalg::Pinv::rtol_strides_
protected

◆ rtol_type_

DataType infini::ops::linalg::Pinv::rtol_type_ {DataType::kFloat32}
protected

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