Open3D (C++ API)  0.15.1
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
28#include "open3d/core/Tensor.h"
29namespace open3d {
30namespace t {
31namespace pipelines {
32namespace kernel {
33
34void FillInRigidAlignmentTerm(core::Tensor &AtA,
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
44void FillInSLACAlignmentTerm(core::Tensor &AtA,
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
61void FillInSLACRegularizerTerm(core::Tensor &AtA,
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
73void FillInRigidAlignmentTermCPU(core::Tensor &AtA,
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
83void FillInSLACAlignmentTermCPU(core::Tensor &AtA,
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
100void FillInSLACRegularizerTermCPU(core::Tensor &AtA,
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
113void 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
123void 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
140void 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
Common CUDA utilities.
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
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
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
Definition: PinholeCameraIntrinsic.cpp:35