Open3D (C++ API)  0.13.0
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Namespaces | Data Structures | Typedefs | Enumerations | Functions | Variables
open3d::core Namespace Reference

Namespaces

 cuda
 
 eigen_converter
 
 kernel
 
 nns
 
 shape_util
 
 tensor_init
 

Data Structures

class  AdvancedIndexer
 
class  AdvancedIndexPreprocessor
 This class is based on PyTorch's aten/src/ATen/native/Indexing.cpp. More...
 
class  Blob
 
class  Block
 
struct  BlockHash
 
class  CPUHashmapBufferAccessor
 
class  CPUMemoryManager
 
class  CUDAHashmapBufferAccessor
 
class  Device
 
class  DeviceHashmap
 
class  DeviceMemoryManager
 
class  Dtype
 
class  DynamicSizeVector
 
struct  FunctionTraits
 
class  Hashmap
 
class  HashmapBuffer
 
class  Indexer
 
class  IndexerIterator
 
struct  iterator_t
 
class  MemoryManager
 
class  NumpyArray
 
struct  OffsetCalculator
 
class  Open3DDLManagedTensor
 Open3D DLPack Tensor manager. More...
 
struct  Pair
 
class  Scalar
 
class  SizeVector
 
class  Slab
 
class  SlabHashmap
 
class  SlabHashmapImpl
 
class  SlabNodeManager
 
class  SlabNodeManagerImpl
 
struct  SmallArray
 
class  StdGPUHashmap
 
class  TBBHashmap
 
class  Tensor
 
class  TensorIterator
 
class  TensorKey
 TensorKey is used to represent single index, slice or advanced indexing on a Tensor. More...
 
class  TensorList
 
struct  TensorRef
 A minimalistic class that reference a Tensor. More...
 
struct  ValueExtractor
 

Typedefs

typedef uint32_t addr_t
 

Enumerations

enum  HashmapBackend { HashmapBackend::Slab, HashmapBackend::StdGPU, HashmapBackend::TBB, HashmapBackend::Default }
 
enum  DtypePolicy { DtypePolicy::NONE, DtypePolicy::ALL_SAME, DtypePolicy::INPUT_SAME, DtypePolicy::INPUT_SAME_OUTPUT_BOOL }
 

Functions

uint32_t AtomicFetchAddRelaxed (uint32_t *address, uint32_t val)
 
uint64_t AtomicFetchAddRelaxed (uint64_t *address, uint64_t val)
 
std::shared_ptr< DeviceHashmapCreateCPUHashmap (int64_t init_capacity, const Dtype &dtype_key, const Dtype &dtype_value, const SizeVector &element_shape_key, const SizeVector &element_shape_value, const Device &device, const HashmapBackend &backend)
 Non-templated factory. More...
 
__global__ void ResetHashmapBufferKernel (addr_t *heap, int64_t capacity)
 
template<typename Key , typename Hash >
__global__ void InsertKernelPass0 (SlabHashmapImpl< Key, Hash > impl, const void *input_keys, addr_t *output_addrs, int heap_counter_prev, int64_t count)
 Kernels. More...
 
template<typename Key , typename Hash >
__global__ void InsertKernelPass1 (SlabHashmapImpl< Key, Hash > impl, const void *input_keys, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void InsertKernelPass2 (SlabHashmapImpl< Key, Hash > impl, const void *input_values, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void FindKernel (SlabHashmapImpl< Key, Hash > impl, const void *input_keys, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void EraseKernelPass0 (SlabHashmapImpl< Key, Hash > impl, const void *input_keys, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void EraseKernelPass1 (SlabHashmapImpl< Key, Hash > impl, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void GetActiveIndicesKernel (SlabHashmapImpl< Key, Hash > impl, addr_t *output_addrs, uint32_t *output_iterator_count)
 
template<typename Key , typename Hash >
__global__ void CountElemsPerBucketKernel (SlabHashmapImpl< Key, Hash > impl, int64_t *bucket_elem_counts)
 
__global__ void CountSlabsPerSuperblockKernel (SlabNodeManagerImpl impl, uint32_t *slabs_per_superblock)
 
template<typename First , typename Second >
OPEN3D_HOST_DEVICE Pair< First, Second > make_pair (const First &_first, const Second &_second)
 
template<typename Key , typename Hash >
__global__ void STDGPUFindKernel (stdgpu::unordered_map< Key, addr_t, Hash > map, CUDAHashmapBufferAccessor buffer_accessor, const Key *input_keys, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void STDGPUEraseKernel (stdgpu::unordered_map< Key, addr_t, Hash > map, CUDAHashmapBufferAccessor buffer_accessor, const Key *input_keys, addr_t *output_addrs, bool *output_masks, int64_t count)
 
template<typename Key , typename Hash >
__global__ void STDGPUInsertKernel (stdgpu::unordered_map< Key, addr_t, Hash > map, CUDAHashmapBufferAccessor buffer_accessor, const Key *input_keys, const void *input_values, int64_t dsize_value, addr_t *output_addrs, bool *output_masks, int64_t count)
 
std::shared_ptr< DeviceHashmapCreateDeviceHashmap (int64_t init_capacity, const Dtype &dtype_key, const Dtype &dtype_value, const SizeVector &element_shape_key, const SizeVector &element_shape_value, const Device &device, const HashmapBackend &backend)
 
std::shared_ptr< DeviceHashmapCreateCUDAHashmap (int64_t init_capacity, const Dtype &dtype_key, const Dtype &dtype_value, const SizeVector &element_shape_key, const SizeVector &element_shape_value, const Device &device, const HashmapBackend &backend)
 
template<typename scalar_t >
void gemm_cpu (CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans_A, CBLAS_TRANSPOSE trans_B, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT k, scalar_t alpha, const scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, const scalar_t *B_data, OPEN3D_CPU_LINALG_INT ldb, scalar_t beta, scalar_t *C_data, OPEN3D_CPU_LINALG_INT ldc)
 
template<>
void gemm_cpu< float > (CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans_A, CBLAS_TRANSPOSE trans_B, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT k, float alpha, const float *A_data, OPEN3D_CPU_LINALG_INT lda, const float *B_data, OPEN3D_CPU_LINALG_INT ldb, float beta, float *C_data, OPEN3D_CPU_LINALG_INT ldc)
 
template<>
void gemm_cpu< double > (CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans_A, CBLAS_TRANSPOSE trans_B, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT k, double alpha, const double *A_data, OPEN3D_CPU_LINALG_INT lda, const double *B_data, OPEN3D_CPU_LINALG_INT ldb, double beta, double *C_data, OPEN3D_CPU_LINALG_INT ldc)
 
double Det (const Tensor &A)
 
void Inverse (const Tensor &A, Tensor &output)
 Computes A^{-1} with LU factorization, where A is a N x N square matrix. More...
 
void InverseCPU (void *A_data, void *ipiv_data, void *output_data, int64_t n, Dtype dtype, const Device &device)
 
void InverseCUDA (void *A_data, void *ipiv_data, void *output_data, int64_t n, Dtype dtype, const Device &device)
 
template<typename scalar_t >
OPEN3D_CPU_LINALG_INT getrf_cpu (int layout, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
 
template<typename scalar_t >
OPEN3D_CPU_LINALG_INT getri_cpu (int layout, OPEN3D_CPU_LINALG_INT n, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
 
template<typename scalar_t >
OPEN3D_CPU_LINALG_INT gesv_cpu (int layout, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT m, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data, scalar_t *B_data, OPEN3D_CPU_LINALG_INT ldb)
 
template<typename scalar_t >
OPEN3D_CPU_LINALG_INT gels_cpu (int matrix_layout, char trans, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT nrhs, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, scalar_t *B_data, OPEN3D_CPU_LINALG_INT ldb)
 
template<typename scalar_t >
OPEN3D_CPU_LINALG_INT gesvd_cpu (int matrix_layout, char jobu, char jobvt, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, scalar_t *S_data, scalar_t *U_data, OPEN3D_CPU_LINALG_INT ldu, scalar_t *VT_data, OPEN3D_CPU_LINALG_INT ldvt, scalar_t *superb)
 
template<>
OPEN3D_CPU_LINALG_INT getrf_cpu< float > (int layout, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, float *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
 
template<>
OPEN3D_CPU_LINALG_INT getrf_cpu< double > (int layout, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, double *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
 
template<>
OPEN3D_CPU_LINALG_INT getri_cpu< float > (int layout, OPEN3D_CPU_LINALG_INT n, float *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
 
template<>
OPEN3D_CPU_LINALG_INT getri_cpu< double > (int layout, OPEN3D_CPU_LINALG_INT n, double *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data)
 
template<>
OPEN3D_CPU_LINALG_INT gesv_cpu< float > (int layout, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT m, float *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data, float *B_data, OPEN3D_CPU_LINALG_INT ldb)
 
template<>
OPEN3D_CPU_LINALG_INT gesv_cpu< double > (int layout, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT m, double *A_data, OPEN3D_CPU_LINALG_INT lda, OPEN3D_CPU_LINALG_INT *ipiv_data, double *B_data, OPEN3D_CPU_LINALG_INT ldb)
 
template<>
OPEN3D_CPU_LINALG_INT gels_cpu< float > (int layout, char trans, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT nrhs, float *A_data, OPEN3D_CPU_LINALG_INT lda, float *B_data, OPEN3D_CPU_LINALG_INT ldb)
 
template<>
OPEN3D_CPU_LINALG_INT gels_cpu< double > (int layout, char trans, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT nrhs, double *A_data, OPEN3D_CPU_LINALG_INT lda, double *B_data, OPEN3D_CPU_LINALG_INT ldb)
 
template<>
OPEN3D_CPU_LINALG_INT gesvd_cpu< float > (int layout, char jobu, char jobvt, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, float *A_data, OPEN3D_CPU_LINALG_INT lda, float *S_data, float *U_data, OPEN3D_CPU_LINALG_INT ldu, float *VT_data, OPEN3D_CPU_LINALG_INT ldvt, float *superb)
 
template<>
OPEN3D_CPU_LINALG_INT gesvd_cpu< double > (int layout, char jobu, char jobvt, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, double *A_data, OPEN3D_CPU_LINALG_INT lda, double *S_data, double *U_data, OPEN3D_CPU_LINALG_INT ldu, double *VT_data, OPEN3D_CPU_LINALG_INT ldvt, double *superb)
 
void LeastSquares (const Tensor &A, const Tensor &B, Tensor &X)
 Solve AX = B with QR decomposition. A is a full-rank m x n matrix (m >= n). More...
 
void LeastSquaresCPU (void *A_data, void *B_data, int64_t m, int64_t n, int64_t k, Dtype dtype, const Device &device)
 
void LeastSquaresCUDA (void *A_data, void *B_data, int64_t m, int64_t n, int64_t k, Dtype dtype, const Device &device)
 
void OPEN3D_LAPACK_CHECK (OPEN3D_CPU_LINALG_INT info, const std::string &msg)
 
void LUIpiv (const Tensor &A, Tensor &ipiv, Tensor &output)
 
void LU (const Tensor &A, Tensor &permutation, Tensor &lower, Tensor &upper, const bool permute_l)
 
void LUCPU (void *A_data, void *ipiv_data, int64_t rows, int64_t cols, Dtype dtype, const Device &device)
 
void LUCUDA (void *A_data, void *ipiv_data, int64_t rows, int64_t cols, Dtype dtype, const Device &device)
 
void Matmul (const Tensor &A, const Tensor &B, Tensor &C)
 Computes matrix multiplication C = AB. More...
 
void MatmulCPU (void *A_data, void *B_data, void *C_data, int64_t m, int64_t k, int64_t n, Dtype dtype)
 
void MatmulCUDA (void *A_data, void *B_data, void *C_data, int64_t m, int64_t k, int64_t n, Dtype dtype)
 
void Solve (const Tensor &A, const Tensor &B, Tensor &X)
 Solve AX = B with LU decomposition. A is a square matrix. More...
 
void SolveCPU (void *A_data, void *B_data, void *ipiv_data, int64_t n, int64_t k, Dtype dtype, const Device &device)
 
void SolveCUDA (void *A_data, void *B_data, void *ipiv_data, int64_t n, int64_t k, Dtype dtype, const Device &device)
 
void SVD (const Tensor &A, Tensor &U, Tensor &S, Tensor &VT)
 
void SVDCPU (const void *A_data, void *U_data, void *S_data, void *VT_data, void *superb_data, int64_t m, int64_t n, Dtype dtype, const Device &device)
 
void SVDCUDA (const void *A_data, void *U_data, void *S_data, void *VT_data, void *superb_data, int64_t m, int64_t n, Dtype dtype, const Device &device)
 
void Triu (const Tensor &A, Tensor &output, const int diagonal)
 
void Tril (const Tensor &A, Tensor &output, const int diagonal)
 
void Triul (const Tensor &A, Tensor &upper, Tensor &lower, const int diagonal)
 
void TriuCPU (const Tensor &A, Tensor &output, const int diagonal)
 
void TrilCPU (const Tensor &A, Tensor &output, const int diagonal)
 
void TriulCPU (const Tensor &A, Tensor &upper, Tensor &lower, const int diagonal)
 
template<typename T >
Tensor operator+ (T scalar_lhs, const Tensor &rhs)
 
template<typename T >
Tensor operator- (T scalar_lhs, const Tensor &rhs)
 
template<typename T >
Tensor operator* (T scalar_lhs, const Tensor &rhs)
 
template<typename T >
Tensor operator/ (T scalar_lhs, const Tensor &rhs)
 

Variables

constexpr utility::nullopt_t None {utility::nullopt_t::init()}
 

Typedef Documentation

◆ addr_t

typedef uint32_t open3d::core::addr_t

Enumeration Type Documentation

◆ DtypePolicy

Enumerator
NONE 
ALL_SAME 
INPUT_SAME 
INPUT_SAME_OUTPUT_BOOL 

◆ HashmapBackend

Enumerator
Slab 
StdGPU 
TBB 
Default 

Function Documentation

◆ AtomicFetchAddRelaxed() [1/2]

uint32_t open3d::core::AtomicFetchAddRelaxed ( uint32_t *  address,
uint32_t  val 
)
inline

◆ AtomicFetchAddRelaxed() [2/2]

uint64_t open3d::core::AtomicFetchAddRelaxed ( uint64_t *  address,
uint64_t  val 
)
inline

◆ CountElemsPerBucketKernel()

template<typename Key , typename Hash >
__global__ void open3d::core::CountElemsPerBucketKernel ( SlabHashmapImpl< Key, Hash >  impl,
int64_t *  bucket_elem_counts 
)

◆ CountSlabsPerSuperblockKernel()

__global__ void open3d::core::CountSlabsPerSuperblockKernel ( SlabNodeManagerImpl  impl,
uint32_t *  slabs_per_superblock 
)

◆ CreateCPUHashmap()

std::shared_ptr< DeviceHashmap > open3d::core::CreateCPUHashmap ( int64_t  init_capacity,
const Dtype dtype_key,
const Dtype dtype_value,
const SizeVector element_shape_key,
const SizeVector element_shape_value,
const Device device,
const HashmapBackend backend 
)

Non-templated factory.

◆ CreateCUDAHashmap()

std::shared_ptr<DeviceHashmap> open3d::core::CreateCUDAHashmap ( int64_t  init_capacity,
const Dtype dtype_key,
const Dtype dtype_value,
const SizeVector element_shape_key,
const SizeVector element_shape_value,
const Device device,
const HashmapBackend backend 
)

◆ CreateDeviceHashmap()

std::shared_ptr< DeviceHashmap > open3d::core::CreateDeviceHashmap ( int64_t  init_capacity,
const Dtype dtype_key,
const Dtype dtype_value,
const SizeVector element_shape_key,
const SizeVector element_shape_value,
const Device device,
const HashmapBackend backend 
)

Factory functions:

◆ Det()

double open3d::core::Det ( const Tensor A)

◆ EraseKernelPass0()

template<typename Key , typename Hash >
__global__ void open3d::core::EraseKernelPass0 ( SlabHashmapImpl< Key, Hash >  impl,
const void *  input_keys,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ EraseKernelPass1()

template<typename Key , typename Hash >
__global__ void open3d::core::EraseKernelPass1 ( SlabHashmapImpl< Key, Hash >  impl,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ FindKernel()

template<typename Key , typename Hash >
__global__ void open3d::core::FindKernel ( SlabHashmapImpl< Key, Hash >  impl,
const void *  input_keys,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ gels_cpu()

template<typename scalar_t >
OPEN3D_CPU_LINALG_INT open3d::core::gels_cpu ( int  matrix_layout,
char  trans,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  nrhs,
scalar_t *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
scalar_t *  B_data,
OPEN3D_CPU_LINALG_INT  ldb 
)
inline

◆ gels_cpu< double >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::gels_cpu< double > ( int  layout,
char  trans,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  nrhs,
double *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
double *  B_data,
OPEN3D_CPU_LINALG_INT  ldb 
)
inline

◆ gels_cpu< float >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::gels_cpu< float > ( int  layout,
char  trans,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  nrhs,
float *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
float *  B_data,
OPEN3D_CPU_LINALG_INT  ldb 
)
inline

◆ gemm_cpu()

template<typename scalar_t >
void open3d::core::gemm_cpu ( CBLAS_LAYOUT  layout,
CBLAS_TRANSPOSE  trans_A,
CBLAS_TRANSPOSE  trans_B,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  k,
scalar_t  alpha,
const scalar_t *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
const scalar_t *  B_data,
OPEN3D_CPU_LINALG_INT  ldb,
scalar_t  beta,
scalar_t *  C_data,
OPEN3D_CPU_LINALG_INT  ldc 
)
inline

◆ gemm_cpu< double >()

template<>
void open3d::core::gemm_cpu< double > ( CBLAS_LAYOUT  layout,
CBLAS_TRANSPOSE  trans_A,
CBLAS_TRANSPOSE  trans_B,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  k,
double  alpha,
const double *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
const double *  B_data,
OPEN3D_CPU_LINALG_INT  ldb,
double  beta,
double *  C_data,
OPEN3D_CPU_LINALG_INT  ldc 
)
inline

◆ gemm_cpu< float >()

template<>
void open3d::core::gemm_cpu< float > ( CBLAS_LAYOUT  layout,
CBLAS_TRANSPOSE  trans_A,
CBLAS_TRANSPOSE  trans_B,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  k,
float  alpha,
const float *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
const float *  B_data,
OPEN3D_CPU_LINALG_INT  ldb,
float  beta,
float *  C_data,
OPEN3D_CPU_LINALG_INT  ldc 
)
inline

◆ gesv_cpu()

template<typename scalar_t >
OPEN3D_CPU_LINALG_INT open3d::core::gesv_cpu ( int  layout,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  m,
scalar_t *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data,
scalar_t *  B_data,
OPEN3D_CPU_LINALG_INT  ldb 
)
inline

◆ gesv_cpu< double >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::gesv_cpu< double > ( int  layout,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  m,
double *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data,
double *  B_data,
OPEN3D_CPU_LINALG_INT  ldb 
)
inline

◆ gesv_cpu< float >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::gesv_cpu< float > ( int  layout,
OPEN3D_CPU_LINALG_INT  n,
OPEN3D_CPU_LINALG_INT  m,
float *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data,
float *  B_data,
OPEN3D_CPU_LINALG_INT  ldb 
)
inline

◆ gesvd_cpu()

template<typename scalar_t >
OPEN3D_CPU_LINALG_INT open3d::core::gesvd_cpu ( int  matrix_layout,
char  jobu,
char  jobvt,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
scalar_t *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
scalar_t *  S_data,
scalar_t *  U_data,
OPEN3D_CPU_LINALG_INT  ldu,
scalar_t *  VT_data,
OPEN3D_CPU_LINALG_INT  ldvt,
scalar_t *  superb 
)
inline

◆ gesvd_cpu< double >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::gesvd_cpu< double > ( int  layout,
char  jobu,
char  jobvt,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
double *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
double *  S_data,
double *  U_data,
OPEN3D_CPU_LINALG_INT  ldu,
double *  VT_data,
OPEN3D_CPU_LINALG_INT  ldvt,
double *  superb 
)
inline

◆ gesvd_cpu< float >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::gesvd_cpu< float > ( int  layout,
char  jobu,
char  jobvt,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
float *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
float *  S_data,
float *  U_data,
OPEN3D_CPU_LINALG_INT  ldu,
float *  VT_data,
OPEN3D_CPU_LINALG_INT  ldvt,
float *  superb 
)
inline

◆ GetActiveIndicesKernel()

template<typename Key , typename Hash >
__global__ void open3d::core::GetActiveIndicesKernel ( SlabHashmapImpl< Key, Hash >  impl,
addr_t output_addrs,
uint32_t *  output_iterator_count 
)

◆ getrf_cpu()

template<typename scalar_t >
OPEN3D_CPU_LINALG_INT open3d::core::getrf_cpu ( int  layout,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
scalar_t *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data 
)
inline

◆ getrf_cpu< double >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::getrf_cpu< double > ( int  layout,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
double *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data 
)
inline

◆ getrf_cpu< float >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::getrf_cpu< float > ( int  layout,
OPEN3D_CPU_LINALG_INT  m,
OPEN3D_CPU_LINALG_INT  n,
float *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data 
)
inline

◆ getri_cpu()

template<typename scalar_t >
OPEN3D_CPU_LINALG_INT open3d::core::getri_cpu ( int  layout,
OPEN3D_CPU_LINALG_INT  n,
scalar_t *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data 
)
inline

◆ getri_cpu< double >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::getri_cpu< double > ( int  layout,
OPEN3D_CPU_LINALG_INT  n,
double *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data 
)
inline

◆ getri_cpu< float >()

template<>
OPEN3D_CPU_LINALG_INT open3d::core::getri_cpu< float > ( int  layout,
OPEN3D_CPU_LINALG_INT  n,
float *  A_data,
OPEN3D_CPU_LINALG_INT  lda,
OPEN3D_CPU_LINALG_INT ipiv_data 
)
inline

◆ InsertKernelPass0()

template<typename Key , typename Hash >
__global__ void open3d::core::InsertKernelPass0 ( SlabHashmapImpl< Key, Hash >  impl,
const void *  input_keys,
addr_t output_addrs,
int  heap_counter_prev,
int64_t  count 
)

Kernels.

◆ InsertKernelPass1()

template<typename Key , typename Hash >
__global__ void open3d::core::InsertKernelPass1 ( SlabHashmapImpl< Key, Hash >  impl,
const void *  input_keys,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ InsertKernelPass2()

template<typename Key , typename Hash >
__global__ void open3d::core::InsertKernelPass2 ( SlabHashmapImpl< Key, Hash >  impl,
const void *  input_values,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ Inverse()

void open3d::core::Inverse ( const Tensor A,
Tensor output 
)

Computes A^{-1} with LU factorization, where A is a N x N square matrix.

◆ InverseCPU()

void open3d::core::InverseCPU ( void *  A_data,
void *  ipiv_data,
void *  output_data,
int64_t  n,
Dtype  dtype,
const Device device 
)

◆ InverseCUDA()

void open3d::core::InverseCUDA ( void *  A_data,
void *  ipiv_data,
void *  output_data,
int64_t  n,
Dtype  dtype,
const Device device 
)

◆ LeastSquares()

void open3d::core::LeastSquares ( const Tensor A,
const Tensor B,
Tensor X 
)

Solve AX = B with QR decomposition. A is a full-rank m x n matrix (m >= n).

◆ LeastSquaresCPU()

void open3d::core::LeastSquaresCPU ( void *  A_data,
void *  B_data,
int64_t  m,
int64_t  n,
int64_t  k,
Dtype  dtype,
const Device device 
)

◆ LeastSquaresCUDA()

void open3d::core::LeastSquaresCUDA ( void *  A_data,
void *  B_data,
int64_t  m,
int64_t  n,
int64_t  k,
Dtype  dtype,
const Device device 
)

◆ LU()

void open3d::core::LU ( const Tensor A,
Tensor permutation,
Tensor lower,
Tensor upper,
const bool  permute_l 
)

◆ LUCPU()

void open3d::core::LUCPU ( void *  A_data,
void *  ipiv_data,
int64_t  rows,
int64_t  cols,
Dtype  dtype,
const Device device 
)

◆ LUCUDA()

void open3d::core::LUCUDA ( void *  A_data,
void *  ipiv_data,
int64_t  rows,
int64_t  cols,
Dtype  dtype,
const Device device 
)

◆ LUIpiv()

void open3d::core::LUIpiv ( const Tensor A,
Tensor ipiv,
Tensor output 
)

◆ make_pair()

template<typename First , typename Second >
OPEN3D_HOST_DEVICE Pair<First, Second> open3d::core::make_pair ( const First &  _first,
const Second &  _second 
)

◆ Matmul()

void open3d::core::Matmul ( const Tensor A,
const Tensor B,
Tensor output 
)

Computes matrix multiplication C = AB.

◆ MatmulCPU()

void open3d::core::MatmulCPU ( void *  A_data,
void *  B_data,
void *  C_data,
int64_t  m,
int64_t  k,
int64_t  n,
Dtype  dtype 
)

◆ MatmulCUDA()

void open3d::core::MatmulCUDA ( void *  A_data,
void *  B_data,
void *  C_data,
int64_t  m,
int64_t  k,
int64_t  n,
Dtype  dtype 
)

◆ OPEN3D_LAPACK_CHECK()

void open3d::core::OPEN3D_LAPACK_CHECK ( OPEN3D_CPU_LINALG_INT  info,
const std::string &  msg 
)
inline

◆ operator*()

template<typename T >
Tensor open3d::core::operator* ( scalar_lhs,
const Tensor rhs 
)
inline

◆ operator+()

template<typename T >
Tensor open3d::core::operator+ ( scalar_lhs,
const Tensor rhs 
)
inline

◆ operator-()

template<typename T >
Tensor open3d::core::operator- ( scalar_lhs,
const Tensor rhs 
)
inline

◆ operator/()

template<typename T >
Tensor open3d::core::operator/ ( scalar_lhs,
const Tensor rhs 
)
inline

◆ ResetHashmapBufferKernel()

__global__ void open3d::core::ResetHashmapBufferKernel ( addr_t heap,
int64_t  capacity 
)

Dynamic memory allocation and free are expensive on kernels. We pre-allocate a chunk of memory and manually manage them on kernels.

◆ Solve()

void open3d::core::Solve ( const Tensor A,
const Tensor B,
Tensor X 
)

Solve AX = B with LU decomposition. A is a square matrix.

◆ SolveCPU()

void open3d::core::SolveCPU ( void *  A_data,
void *  B_data,
void *  ipiv_data,
int64_t  n,
int64_t  k,
Dtype  dtype,
const Device device 
)

◆ SolveCUDA()

void open3d::core::SolveCUDA ( void *  A_data,
void *  B_data,
void *  ipiv_data,
int64_t  n,
int64_t  k,
Dtype  dtype,
const Device device 
)

◆ STDGPUEraseKernel()

template<typename Key , typename Hash >
__global__ void open3d::core::STDGPUEraseKernel ( stdgpu::unordered_map< Key, addr_t, Hash >  map,
CUDAHashmapBufferAccessor  buffer_accessor,
const Key *  input_keys,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ STDGPUFindKernel()

template<typename Key , typename Hash >
__global__ void open3d::core::STDGPUFindKernel ( stdgpu::unordered_map< Key, addr_t, Hash >  map,
CUDAHashmapBufferAccessor  buffer_accessor,
const Key *  input_keys,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ STDGPUInsertKernel()

template<typename Key , typename Hash >
__global__ void open3d::core::STDGPUInsertKernel ( stdgpu::unordered_map< Key, addr_t, Hash >  map,
CUDAHashmapBufferAccessor  buffer_accessor,
const Key *  input_keys,
const void *  input_values,
int64_t  dsize_value,
addr_t output_addrs,
bool *  output_masks,
int64_t  count 
)

◆ SVD()

void open3d::core::SVD ( const Tensor A,
Tensor U,
Tensor S,
Tensor VT 
)

Computes SVD decomposition A = U S VT, where A is an m x n, U is an m x m, S is a min(m, n), VT is an n x n tensor.

◆ SVDCPU()

void open3d::core::SVDCPU ( const void *  A_data,
void *  U_data,
void *  S_data,
void *  VT_data,
void *  superb_data,
int64_t  m,
int64_t  n,
Dtype  dtype,
const Device device 
)

◆ SVDCUDA()

void open3d::core::SVDCUDA ( const void *  A_data,
void *  U_data,
void *  S_data,
void *  VT_data,
void *  superb_data,
int64_t  m,
int64_t  n,
Dtype  dtype,
const Device device 
)

◆ Tril()

void open3d::core::Tril ( const Tensor A,
Tensor output,
const int  diagonal 
)

◆ TrilCPU()

void open3d::core::TrilCPU ( const Tensor A,
Tensor output,
const int  diagonal 
)

◆ Triu()

void open3d::core::Triu ( const Tensor A,
Tensor output,
const int  diagonal 
)

◆ TriuCPU()

void open3d::core::TriuCPU ( const Tensor A,
Tensor output,
const int  diagonal 
)

◆ Triul()

void open3d::core::Triul ( const Tensor A,
Tensor upper,
Tensor lower,
const int  diagonal 
)

◆ TriulCPU()

void open3d::core::TriulCPU ( const Tensor A,
Tensor upper,
Tensor lower,
const int  diagonal 
)

Variable Documentation

◆ None

constexpr utility::nullopt_t open3d::core::None {utility::nullopt_t::init()}