aboutsummaryrefslogtreecommitdiff
path: root/include/oracles.h
blob: 981f8553252c45e93b2f77cfdf8532313e923097 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef ORACLES_H
#define ORACLES_H

#include <gsl/gsl_blas.h>
#include <gsl/gsl_rng.h>

double bernoulli_extent_generator (const gsl_rng* r, double p, double r0, double r1);
double bernoulli_true_volume (double p, double r0, double r1, unsigned int dimension);

double uniform_extent_generator (const gsl_rng* r, double a, double b);
double uniform_true_volume (double a, double b, unsigned int dimension);

double beta_extent_generator (const gsl_rng* r, double alpha, double beta);
double beta_true_volume (double alpha, double beta, unsigned int dimension);

double cube_extent_oracle (const gsl_vector* x, double edge);
double cube_extent_oracle_with_center (const gsl_vector* x, const gsl_vector* center, double edge);
double cube_true_volume (double edge, unsigned int dimension);
double cube_maximum_extent (double edge, unsigned int dimension);

double ellipsoid_extent_oracle (const gsl_vector* x, const gsl_vector* axes);
double ellipsoid_true_volume (const gsl_vector* axes);

double spheroid_extent_oracle (const gsl_vector* x, double eccentricity);
double spheroid_true_volume (double eccentricity, unsigned int dimension);

#endif