statistics.cc

Go to the documentation of this file.
00001 /* MLPACK 0.2
00002  *
00003  * Copyright (c) 2008, 2009 Alexander Gray,
00004  *                          Garry Boyer,
00005  *                          Ryan Riegel,
00006  *                          Nikolaos Vasiloglou,
00007  *                          Dongryeol Lee,
00008  *                          Chip Mappus, 
00009  *                          Nishant Mehta,
00010  *                          Hua Ouyang,
00011  *                          Parikshit Ram,
00012  *                          Long Tran,
00013  *                          Wee Chin Wong
00014  *
00015  * Copyright (c) 2008, 2009 Georgia Institute of Technology
00016  *
00017  * This program is free software; you can redistribute it and/or
00018  * modify it under the terms of the GNU General Public License as
00019  * published by the Free Software Foundation; either version 2 of the
00020  * License, or (at your option) any later version.
00021  *
00022  * This program is distributed in the hope that it will be useful, but
00023  * WITHOUT ANY WARRANTY; without even the implied warranty of
00024  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00025  * General Public License for more details.
00026  *
00027  * You should have received a copy of the GNU General Public License
00028  * along with this program; if not, write to the Free Software
00029  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00030  * 02110-1301, USA.
00031  */
00038 #include "fastlib/math/statistics.h"
00039 #include <math.h>
00040 //#include "statistics.h"
00041 
00042 namespace math {
00043 
00044 double Mean(Vector V) {
00045   double c = 0.0;
00046   index_t n = V.length();
00047   for (index_t i=0; i<n; i++)
00048     c = c + V[i];
00049   return c / n;
00050 }
00051 
00052 double Var(Vector V) {
00053   double c = 0.0, mean, va, ep;
00054   index_t n = V.length();
00055 
00056   for (index_t i=0; i<n; i++)
00057     c = c + V[i];
00058   mean = c / n;
00059 
00060   ep = 0.0; va = 0.0;
00061   for (index_t i=0; i<n; i++) {
00062     c = V[i] - mean;
00063     ep = ep + c;
00064     va = va + c * c;
00065   }
00066   return (va - ep * ep / n) / (n - 1);
00067 }
00068 
00069 double Std(Vector V) {
00070   return sqrt( Var(V) );
00071 }
00072   
00073 double Sigmoid(double x) {
00074   return 1.0 / ( 1.0 + exp(-x) );
00075 }
00076   
00077 
00078 };
Generated on Mon Jan 24 12:04:37 2011 for FASTlib by  doxygen 1.6.3