double normalized_diffusion_profile( const double r, const double l, const double s, const double a) { // Equation 3. return a * normalized_diffusion_profile(r, l / s); }
float normalized_diffusion_profile( const float r, const float l, const float s, const float a) { // Equation 3. return a * normalized_diffusion_profile(r, l / s); }
float normalized_diffusion_pdf( const float r, const float d) { return abs(r) < 1.0e-6f ? 1.0f / (2.0f * d) : r * TwoPi<float>() * normalized_diffusion_profile(r, d); }
double normalized_diffusion_pdf( const double r, const double d) { return r * TwoPi * normalized_diffusion_profile(r, d); }
float normalized_diffusion_pdf( const float r, const float d) { return normalized_diffusion_profile(r, d); }