aboutsummaryrefslogtreecommitdiff
path: root/gaussian-nd-random.h
diff options
context:
space:
mode:
authorArun Isaac2021-02-03 13:03:22 +0530
committerArun Isaac2021-02-03 13:03:22 +0530
commitac33f97e8bc2262939339de704e267a29aa1f7a3 (patch)
tree16358a3b5e741648fea514a82ae6cc601f7644eb /gaussian-nd-random.h
parent1c9128be78a68805ab0d80631c1984fd4291d894 (diff)
downloadnsmc-ac33f97e8bc2262939339de704e267a29aa1f7a3.tar.gz
nsmc-ac33f97e8bc2262939339de704e267a29aa1f7a3.tar.lz
nsmc-ac33f97e8bc2262939339de704e267a29aa1f7a3.zip
Add Gaussian n-d random functions.
* gaussian-nd-random.c, gaussian-nd-random.h: New files.
Diffstat (limited to 'gaussian-nd-random.h')
-rw-r--r--gaussian-nd-random.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gaussian-nd-random.h b/gaussian-nd-random.h
new file mode 100644
index 0000000..951cb10
--- /dev/null
+++ b/gaussian-nd-random.h
@@ -0,0 +1,19 @@
+#ifndef GAUSSIAN_ND_RANDOM_H
+#define GAUSSIAN_ND_RANDOM_H
+
+#include <gsl/gsl_rng.h>
+#include <gsl/gsl_vector.h>
+#include <gsl/gsl_integration.h>
+
+double planar_angle_to_standard_deviation
+(double mean, double theta_max, double truncation, unsigned int dimension);
+
+unsigned int shifted_gaussian_random_vector
+(const gsl_rng* r, const gsl_vector* mean,
+ double theta_max, double truncation, gsl_vector* x);
+
+double shifted_gaussian_pdf
+(double theta, double mean, double theta_max,
+ double truncation, unsigned int dimension, gsl_integration_workspace* w);
+
+#endif