21 lines
463 B
C
21 lines
463 B
C
#pragma once
|
|
|
|
#ifndef utils_h
|
|
#define utils_h
|
|
|
|
#include <cmath>
|
|
|
|
double Gaussian(double x, double* p) {
|
|
return p[0] * exp(-(x - p[1]) * (x - p[1]) / (2 * p[2] * p[2]));
|
|
}
|
|
|
|
double* GaussianJacobian(double x, double *p) {
|
|
double* resJ = new double[3];
|
|
resJ[0] = -Gaussian(x, p) / p[0];
|
|
resJ[1] = -(x - p[1]) * Gaussian(x, p) / (p[2] * p[2]);
|
|
resJ[2] = -(x - p[1]) * (x - p[1]) * Gaussian(x, p) / (p[2] * p[2] * p[2]);
|
|
return resJ;
|
|
}
|
|
|
|
#endif
|