commit c9170a62b56126a98aad4c16f65580e546a08a52
parent 0890651988b8145a5d6c1ba21939f20a4b821fef
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Tue, 24 Oct 2017 11:21:42 +0200
Add an ASSERT on Henyey-Greenstein g parameter being in [-1 1].
Diffstat:
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/ssp.h b/src/ssp.h
@@ -491,7 +491,7 @@ static INLINE double
ssp_ran_sphere_hg_local_pdf(const double g, const double sample[3])
{
double epsilon_g, epsilon_mu;
- ASSERT(sample && d3_is_normalized(sample));
+ ASSERT(fabs(g) <= 1 && sample && d3_is_normalized(sample));
if (g>0) {
epsilon_g = 1-g;
epsilon_mu = 1-sample[2];
@@ -511,7 +511,7 @@ static INLINE double*
ssp_ran_sphere_hg_local(struct ssp_rng* rng, const double g, double sample[4])
{
double phi, R, cos_theta, sin_theta;
- ASSERT(rng && sample);
+ ASSERT(fabs(g) <= 1 && rng && sample);
phi = 2 * PI * ssp_rng_canonical(rng);
R = ssp_rng_canonical(rng);
cos_theta = 2*R*(1+g)*(1+g)*(g*(R-1)+1)
@@ -533,7 +533,8 @@ ssp_ran_sphere_hg_pdf
const double sample[3])
{
double epsilon_g, epsilon_mu;
- ASSERT(up && sample && d3_is_normalized(up) && d3_is_normalized(sample));
+ ASSERT(fabs(g) <= 1 &&
+ up && sample && d3_is_normalized(up) && d3_is_normalized(sample));
if (g>0) {
epsilon_g = 1-g;
epsilon_mu = 1-d3_dot(sample,up);
@@ -555,7 +556,7 @@ ssp_ran_sphere_hg
{
double sample_local[4];
double basis[9];
- ASSERT(rng && up && sample && d3_is_normalized(up));
+ ASSERT(fabs(g) <= 1 && rng && up && sample && d3_is_normalized(up));
ssp_ran_sphere_hg_local(rng, g, sample_local);
sample[3] = sample_local[3];
return d33_muld3(sample, d33_basis(basis, up), sample_local);