ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
LeastSquares.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
11 
12 namespace cloudViewer {
13 namespace core {
14 
16 void LeastSquares(const Tensor& A, const Tensor& B, Tensor& X);
17 
18 #ifdef BUILD_CUDA_MODULE
19 void LeastSquaresCUDA(void* A_data,
20  void* B_data,
21  int64_t m,
22  int64_t n,
23  int64_t k,
24  Dtype dtype,
25  const Device& device);
26 #endif
27 
28 #ifdef BUILD_SYCL_MODULE
29 void LeastSquaresSYCL(void* A_data,
30  void* B_data,
31  int64_t m,
32  int64_t n,
33  int64_t k,
34  Dtype dtype,
35  const Device& device);
36 #endif
37 
38 void LeastSquaresCPU(void* A_data,
39  void* B_data,
40  int64_t m,
41  int64_t n,
42  int64_t k,
43  Dtype dtype,
44  const Device& device);
45 
46 } // namespace core
47 } // namespace cloudViewer
void * X
Definition: SmallVector.cpp:45
void LeastSquaresCUDA(void *A_data, void *B_data, int64_t m, int64_t n, int64_t k, Dtype dtype, const Device &device)
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).
void LeastSquaresSYCL(void *A_data, void *B_data, int64_t m, int64_t n, int64_t k, Dtype dtype, const Device &device)
void LeastSquaresCPU(void *A_data, void *B_data, int64_t m, int64_t n, int64_t k, Dtype dtype, const Device &device)
Generic file read and write utility for python interface.