Loading [MathJax]/extensions/TeX/AMSsymbols.js
Open3D (C++ API)  0.14.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
FillInLinearSystem.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // The MIT License (MIT)
5 //
6 // Copyright (c) 2018-2021 www.open3d.org
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be included in
16 // all copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24 // IN THE SOFTWARE.
25 // ----------------------------------------------------------------------------
26 
27 #include "open3d/core/CUDAUtils.h"
28 #include "open3d/core/Tensor.h"
29 namespace open3d {
30 namespace t {
31 namespace pipelines {
32 namespace kernel {
33 
35  core::Tensor &Atb,
36  core::Tensor &residual,
37  const core::Tensor &Ti_qs,
38  const core::Tensor &Tj_qs,
39  const core::Tensor &Ri_normal_ps,
40  int i,
41  int j,
42  float threshold);
43 
45  core::Tensor &Atb,
46  core::Tensor &residual,
47  const core::Tensor &Ti_qs,
48  const core::Tensor &Tj_qs,
49  const core::Tensor &normal_ps,
50  const core::Tensor &Ri_normal_ps,
51  const core::Tensor &RjT_Ri_normal_ps,
52  const core::Tensor &cgrid_idx_ps,
53  const core::Tensor &cgrid_idx_qs,
54  const core::Tensor &cgrid_ratio_qs,
55  const core::Tensor &cgrid_ratio_ps,
56  int i,
57  int j,
58  int n,
59  float threshold);
60 
62  core::Tensor &Atb,
63  core::Tensor &residual,
64  const core::Tensor &grid_idx,
65  const core::Tensor &grid_nbs_idx,
66  const core::Tensor &grid_nbs_mask,
67  const core::Tensor &positions_init,
68  const core::Tensor &positions_curr,
69  float weight,
70  int n,
71  int anchor_idx);
72 
74  core::Tensor &Atb,
75  core::Tensor &residual,
76  const core::Tensor &Ti_qs,
77  const core::Tensor &Tj_qs,
78  const core::Tensor &Ri_normal_ps,
79  int i,
80  int j,
81  float threshold);
82 
84  core::Tensor &Atb,
85  core::Tensor &residual,
86  const core::Tensor &Ti_qs,
87  const core::Tensor &Tj_qs,
88  const core::Tensor &normal_ps,
89  const core::Tensor &Ri_normal_ps,
90  const core::Tensor &RjT_Ri_normal_ps,
91  const core::Tensor &cgrid_idx_ps,
92  const core::Tensor &cgrid_idx_qs,
93  const core::Tensor &cgrid_ratio_qs,
94  const core::Tensor &cgrid_ratio_ps,
95  int i,
96  int j,
97  int n,
98  float threshold);
99 
101  core::Tensor &Atb,
102  core::Tensor &residual,
103  const core::Tensor &grid_idx,
104  const core::Tensor &grid_nbs_idx,
105  const core::Tensor &grid_nbs_mask,
106  const core::Tensor &positions_init,
107  const core::Tensor &positions_curr,
108  float weight,
109  int n,
110  int anchor_idx);
111 
112 #ifdef BUILD_CUDA_MODULE
113 void FillInRigidAlignmentTermCUDA(core::Tensor &AtA,
114  core::Tensor &Atb,
115  core::Tensor &residual,
116  const core::Tensor &Ti_qs,
117  const core::Tensor &Tj_qs,
118  const core::Tensor &Ri_normal_ps,
119  int i,
120  int j,
121  float threshold);
122 
123 void FillInSLACAlignmentTermCUDA(core::Tensor &AtA,
124  core::Tensor &Atb,
125  core::Tensor &residual,
126  const core::Tensor &Ti_qs,
127  const core::Tensor &Tj_qs,
128  const core::Tensor &normal_ps,
129  const core::Tensor &Ri_normal_ps,
130  const core::Tensor &RjT_Ri_normal_ps,
131  const core::Tensor &cgrid_idx_ps,
132  const core::Tensor &cgrid_idx_qs,
133  const core::Tensor &cgrid_ratio_qs,
134  const core::Tensor &cgrid_ratio_ps,
135  int i,
136  int j,
137  int n,
138  float threshold);
139 
140 void FillInSLACRegularizerTermCUDA(core::Tensor &AtA,
141  core::Tensor &Atb,
142  core::Tensor &residual,
143  const core::Tensor &grid_idx,
144  const core::Tensor &grid_nbs_idx,
145  const core::Tensor &grid_nbs_mask,
146  const core::Tensor &positions_init,
147  const core::Tensor &positions_curr,
148  float weight,
149  int n,
150  int anchor_idx);
151 
152 #endif
153 
154 } // namespace kernel
155 } // namespace pipelines
156 } // namespace t
157 } // namespace open3d
void FillInSLACRegularizerTermCPU(core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &grid_idx, const core::Tensor &grid_nbs_idx, const core::Tensor &grid_nbs_mask, const core::Tensor &positions_init, const core::Tensor &positions_curr, float weight, int n, int anchor_idx)
Definition: FillInLinearSystemImpl.h:301
void FillInRigidAlignmentTermCPU(core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_qs, const core::Tensor &Tj_qs, const core::Tensor &Ri_normal_ps, int i, int j, float threshold)
Definition: FillInLinearSystemImpl.h:40
void FillInSLACAlignmentTerm(core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_ps, const core::Tensor &Tj_qs, const core::Tensor &normal_ps, const core::Tensor &Ri_normal_ps, const core::Tensor &RjT_Ri_normal_ps, const core::Tensor &cgrid_idx_ps, const core::Tensor &cgrid_idx_qs, const core::Tensor &cgrid_ratio_qs, const core::Tensor &cgrid_ratio_ps, int i, int j, int n, float threshold)
Definition: FillInLinearSystem.cpp:87
void FillInRigidAlignmentTerm(core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_ps, const core::Tensor &Tj_qs, const core::Tensor &Ri_normal_ps, int i, int j, float threshold)
Definition: FillInLinearSystem.cpp:36
Definition: PinholeCameraIntrinsic.cpp:35
void FillInSLACAlignmentTermCPU(core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &Ti_qs, const core::Tensor &Tj_qs, const core::Tensor &normal_ps, const core::Tensor &Ri_normal_ps, const core::Tensor &RjT_Ri_normal_ps, const core::Tensor &cgrid_idx_ps, const core::Tensor &cgrid_idx_qs, const core::Tensor &cgrid_ratio_qs, const core::Tensor &cgrid_ratio_ps, int i, int j, int n, float threshold)
Definition: FillInLinearSystemImpl.h:154
void FillInSLACRegularizerTerm(core::Tensor &AtA, core::Tensor &Atb, core::Tensor &residual, const core::Tensor &grid_idx, const core::Tensor &grid_nbs_idx, const core::Tensor &grid_nbs_mask, const core::Tensor &positions_init, const core::Tensor &positions_curr, float weight, int n, int anchor_idx)
Definition: FillInLinearSystem.cpp:151
Common CUDA utilities.