00001 #ifndef APOP_LINEAR_ALGEBRA_H
00002 #define APOP_LINEAR_ALGEBRA_H
00003
00004 #include "variadic.h"
00005 #include <gsl/gsl_blas.h>
00006 #include <gsl/gsl_sf_log.h>
00007 #include <gsl/gsl_sf_exp.h>
00008 #include <gsl/gsl_matrix.h>
00009 #include <gsl/gsl_linalg.h>
00010 #include "types.h"
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00016 double apop_det_and_inv(const gsl_matrix *in, gsl_matrix **out, int calc_det, int calc_inv);
00017 #ifdef APOP_NO_VARIADIC
00018 apop_data * apop_dot(const apop_data *d1, const apop_data *d2, char form1, char form2);
00019 #else
00020 apop_data * apop_dot_base(const apop_data *d1, const apop_data *d2, char form1, char form2);
00021 apop_varad_declare(apop_data *, apop_dot, const apop_data *d1; const apop_data *d2; char form1; char form2);
00022 #define apop_dot(...) apop_varad_link(apop_dot, __VA_ARGS__)
00023 #endif
00024 #ifdef APOP_NO_VARIADIC
00025 int apop_vector_bounded(const gsl_vector *in, long double max);
00026 #else
00027 int apop_vector_bounded_base(const gsl_vector *in, long double max);
00028 apop_varad_declare(int , apop_vector_bounded, const gsl_vector *in; long double max);
00029 #define apop_vector_bounded(...) apop_varad_link(apop_vector_bounded, __VA_ARGS__)
00030 #endif
00031 #ifdef APOP_NO_VARIADIC
00032 void apop_vector_increment(gsl_vector * v, int i, double amt);
00033 #else
00034 void apop_vector_increment_base(gsl_vector * v, int i, double amt);
00035 apop_varad_declare(void, apop_vector_increment, gsl_vector * v; int i; double amt);
00036 #define apop_vector_increment(...) apop_varad_link(apop_vector_increment, __VA_ARGS__)
00037 #endif
00038 #ifdef APOP_NO_VARIADIC
00039 void apop_matrix_increment(gsl_matrix * m, int i, int j, double amt);
00040 #else
00041 void apop_matrix_increment_base(gsl_matrix * m, int i, int j, double amt);
00042 apop_varad_declare(void, apop_matrix_increment, gsl_matrix * m; int i; int j; double amt);
00043 #define apop_matrix_increment(...) apop_varad_link(apop_matrix_increment, __VA_ARGS__)
00044 #endif
00045 gsl_matrix * apop_matrix_inverse(const gsl_matrix *in) ;
00046 double apop_matrix_determinant(const gsl_matrix *in) ;
00047
00048 #ifdef APOP_NO_VARIADIC
00049 apop_data * apop_matrix_pca(gsl_matrix *data, int dimensions_we_want);
00050 #else
00051 apop_data * apop_matrix_pca_base(gsl_matrix *data, int dimensions_we_want);
00052 apop_varad_declare(apop_data * , apop_matrix_pca, gsl_matrix *data; int dimensions_we_want);
00053 #define apop_matrix_pca(...) apop_varad_link(apop_matrix_pca, __VA_ARGS__)
00054 #endif
00055 #ifdef APOP_NO_VARIADIC
00056 gsl_vector * apop_vector_stack(gsl_vector *v1, gsl_vector * v2, char inplace);
00057 #else
00058 gsl_vector * apop_vector_stack_base(gsl_vector *v1, gsl_vector * v2, char inplace);
00059 apop_varad_declare(gsl_vector *, apop_vector_stack, gsl_vector *v1; gsl_vector * v2; char inplace);
00060 #define apop_vector_stack(...) apop_varad_link(apop_vector_stack, __VA_ARGS__)
00061 #endif
00062 #ifdef APOP_NO_VARIADIC
00063 gsl_matrix * apop_matrix_stack(gsl_matrix *m1, gsl_matrix * m2, char posn, char inplace);
00064 #else
00065 gsl_matrix * apop_matrix_stack_base(gsl_matrix *m1, gsl_matrix * m2, char posn, char inplace);
00066 apop_varad_declare(gsl_matrix *, apop_matrix_stack, gsl_matrix *m1; gsl_matrix * m2; char posn; char inplace);
00067 #define apop_matrix_stack(...) apop_varad_link(apop_matrix_stack, __VA_ARGS__)
00068 #endif
00069 gsl_matrix * apop_matrix_rm_columns(gsl_matrix *in, int *drop);
00070
00071 void apop_vector_log(gsl_vector *v);
00072 void apop_vector_log10(gsl_vector *v);
00073 void apop_vector_exp(gsl_vector *v);
00074
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 #endif
Autogenerated by doxygen on 28 Sep 2009.