| 3169 | |
| 3170 | template <class Float> |
| 3171 | void SparseBundleCPU<Float>::ComputeBlockPC(float lambda, bool dampd) { |
| 3172 | ConfigBA::TimerBA timer(this, TIMER_FUNCTION_BC, true); |
| 3173 | |
| 3174 | if (__no_jacobian_store || (!__jc_store_original && !__jc_store_transpose && |
| 3175 | __bundle_current_mode != 2)) { |
| 3176 | ComputeDiagonalBlock_( |
| 3177 | lambda, dampd, _cuCameraData, _cuPointData, _cuMeasurements, |
| 3178 | _cuProjectionMap, _cuVectorSJ, _cuCameraQListW, _cuVectorJJ, _cuBlockPC, |
| 3179 | __fixed_intrinsics, __use_radial_distortion, __bundle_current_mode); |
| 3180 | } else if (__jc_store_transpose) { |
| 3181 | ComputeDiagonalBlock( |
| 3182 | _num_camera, _num_point, lambda, dampd, _cuJacobianCameraT.begin(), |
| 3183 | &_cuCameraMeasurementMap.front(), _cuJacobianPoint.begin(), |
| 3184 | &_cuPointMeasurementMap.front(), &_cuCameraMeasurementList.front(), |
| 3185 | _cuVectorSJ.begin(), _cuCameraQListW.begin(), _cuVectorJJ.begin(), |
| 3186 | _cuBlockPC.begin(), __use_radial_distortion, true, |
| 3187 | __num_cpu_thread[FUNC_BCC_JCT], __num_cpu_thread[FUNC_BCP], |
| 3188 | __bundle_current_mode); |
| 3189 | } else { |
| 3190 | ComputeDiagonalBlock( |
| 3191 | _num_camera, _num_point, lambda, dampd, _cuJacobianCamera.begin(), |
| 3192 | &_cuCameraMeasurementMap.front(), _cuJacobianPoint.begin(), |
| 3193 | &_cuPointMeasurementMap.front(), &_cuCameraMeasurementList.front(), |
| 3194 | _cuVectorSJ.begin(), _cuCameraQListW.begin(), _cuVectorJJ.begin(), |
| 3195 | _cuBlockPC.begin(), __use_radial_distortion, false, |
| 3196 | __num_cpu_thread[FUNC_BCC_JCO], __num_cpu_thread[FUNC_BCP], |
| 3197 | __bundle_current_mode); |
| 3198 | } |
| 3199 | } |
| 3200 | |
| 3201 | template <class Float> |
| 3202 | void SparseBundleCPU<Float>::ApplyBlockPC(VectorF& v, VectorF& pv, int mode) { |
nothing calls this directly
no test coverage detected