Patterns in static

Apophenia

asst.h

Go to the documentation of this file.
00001 
00002 /* Copyright (c) 2006--2007 by Ben Klemens.  Licensed under the modified GNU GPL v2; see COPYING and COPYING2.  */
00003 #ifndef __apop_asst__
00004 #define __apop_asst__
00005 
00006 #include <assert.h>
00007 #include "types.h"
00008 #include "variadic.h"
00009 #include <gsl/gsl_rng.h>
00010 #include <gsl/gsl_matrix.h>
00011 
00012 #ifdef    __cplusplus
00013 extern "C" {
00014 #endif
00015 
00016 double apop_generalized_harmonic(int N, double s);
00017 void apop_error(int level, char stop, char *message, ...);
00018 
00019 apop_data * apop_test_anova_independence(apop_data *d);
00020 #define apop_test_ANOVA_independence(d) apop_test_anova_independence(d)
00021 
00022 
00023 gsl_vector * apop_vector_moving_average(gsl_vector *, size_t);
00024 apop_model *apop_histogram_moving_average(apop_model *m, size_t bandwidth);
00025 
00026 apop_model * apop_histogram_vector_reset(apop_model *template, gsl_vector *indata);
00027 #ifdef APOP_NO_VARIADIC
00028  apop_model * apop_histogram_model_reset(apop_model *template, apop_model *m, long int draws, gsl_rng *rng);
00029 #else
00030  apop_model * apop_histogram_model_reset_base(apop_model *template, apop_model *m, long int draws, gsl_rng *rng);
00031  apop_varad_declare(apop_model *, apop_histogram_model_reset, apop_model *template; apop_model *m; long int draws; gsl_rng *rng);
00032 #define apop_histogram_model_reset(...) apop_varad_link(apop_histogram_model_reset, __VA_ARGS__)
00033 #endif
00034 apop_data * apop_histograms_test_goodness_of_fit(apop_model *h0, apop_model *h1);
00035 apop_data * apop_test_kolmogorov(apop_model *m1, apop_model *m2);
00036 void apop_histogram_normalize(apop_model *m);
00037 
00049 #define Apop_assert(test, returnval, level, stop, ...) do \
00050     if (!(test)) {  \
00051         if (apop_opts.verbose >= level) { fprintf(stderr, "%s: ", __func__); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n");}   \
00052         if (stop == 's' || stop == 'h') assert(test);   \
00053         return returnval;  \
00054 } while (0);
00055 
00056 #define apop_assert(test, returnval, level, stop, ...) Apop_assert(test, returnval, level, stop, __VA_ARGS__)
00057 #define APOP_ASSERT(test, returnval, level, stop, ...) Apop_assert(test, returnval, level, stop, __VA_ARGS__)
00058 
00068 #define Apop_assert_void(test,  level, stop, ...) do \
00069     if (!(test)) {  \
00070         if (apop_opts.verbose >= level) { fprintf(stderr, "%s: ", __func__); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n");}   \
00071         if (stop == 's' || stop == 'h') assert(test);   \
00072 } while (0);
00073 
00074 #define apop_assert_void(test, level, stop, ...) Apop_assert_void(test, level, stop, __VA_ARGS__)
00075 #define APOP_ASSERT_VOID(test, level, stop, ...) Apop_assert_void(test, level, stop, __VA_ARGS__)
00076 
00090 #define Apop_settings_alloc(type, out, ...) apop_ ##type ##_settings *out = apop_ ##type ##_settings_alloc(__VA_ARGS__);
00091 
00092 #define APOP_SETTINGS_ALLOC(type, out, ...) Apop_settings_alloc(type, out, __VA_ARGS__)
00093 
00094 //Bootstrapping & RNG
00095 apop_data * apop_jackknife_cov(apop_data *data, apop_model model);
00096 #ifdef APOP_NO_VARIADIC
00097  apop_data * apop_bootstrap_cov(apop_data *data, apop_model model, gsl_rng* rng, int iterations);
00098 #else
00099  apop_data * apop_bootstrap_cov_base(apop_data *data, apop_model model, gsl_rng* rng, int iterations);
00100  apop_varad_declare(apop_data *, apop_bootstrap_cov, apop_data *data; apop_model model; gsl_rng* rng; int iterations);
00101 #define apop_bootstrap_cov(...) apop_varad_link(apop_bootstrap_cov, __VA_ARGS__)
00102 #endif
00103 gsl_rng *apop_rng_alloc(int seed);
00104 
00105 //Missing data
00106 #ifdef APOP_NO_VARIADIC
00107  apop_data * apop_data_listwise_delete(apop_data *d, char inplace);
00108 #else
00109  apop_data * apop_data_listwise_delete_base(apop_data *d, char inplace);
00110  apop_varad_declare(apop_data *, apop_data_listwise_delete, apop_data *d; char inplace);
00111 #define apop_data_listwise_delete(...) apop_varad_link(apop_data_listwise_delete, __VA_ARGS__)
00112 #endif
00113 apop_model * apop_ml_imputation(apop_data *d, apop_model* meanvar);
00114 
00115 
00116 #ifdef APOP_NO_VARIADIC
00117  apop_model * apop_update(apop_data *data, apop_model *prior, apop_model *likelihood, gsl_rng *rng);
00118 #else
00119  apop_model * apop_update_base(apop_data *data, apop_model *prior, apop_model *likelihood, gsl_rng *rng);
00120  apop_varad_declare(apop_model *, apop_update, apop_data *data; apop_model *prior; apop_model *likelihood; gsl_rng *rng);
00121 #define apop_update(...) apop_varad_link(apop_update, __VA_ARGS__)
00122 #endif
00123 
00124 #ifdef APOP_NO_VARIADIC
00125  double apop_test(double statistic, char *distribution, double p1, double p2, char tail);
00126 #else
00127  double apop_test_base(double statistic, char *distribution, double p1, double p2, char tail);
00128  apop_varad_declare(double, apop_test, double statistic; char *distribution; double p1; double p2; char tail);
00129 #define apop_test(...) apop_varad_link(apop_test, __VA_ARGS__)
00130 #endif
00131 
00132 //Sorting (apop_asst.c)
00133 #ifdef APOP_NO_VARIADIC
00134  double * apop_vector_percentiles(gsl_vector *data, char rounding); 
00135 #else
00136  double * apop_vector_percentiles_base(gsl_vector *data, char rounding); 
00137  apop_varad_declare(double *, apop_vector_percentiles, gsl_vector *data; char rounding); 
00138 #define apop_vector_percentiles(...) apop_varad_link(apop_vector_percentiles, __VA_ARGS__)
00139 #endif
00140 #ifdef APOP_NO_VARIADIC
00141  apop_data * apop_data_sort(apop_data *data, int sortby, char asc);
00142 #else
00143  apop_data * apop_data_sort_base(apop_data *data, int sortby, char asc);
00144  apop_varad_declare(apop_data *, apop_data_sort, apop_data *data; int sortby; char asc);
00145 #define apop_data_sort(...) apop_varad_link(apop_data_sort, __VA_ARGS__)
00146 #endif
00147 
00148 //asprintf, vararg, &c
00149 #include <stdarg.h>
00150 extern int asprintf (char **res, const char *format, ...)
00151        __attribute__ ((__format__ (__printf__, 2, 3)));
00152 extern int vasprintf (char **res, const char *format, va_list args)
00153        __attribute__ ((__format__ (__printf__, 2, 0)));
00154 
00155 #ifdef    __cplusplus
00156 }
00157 #endif
00158 
00159 #endif

SourceForge.net Logo

Autogenerated by doxygen on 28 Sep 2009.