00001 00005 /* LICENSE BEGIN 00006 00007 Copyright Cerfacs (Christian Page) (2015) 00008 00009 christian.page@cerfacs.fr 00010 00011 This software is a computer program whose purpose is to downscale climate 00012 scenarios using a statistical methodology based on weather regimes. 00013 00014 This software is governed by the CeCILL license under French law and 00015 abiding by the rules of distribution of free software. You can use, 00016 modify and/ or redistribute the software under the terms of the CeCILL 00017 license as circulated by CEA, CNRS and INRIA at the following URL 00018 "http://www.cecill.info". 00019 00020 As a counterpart to the access to the source code and rights to copy, 00021 modify and redistribute granted by the license, users are provided only 00022 with a limited warranty and the software's author, the holder of the 00023 economic rights, and the successive licensors have only limited 00024 liability. 00025 00026 In this respect, the user's attention is drawn to the risks associated 00027 with loading, using, modifying and/or developing or reproducing the 00028 software by the user in light of its specific status of free software, 00029 that may mean that it is complicated to manipulate, and that also 00030 therefore means that it is reserved for developers and experienced 00031 professionals having in-depth computer knowledge. Users are therefore 00032 encouraged to load and test the software's suitability as regards their 00033 requirements in conditions enabling the security of their systems and/or 00034 data to be ensured and, more generally, to use and operate it in the 00035 same conditions as regards security. 00036 00037 The fact that you are presently reading this means that you have had 00038 knowledge of the CeCILL license and that you accept its terms. 00039 00040 LICENSE END */ 00041 00042 00043 00044 00045 00046 00047 #ifndef REGRESS_H 00048 #define REGRESS_H 00049 00050 #ifdef HAVE_CONFIG_H 00051 #include <config.h> 00052 #endif 00053 00055 #define _GNU_SOURCE 00056 00057 #ifdef HAVE_STDIO_H 00058 #include <stdio.h> 00059 #endif 00060 #ifdef HAVE_SYS_TYPES_H 00061 #include <sys/types.h> 00062 #endif 00063 #ifdef HAVE_SIGNAL_H 00064 #include <signal.h> 00065 #endif 00066 00067 #ifdef HAVE_STDLIB_H 00068 #include <stdlib.h> 00069 #endif 00070 #ifdef HAVE_MATH_H 00071 #include <math.h> 00072 #endif 00073 #ifdef HAVE_TIME_H 00074 #include <time.h> 00075 #endif 00076 #ifdef HAVE_STRING_H 00077 #include <string.h> 00078 #endif 00079 00080 #include <gsl/gsl_matrix.h> 00081 #include <gsl/gsl_vector.h> 00082 #include <gsl/gsl_multifit.h> 00083 #include <gsl/gsl_statistics_double.h> 00084 00085 /* Prototypes */ 00086 int regress(double *coef, double *x, double *y, double *cte, double *yreg, double *yerr, 00087 double *chisq, double *rsq, double *vif, double *autocor, int nterm, int npts); 00088 void apply_regression(double *buf, double *reg, double *cst, double *dist, double *sup_dist, int npts, int ntime, int nclust, int nreg); 00089 00090 #endif