28 for (
int i=1; i<
n; i++) {
40 for (
int i=1; i<
n; i++) {
54 p[i] = (
real) exp (beta * Q[i]);
68 p[i] = (
real) exp (-beta * Q[i]);
123 assert(lambda>=0 && lambda<=1);
125 if (1-lambda/c <= t) {
126 gamma = t - (1-lambda)*(1-lambda) / (2*c);
127 }
else if (t>=-lambda/c) {
128 gamma = lambda * t + t*t*c/2;
130 gamma = - lambda * lambda / (2*c);
150 return (
real) pow(pow(f1,
p)+pow(f2,
p),1/
p);
164 for (i=0; i<n_elements; i++) {
168 for (i=0; i<n_elements; i++) {
174 for (i=0; i<n_elements; i++) {
182 for (
int i=0; i<
n; i++) {
183 register real d = (*a++) - (*b++);
192 for (
int i=0; i<
n; i++) {
193 register real d = (*a++) - (*b++);
196 return (
real) sqrt(sum);
202 for (
int i=0; i<
n; i++) {
203 register real d = (*a++) - (*b++);
204 sum += (
real) pow(d,
p);
206 return (
real) pow((
double)sum,1.0/
p);
212 for (
register int i=0; i<
n; i++) {
int ArgMin(int n, real *x)
int ArgMax(int n, real *x)
Scalar max(Scalar x, Scalar y)
real SmoothMaxGamma(real f1, real f2, real lambda, real c)
Approximate max (f1,f2) via a gamma function.
real LNorm(real *a, real *b, int n, real p)
real SquareNorm(real *a, real *b, int n)
void SoftMin(int n, real *Q, real *p, real beta)
real EuclideanNorm(real *a, real *b, int n)
Scalar min(Scalar x, Scalar y)
void Normalise(real *src, real *dst, int n_elements)
Normalise a vector to a destination vector (low level)
void SoftMax(int n, real *Q, real *p, real beta)
real SmoothMaxPNorm(real f1, real f2, real p)
Approximate max (f1,f2) via a power function.