#pragma once

#include "shared_indices.h"
#include <cuda_runtime.h>

namespace caspar {

void PinholeFixedPoseJtjnjtrDirect(float* calib_njtr,
                                   unsigned int calib_njtr_num_alloc,
                                   SharedIndex* calib_njtr_indices,
                                   float* calib_jac,
                                   unsigned int calib_jac_num_alloc,
                                   float* point_njtr,
                                   unsigned int point_njtr_num_alloc,
                                   SharedIndex* point_njtr_indices,
                                   float* point_jac,
                                   unsigned int point_jac_num_alloc,
                                   float* const out_calib_njtr,
                                   unsigned int out_calib_njtr_num_alloc,
                                   float* const out_point_njtr,
                                   unsigned int out_point_njtr_num_alloc,
                                   size_t problem_size);

}  // namespace caspar