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/geometry.h" 00039 #include "fastlib/math/discrete.h" 00040 #include "fastlib/math/math_lib.h" 00041 //#include "geometry.h" 00042 //#include "discrete.h" 00043 //#include "math_lib.h" 00044 00045 namespace math { 00046 00047 double SphereVolume(double r, int d) { 00048 int n = d / 2; 00049 double val; 00050 00051 DEBUG_ASSERT(d >= 0); 00052 00053 if (d % 2 == 0) { 00054 val = pow(r * sqrt(PI), d) / Factorial(n); 00055 } 00056 else { 00057 val = pow(2 * r, d) * pow(PI, n) * Factorial(n) / Factorial(d); 00058 } 00059 00060 return val; 00061 } 00062 00063 };