96 [reference_coordinates, coordinates, offset](
double x,
double y) {
97 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_x - offset.
m_x + 0.5;
102 [reference_coordinates, coordinates, offset](
double x,
double y) {
103 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_y - offset.
m_y + 0.5;
119 [reference_coordinates, coordinates, offset](
double x,
double y) {
120 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_x - offset.
m_x + 0.5;
125 [reference_coordinates, coordinates, offset](
double x,
double y) {
126 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_y - offset.
m_y + 0.5;
130 auto x_scale = std::make_shared<ManualParameter>(1);
134 [](
double flux,
double radius,
double aspect) {
return flux / (2 * M_PI * 0.35513 * radius * radius * aspect); },
139 [](
double eff_radius) {
return 1.678 / eff_radius; },
147 size, size, pixel_x, pixel_y, manager.
getParameter(source, m_flux), jacobian));
160 [reference_coordinates, coordinates, offset](
double x,
double y) {
161 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_x - offset.
m_x + 0.5;
166 [reference_coordinates, coordinates, offset](
double x,
double y) {
167 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_y - offset.
m_y + 0.5;
170 auto n = std::make_shared<ManualParameter>(4);
171 auto x_scale = std::make_shared<ManualParameter>(1);
174 [](
double flux,
double radius,
double aspect) {
return flux / (2 * M_PI * 0.001684925 * radius * radius * aspect); },
179 [](
double eff_radius) {
return 7.669 /
pow(eff_radius, .25); },
187 size, size, pixel_x, pixel_y, manager.
getParameter(source, m_flux), jacobian));
192 return 2 * n - 1.0 / 3.0 + 4 / (405 * n)
193 + 46 / (25515 * n * n) + 131 / (1148175 * n * n * n) - 2194697 / (30690717750 * n * n * n * n);
205 [reference_coordinates, coordinates, offset](
double x,
double y) {
206 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_x - offset.
m_x + 0.5;
211 [reference_coordinates, coordinates, offset](
double x,
double y) {
212 return coordinates->worldToImage(reference_coordinates->imageToWorld(
ImageCoordinate(
x-1,
y-1))).m_y - offset.
m_y + 0.5;
215 auto x_scale = std::make_shared<ManualParameter>(1);
218 [](
double flux,
double radius,
double aspect,
double n) {
return flux / (2 * M_PI *
pow(
computeBn(n), -2*n) * n *
std::tgamma(2*n) * radius * radius * aspect); },
223 [](
double eff_radius,
double n) {
return computeBn(n) /
pow(eff_radius, 1.0 / n); },
231 manager.
getParameter(source, m_angle), size, size, pixel_x, pixel_y, manager.
getParameter(source, m_flux), jacobian));