| 1137 | } |
| 1138 | |
| 1139 | void SparseBundleCU::ComputeDiagonal(CuTexImage& JJ, CuTexImage& JJI) { |
| 1140 | ////////////////////checking the impossible. |
| 1141 | if (__no_jacobian_store) return; |
| 1142 | if (!__jc_store_transpose && !__jc_store_original) return; |
| 1143 | |
| 1144 | ConfigBA::TimerBA timer(this, TIMER_FUNCTION_DD, true); |
| 1145 | bool use_diagonal_q = _cuCameraQListW.IsValid(); |
| 1146 | if (use_diagonal_q) { |
| 1147 | CuTexImage null; |
| 1148 | ComputeDiagonalQ(_cuCameraQListW, null, JJ); |
| 1149 | } |
| 1150 | if (__jc_store_transpose) { |
| 1151 | ProgramCU::ComputeDiagonal(_cuJacobianCameraT, _cuCameraMeasurementMap, |
| 1152 | _cuJacobianPoint, _cuPointMeasurementMap, |
| 1153 | _cuCameraMeasurementList, JJ, JJI, true, |
| 1154 | __use_radial_distortion, use_diagonal_q); |
| 1155 | } else { |
| 1156 | ProgramCU::ComputeDiagonal(_cuJacobianCamera, _cuCameraMeasurementMap, |
| 1157 | _cuJacobianPoint, _cuPointMeasurementMap, |
| 1158 | _cuCameraMeasurementList, JJ, JJI, false, |
| 1159 | __use_radial_distortion, use_diagonal_q); |
| 1160 | } |
| 1161 | } |
| 1162 | |
| 1163 | int SparseBundleCU::SolveNormalEquationPCGX(float lambda) { |
| 1164 | //---------------------------------------------------------- |
nothing calls this directly
no test coverage detected