x
Yes
No
Do you want to visit DriveHQ English website?
Inicio
Características
Precios
Prueba gratuita
Software cliente
Acerca de nosotros
Servidor de archivos
|
Solución de copias de seguridad
|
Servidor FTP
|
Servidor de correo electrónico
|
Alojamiento web
|
Software cliente
Servidor de archivos
Solución de copia de seguridad
Servidor FTP
Servidor de correo electrónico
Alojamiento web
Software cliente
binomial.hpp - Hosted on DriveHQ Cloud IT Platform
Arriba
Subir
Descargar
Compartir
Publicar
Nueva carpeta
Nuevo archivo
Copiar
Cortar
Eliminar
Pegar
Clasificación
Actualizar
Ruta de la carpeta: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\math\special_functions\binomial.hpp
Girar
Efecto
Propiedad
Historial
// Copyright John Maddock 2006. // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_MATH_SF_BINOMIAL_HPP #define BOOST_MATH_SF_BINOMIAL_HPP #include
#include
#include
namespace boost{ namespace math{ template
T binomial_coefficient(unsigned n, unsigned k, const Policy& pol) { BOOST_MATH_STD_USING static const char* function = "boost::math::binomial_coefficient<%1%>(unsigned, unsigned)"; if(k > n) return policies::raise_domain_error
( function, "The binomial coefficient is undefined for k > n, but got k = %1%.", k, pol); T result; if((k == 0) || (k == n)) return 1; if((k == 1) || (k == n-1)) return n; if(n <= max_factorial
::value) { // Use fast table lookup: result = unchecked_factorial
(n); result /= unchecked_factorial
(n-k); result /= unchecked_factorial
(k); } else { // Use the beta function: if(k < n - k) result = k * beta(static_cast
(k), static_cast
(n-k+1), pol); else result = (n - k) * beta(static_cast
(k+1), static_cast
(n-k), pol); if(result == 0) return policies::raise_overflow_error
(function, 0, pol); result = 1 / result; } // convert to nearest integer: return ceil(result - 0.5f); } // // Type float can only store the first 35 factorials, in order to // increase the chance that we can use a table driven implementation // we'll promote to double: // template <> inline float binomial_coefficient
>(unsigned n, unsigned k, const policies::policy<>& pol) { return policies::checked_narrowing_cast
>(binomial_coefficient
(n, k, pol), "boost::math::binomial_coefficient<%1%>(unsigned,unsigned)"); } template
inline T binomial_coefficient(unsigned n, unsigned k) { return binomial_coefficient
(n, k, policies::policy<>()); } } // namespace math } // namespace boost #endif // BOOST_MATH_SF_BINOMIAL_HPP
binomial.hpp
Dirección de la página
Dirección del archivo
Anterior
6/35
Siguiente
Descargar
( 2 KB )
Comments
Total ratings:
0
Average rating:
No clasificado
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.