commit 656873e0a0f346c4da7be3b183870eacfa429dcb
parent 936329e2a74a113488f4d369df25832fea3a8d57
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Sat, 21 Sep 2019 14:41:59 +0200
Overall updates of the dependencies
Replace the deprecated RSys [N]CHECK macros. Update the scene sessions
API by the scene view one.
Diffstat:
7 files changed, 353 insertions(+), 352 deletions(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -24,10 +24,10 @@ option(NO_TEST "Disable the test" OFF)
################################################################################
# Check dependencies
################################################################################
-find_package(RCMake 0.2.3 REQUIRED)
-find_package(RSys 0.3 REQUIRED)
-find_package(StarSP 0.3 REQUIRED)
-find_package(Star3D 0.3 REQUIRED)
+find_package(RCMake 0.4 REQUIRED)
+find_package(RSys 0.8 REQUIRED)
+find_package(StarSP 0.8 REQUIRED)
+find_package(Star3D 0.6 REQUIRED)
find_package(OpenMP 1.2 REQUIRED)
find_package(PkgConfig REQUIRED)
diff --git a/src/sschiff_estimator.c b/src/sschiff_estimator.c
@@ -80,6 +80,7 @@ struct integrator_context {
/* Geometry of the micro particle */
struct s3d_shape* shape;
struct s3d_scene* scene;
+ struct s3d_scene_view* view;
struct ssp_rng* rng; /* Random Number Generator */
size_t nwavelengths; /* #wavelengths */
@@ -247,7 +248,7 @@ self_hit
static res_T
compute_path_length
(struct sschiff_device* dev,
- struct s3d_scene* scn,
+ struct s3d_scene_view* view,
const struct s3d_hit* first_hit,
const float ray_org[3],
const float ray_dir[3],
@@ -258,7 +259,7 @@ compute_path_length
struct s3d_hit hit_from, hit;
double len = 0;
float dst;
- ASSERT(scn && first_hit && ray_org && ray_dir && !S3D_HIT_NONE(first_hit));
+ ASSERT(view && first_hit && ray_org && ray_dir && !S3D_HIT_NONE(first_hit));
ASSERT(scale > 0);
(void)dev;
@@ -268,7 +269,7 @@ compute_path_length
do {
do {
range[0] = nextafterf(range[0], range[1]);
- S3D(scene_trace_ray(scn, ray_org, ray_dir, range, NULL, &hit));
+ S3D(scene_view_trace_ray(view, ray_org, ray_dir, range, NULL, &hit));
} while(hit.distance < range[0] || self_hit(&hit_from, &hit, 1.e-6f));
if(S3D_HIT_NONE(&hit))
@@ -280,7 +281,7 @@ compute_path_length
do {
range[0] = nextafterf(range[0], range[1]);
- S3D(scene_trace_ray(scn, ray_org, ray_dir, range, NULL, &hit));
+ S3D(scene_view_trace_ray(view, ray_org, ray_dir, range, NULL, &hit));
} while(hit.distance < range[0] || self_hit(&hit_from, &hit, 1.e-6f));
range[0] = hit.distance;
@@ -439,12 +440,12 @@ accum_monte_carlo_weight
f3_mulf(y, axis_y, (float)sample[1]);
f3_add(ray_org[0], f3_add(ray_org[0], x, y), org);
- S3D(scene_trace_ray(ctx->scene, ray_org[0], axis_z, range, NULL, &hit));
+ S3D(scene_view_trace_ray(ctx->view, ray_org[0], axis_z, range, NULL, &hit));
/* NULL cross section and differential cross section weight */
if(S3D_HIT_NONE(&hit))
break;
- res = compute_path_length(dev, ctx->scene, &hit, ray_org[0], axis_z,
+ res = compute_path_length(dev, ctx->view, &hit, ray_org[0], axis_z,
dist_scaling, &path_length[0]);
if(res != RES_OK) { /* Handle numerical/geometry issues */
++nfailures;
@@ -464,11 +465,11 @@ accum_monte_carlo_weight
f3_mulf(y, axis_y, (float)sample[1]);
f3_add(ray_org[1], f3_add(ray_org[1], x, y), org);
- S3D(scene_trace_ray(ctx->scene, ray_org[1], axis_z, range, NULL, &hit));
+ S3D(scene_view_trace_ray(ctx->view, ray_org[1], axis_z, range, NULL, &hit));
if(S3D_HIT_NONE(&hit)) /* NULL differential cross section weight */
break;
- res = compute_path_length(dev, ctx->scene, &hit, ray_org[1], axis_z,
+ res = compute_path_length(dev, ctx->view, &hit, ray_org[1], axis_z,
dist_scaling, &path_length[1]);
if(res != RES_OK) { /* Handle numerical/geometry issues */
++nfailures;
@@ -511,7 +512,7 @@ radiative_properties
ASSERT(dev && ndirs && ctx && area_scaling > 0 && dist_scaling > 0);
(void)istep;
- S3D(scene_get_aabb(ctx->scene, lower, upper));
+ S3D(scene_view_get_aabb(ctx->view, lower, upper));
/* AABB vertex layout
* 6-------7
@@ -549,12 +550,12 @@ radiative_properties
}
FOR_EACH(idir, 0, ndirs) {
- float dir[4];
+ float dir[3];
float basis[9];
float transform[12];
float pt[8][3];
- ssp_ran_sphere_uniform(ctx->rng, dir);
+ ssp_ran_sphere_uniform_float(ctx->rng, dir, NULL);
/* Build the transformation matrix from world to footprint space. Use the
* AABB centroid as the origin of the footprint space. */
@@ -1224,7 +1225,7 @@ begin_realisation
struct integrator_context* ctx)
{
res_T res = RES_OK;
- ASSERT(dev && distrib && volume_scaling && ctx);
+ ASSERT(dev && distrib && volume_scaling && ctx && !ctx->view);
/* Sample a particle */
res = distrib->sample
@@ -1240,17 +1241,14 @@ begin_realisation
}
/* Build the Star-3D representation of the sampled shape */
- S3D(scene_begin_session(ctx->scene, S3D_TRACE));
+ S3D(scene_view_create(ctx->scene, S3D_TRACE, &ctx->view));
exit:
return res;
error:
- {
- /* Disable active session if necessary */
- int mask;
- if(S3D(scene_get_session_mask(ctx->scene, &mask)), mask) {
- S3D(scene_end_session(ctx->scene));
- }
+ if(ctx->view) {
+ S3D(scene_view_ref_put(ctx->view));
+ ctx->view = NULL;
}
goto exit;
}
@@ -1258,8 +1256,9 @@ error:
static FINLINE void
end_realisation(struct integrator_context* ctx)
{
- ASSERT(ctx);
- S3D(scene_end_session(ctx->scene));
+ ASSERT(ctx && ctx->view);
+ S3D(scene_view_ref_put(ctx->view));
+ ctx->view = NULL;
}
static void
@@ -1609,7 +1608,6 @@ sschiff_integrate
/* Merge the per thread integration results */
FOR_EACH(i, 0, dev->nthreads) {
- size_t iwlen;
FOR_EACH(iwlen, 0, nwavelengths) {
size_t iangle;
#define MC_ACCUM(Data) { \
diff --git a/src/test_sschiff_device.c b/src/test_sschiff_device.c
@@ -43,58 +43,58 @@ main(int argc, char** argv)
(void)argc, (void)argv;
- CHECK(sschiff_device_create(NULL, NULL, N, 0, NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_create(NULL, NULL, N, 0, NULL, &dev), RES_OK);
+ CHK(sschiff_device_create(NULL, NULL, N, 0, NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_create(NULL, NULL, N, 0, NULL, &dev) == RES_OK);
- CHECK(sschiff_device_ref_get(NULL), RES_BAD_ARG);
- CHECK(sschiff_device_ref_get(dev), RES_OK);
- CHECK(sschiff_device_ref_put(NULL), RES_BAD_ARG);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
+ CHK(sschiff_device_ref_get(NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_ref_get(dev) == RES_OK);
+ CHK(sschiff_device_ref_put(NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
mem_init_proxy_allocator(&allocator, &mem_default_allocator);
- CHECK(MEM_ALLOCATED_SIZE(&allocator), 0);
- CHECK(sschiff_device_create(NULL, &allocator, N, 1, NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_create(NULL, &allocator, N, 1, NULL, &dev), RES_OK);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
- CHECK(MEM_ALLOCATED_SIZE(&allocator), 0);
+ CHK(MEM_ALLOCATED_SIZE(&allocator) == 0);
+ CHK(sschiff_device_create(NULL, &allocator, N, 1, NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_create(NULL, &allocator, N, 1, NULL, &dev) == RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
+ CHK(MEM_ALLOCATED_SIZE(&allocator) == 0);
- CHECK(logger_init(&allocator, &logger), RES_OK);
+ CHK(logger_init(&allocator, &logger) == RES_OK);
logger_set_stream(&logger, LOG_OUTPUT, log_stream, NULL);
logger_set_stream(&logger, LOG_ERROR, log_stream, NULL);
logger_set_stream(&logger, LOG_WARNING, log_stream, NULL);
- CHECK(sschiff_device_create(&logger, NULL, N, 0, NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_create(&logger, NULL, N, 0, NULL, &dev), RES_OK);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
+ CHK(sschiff_device_create(&logger, NULL, N, 0, NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_create(&logger, NULL, N, 0, NULL, &dev) == RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
- CHECK(sschiff_device_create(&logger, &allocator, N, 1, NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_create(&logger, &allocator, N, 1, NULL, &dev), RES_OK);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
+ CHK(sschiff_device_create(&logger, &allocator, N, 1, NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_create(&logger, &allocator, N, 1, NULL, &dev) == RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
- CHECK(s3d_device_create(NULL, NULL, 0, &s3d), RES_OK);
- CHECK(sschiff_device_create(NULL, NULL, N, 0, s3d, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_create(NULL, NULL, N, 0, s3d, &dev), RES_OK);
+ CHK(s3d_device_create(NULL, NULL, 0, &s3d) == RES_OK);
+ CHK(sschiff_device_create(NULL, NULL, N, 0, s3d, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_create(NULL, NULL, N, 0, s3d, &dev) == RES_OK);
- CHECK(s3d_device_ref_put(s3d), RES_OK);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
+ CHK(s3d_device_ref_put(s3d) == RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
- CHECK(sschiff_device_create(NULL, NULL, 0, 0, NULL, &dev), RES_BAD_ARG);
- CHECK(sschiff_device_create(NULL, NULL, 1, 0, NULL, &dev), RES_OK);
+ CHK(sschiff_device_create(NULL, NULL, 0, 0, NULL, &dev) == RES_BAD_ARG);
+ CHK(sschiff_device_create(NULL, NULL, 1, 0, NULL, &dev) == RES_OK);
- CHECK(sschiff_device_get_threads_count(NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_get_threads_count(dev, NULL), RES_BAD_ARG);
- CHECK(sschiff_device_get_threads_count(NULL, &nthreads), RES_BAD_ARG);
- CHECK(sschiff_device_get_threads_count(dev, &nthreads), RES_OK);
- CHECK(nthreads, 1);
+ CHK(sschiff_device_get_threads_count(NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_get_threads_count(dev, NULL) == RES_BAD_ARG);
+ CHK(sschiff_device_get_threads_count(NULL, &nthreads) == RES_BAD_ARG);
+ CHK(sschiff_device_get_threads_count(dev, &nthreads) == RES_OK);
+ CHK(nthreads == 1);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
logger_release(&logger);
check_memory_allocator(&allocator);
mem_shutdown_proxy_allocator(&allocator);
- CHECK(mem_allocated_size(), 0);
+ CHK(mem_allocated_size() == 0);
return 0;
}
diff --git a/src/test_sschiff_estimator_cylinder.c b/src/test_sschiff_estimator_cylinder.c
@@ -49,7 +49,7 @@ get_material_property
struct sschiff_material_properties* props)
{
(void)mtl;
- CHECK(eq_eps(wavelength, 0.6, 1.e-6), 1);
+ CHK(eq_eps(wavelength, 0.6, 1.e-6) == 1);
props->medium_refractive_index = 4.0/3.0;
props->relative_imaginary_refractive_index = 4.e-3;
props->relative_real_refractive_index = 1.01;
@@ -66,7 +66,7 @@ sample_cylinder
double sphere_volume;
double sample;
- NCHECK(volume_scaling, NULL);
+ CHK(volume_scaling != NULL);
sample = ssp_ran_lognormal(rng, log(sampler_ctx->mean_radius), log(sampler_ctx->sigma));
sphere_volume = 4.0*PI*sample*sample*sample / 3.0;
@@ -421,12 +421,12 @@ main(int argc, char** argv)
mem_init_proxy_allocator(&allocator, &mem_default_allocator);
- CHECK(s3d_device_create(NULL, &allocator, 0, &s3d), RES_OK);
- CHECK(s3d_shape_create_mesh(s3d, &shape), RES_OK);
+ CHK(s3d_device_create(NULL, &allocator, 0, &s3d) == RES_OK);
+ CHK(s3d_shape_create_mesh(s3d, &shape) == RES_OK);
- CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK);
- CHECK(sschiff_device_create
- (NULL, &allocator, SSCHIFF_NTHREADS_DEFAULT, 1, s3d, &dev), RES_OK);
+ CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK);
+ CHK(sschiff_device_create
+ (NULL, &allocator, SSCHIFF_NTHREADS_DEFAULT, 1, s3d, &dev) == RES_OK);
geometry_init_cylinder(&geometry, 64);
cylinder.geometry = &geometry;
@@ -454,15 +454,15 @@ main(int argc, char** argv)
distrib.context = &sampler_ctx;
time_current(&t0);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wavelength, 1,
+ CHK(sschiff_integrate(dev, rng, &distrib, &wavelength, 1,
sschiff_uniform_scattering_angles, nscatt_angles, ngeoms, ndirs, 0,
- &estimator), RES_OK);
+ &estimator) == RES_OK);
time_current(&t1);
time_sub(&t0, &t1, &t0);
time_dump(&t0, TIME_MIN|TIME_SEC|TIME_MSEC, NULL, buf, sizeof(buf));
- CHECK(sschiff_estimator_get_cross_section
- (estimator, 0, &cross_section), RES_OK);
+ CHK(sschiff_estimator_get_cross_section
+ (estimator, 0, &cross_section) == RES_OK);
printf("%u - x = %g - Wavelength = %g micron - %s\n",
(unsigned)i, x[i], wavelength, buf);
@@ -474,7 +474,7 @@ main(int argc, char** argv)
printf(" Extinction ~ %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
results[i].extinction_E, results[i].extinction_SE,
val->E, val->SE, interval[1] - interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
val = &cross_section.absorption;
result.E = results[i].absorption_E;
@@ -483,7 +483,7 @@ main(int argc, char** argv)
printf(" Absorption ~ %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
results[i].absorption_E, results[i].absorption_SE,
val->E, val->SE, interval[1] - interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
val = &cross_section.scattering;
result.E = results[i].scattering_E;
@@ -492,7 +492,7 @@ main(int argc, char** argv)
printf(" Scattering ~ %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
results[i].scattering_E, results[i].scattering_SE,
val->E, val->SE, interval[1] - interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
val = &cross_section.average_projected_area;
result.E = results[i].avg_proj_area_E;
@@ -501,21 +501,21 @@ main(int argc, char** argv)
printf(" Proj Area ~ %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
results[i].avg_proj_area_E, results[i].avg_proj_area_SE,
val->E, val->SE, interval[1] - interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
- CHECK(sschiff_estimator_ref_put(estimator), RES_OK);
+ CHK(sschiff_estimator_ref_put(estimator) == RES_OK);
}
- CHECK(sschiff_device_ref_put(dev), RES_OK);
- CHECK(ssp_rng_ref_put(rng), RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
+ CHK(ssp_rng_ref_put(rng) == RES_OK);
- CHECK(s3d_device_ref_put(s3d), RES_OK);
- CHECK(s3d_shape_ref_put(shape), RES_OK);
+ CHK(s3d_device_ref_put(s3d) == RES_OK);
+ CHK(s3d_shape_ref_put(shape) == RES_OK);
geometry_release(&geometry);
check_memory_allocator(&allocator);
mem_shutdown_proxy_allocator(&allocator);
- CHECK(mem_allocated_size(), 0);
+ CHK(mem_allocated_size() == 0);
return 0;
}
diff --git a/src/test_sschiff_estimator_rhodo.c b/src/test_sschiff_estimator_rhodo.c
@@ -2561,7 +2561,7 @@ sample_cylinder
double sphere_volume;
double sample;
- NCHECK(volume_scaling, NULL);
+ CHK(volume_scaling != NULL);
sample = ssp_ran_lognormal(rng, log(sampler_ctx->mean_radius), log(sampler_ctx->sigma));
sphere_volume = 4.0*PI*sample*sample*sample / 3.0;
@@ -2613,11 +2613,11 @@ main(int argc, char** argv)
(void)argc, (void)argv;
mem_init_proxy_allocator(&allocator, &mem_default_allocator);
- CHECK(s3d_device_create(NULL, &allocator, 0, &s3d), RES_OK);
- CHECK(s3d_shape_create_mesh(s3d, &shape), RES_OK);
- CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK);
- CHECK(sschiff_device_create
- (NULL, &allocator, SSCHIFF_NTHREADS_DEFAULT, 1, NULL, &dev), RES_OK);
+ CHK(s3d_device_create(NULL, &allocator, 0, &s3d) == RES_OK);
+ CHK(s3d_shape_create_mesh(s3d, &shape) == RES_OK);
+ CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK);
+ CHK(sschiff_device_create
+ (NULL, &allocator, SSCHIFF_NTHREADS_DEFAULT, 1, NULL, &dev) == RES_OK);
geometry_init_cylinder(&geometry, 64);
cylinder.geometry = &geometry;
@@ -2644,12 +2644,12 @@ main(int argc, char** argv)
distrib.sample = sample_cylinder;
distrib.context = &sampler_ctx;
- CHECK(sschiff_integrate(dev, rng, &distrib, &wavelength, 1,
+ CHK(sschiff_integrate(dev, rng, &distrib, &wavelength, 1,
sschiff_uniform_scattering_angles, nscatt_angles, ngeoms, ndirs, 0,
- &estimator), RES_OK);
+ &estimator) == RES_OK);
- CHECK(sschiff_estimator_get_cross_section
- (estimator, 0, &cross_section), RES_OK);
+ CHK(sschiff_estimator_get_cross_section
+ (estimator, 0, &cross_section) == RES_OK);
printf("Wavelength = %g micron\n", wavelength);
@@ -2659,7 +2659,7 @@ main(int argc, char** argv)
compute_estimation_intersection(interval, 4, &result, val);
printf(" Extinction = %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
result.E, result.SE, val->E, val->SE, interval[1]-interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
result.E = cross_section_result.absorption_E;
result.SE = cross_section_result.absorption_SE;
@@ -2667,7 +2667,7 @@ main(int argc, char** argv)
compute_estimation_intersection(interval, 4, &result, val);
printf(" Absorption = %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
result.E, result.SE, val->E, val->SE, interval[1]-interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
result.E = cross_section_result.scattering_E;
result.SE = cross_section_result.scattering_SE;
@@ -2675,58 +2675,58 @@ main(int argc, char** argv)
compute_estimation_intersection(interval, 4, &result, val);
printf(" Scattering = %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
result.E, result.SE, val->E, val->SE, interval[1]-interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
printf(" Proj area ~ %9.3g +/- %9.3g\n",
cross_section.average_projected_area.E,
cross_section.average_projected_area.SE);
- CHECK(sschiff_estimator_get_scattering_angles(estimator, &angles, &count), RES_OK);
- CHECK(count, nscatt_angles);
+ CHK(sschiff_estimator_get_scattering_angles(estimator, &angles, &count) == RES_OK);
+ CHK(count == nscatt_angles);
#define LIMIT_ANGLE sschiff_estimator_get_limit_scattering_angle_index
- CHECK(LIMIT_ANGLE(NULL, 1, NULL), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(estimator, 1, NULL), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(NULL, 0, NULL), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(estimator, 0, NULL), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(NULL, 1, &ilimit_angle), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(estimator, 1, &ilimit_angle), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(NULL, 0, &ilimit_angle), RES_BAD_ARG);
- CHECK(LIMIT_ANGLE(estimator, 0, &ilimit_angle), RES_OK);
+ CHK(LIMIT_ANGLE(NULL, 1, NULL) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(estimator, 1, NULL) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(NULL, 0, NULL) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(estimator, 0, NULL) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(NULL, 1, &ilimit_angle) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(estimator, 1, &ilimit_angle) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(NULL, 0, &ilimit_angle) == RES_BAD_ARG);
+ CHK(LIMIT_ANGLE(estimator, 0, &ilimit_angle) == RES_OK);
#undef LIMIT_ANGLE
- CHECK(ilimit_angle < count, 1);
+ CHK(ilimit_angle < count);
printf(" Limit angle = %g radians; ", angles[ilimit_angle]);
#define GET_N sschiff_estimator_get_wide_scattering_angle_model_parameter
- CHECK(GET_N(NULL, 1, NULL), RES_BAD_ARG);
- CHECK(GET_N(estimator, 1, NULL), RES_BAD_ARG);
- CHECK(GET_N(NULL, 0, NULL), RES_BAD_ARG);
- CHECK(GET_N(estimator, 0, NULL), RES_BAD_ARG);
- CHECK(GET_N(NULL, 1, &n), RES_BAD_ARG);
- CHECK(GET_N(estimator, 1, &n), RES_BAD_ARG);
- CHECK(GET_N(NULL, 0, &n), RES_BAD_ARG);
- CHECK(GET_N(estimator, 0, &n), RES_OK);
+ CHK(GET_N(NULL, 1, NULL) == RES_BAD_ARG);
+ CHK(GET_N(estimator, 1, NULL) == RES_BAD_ARG);
+ CHK(GET_N(NULL, 0, NULL) == RES_BAD_ARG);
+ CHK(GET_N(estimator, 0, NULL) == RES_BAD_ARG);
+ CHK(GET_N(NULL, 1, &n) == RES_BAD_ARG);
+ CHK(GET_N(estimator, 1, &n) == RES_BAD_ARG);
+ CHK(GET_N(NULL, 0, &n) == RES_BAD_ARG);
+ CHK(GET_N(estimator, 0, &n) == RES_OK);
#undef GET_N
printf("n = %g\n", n);
#define DIFF_XSECTION sschiff_estimator_get_differential_cross_section
i = ilimit_angle;
- CHECK(DIFF_XSECTION(NULL, 1, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 1, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 0, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 0, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 1, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 1, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 0, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 0, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 1, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 1, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 0, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 0, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 1, i, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 1, i, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(NULL, 0, i, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION(estimator, 0, i, &result), RES_OK);
+ CHK(DIFF_XSECTION(NULL, 1, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 1, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 0, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 0, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 1, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 1, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 0, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 0, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 1, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 1, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 0, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 0, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 1, i, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 1, i, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(NULL, 0, i, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION(estimator, 0, i, &result) == RES_OK);
#undef DIFF_XSECTION
result2.E = 7.89191057312786e-2;
@@ -2734,26 +2734,26 @@ main(int argc, char** argv)
compute_estimation_intersection(interval, 4, &result2, &result);
printf(" Ws = %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
result2.E, result2.SE, result.E, result.SE, interval[1] - interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
#define DIFF_XSECTION_CUMUL \
sschiff_estimator_get_differential_cross_section_cumulative
- CHECK(DIFF_XSECTION_CUMUL(NULL, 1, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 1, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 0, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 0, nscatt_angles, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 1, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 1, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 0, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 0, i, NULL), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 1, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 1, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 0, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 0, nscatt_angles, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 1, i, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 1, i, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(NULL, 0, i, &result), RES_BAD_ARG);
- CHECK(DIFF_XSECTION_CUMUL(estimator, 0, i, &result), RES_OK);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 1, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 1, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 0, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 0, nscatt_angles, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 1, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 1, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 0, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 0, i, NULL) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 1, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 1, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 0, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 0, nscatt_angles, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 1, i, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 1, i, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(NULL, 0, i, &result) == RES_BAD_ARG);
+ CHK(DIFF_XSECTION_CUMUL(estimator, 0, i, &result) == RES_OK);
#undef DIFF_XSECTION_CUMUL
result2.E = 2.57417550513944;
@@ -2761,17 +2761,17 @@ main(int argc, char** argv)
compute_estimation_intersection(interval, 4, &result2, &result);
printf(" Wc = %9.3g +/- %9.3g ~ %9.3g +/- %9.3g (%9.3g)\n",
result2.E, result2.SE, result.E, result.SE, interval[1] - interval[0]);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
#define PHASE_FUNCTION sschiff_estimator_get_phase_function
- CHECK(PHASE_FUNCTION(NULL, 1, NULL), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(estimator, 1, NULL), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(NULL, 0, NULL), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(estimator, 0, NULL), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(NULL, 1, &func), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(estimator, 1, &func), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(NULL, 0, &func), RES_BAD_ARG);
- CHECK(PHASE_FUNCTION(estimator, 0, &func), RES_OK);
+ CHK(PHASE_FUNCTION(NULL, 1, NULL) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(estimator, 1, NULL) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(NULL, 0, NULL) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(estimator, 0, NULL) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(NULL, 1, &func) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(estimator, 1, &func) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(NULL, 0, &func) == RES_BAD_ARG);
+ CHK(PHASE_FUNCTION(estimator, 0, &func) == RES_OK);
#undef PHASE_FUNCTION
printf("\n# Phase function\n");
@@ -2787,19 +2787,19 @@ main(int argc, char** argv)
* is not sufficiently well estimated due to a limited number of
* realisations. */
if(i <= ilimit_angle) {
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
}
}
#define CUMULATIVE sschiff_estimator_get_phase_function_cumulative
- CHECK(CUMULATIVE(NULL, 1, NULL), RES_BAD_ARG);
- CHECK(CUMULATIVE(estimator, 1, NULL), RES_BAD_ARG);
- CHECK(CUMULATIVE(NULL, 0, NULL), RES_BAD_ARG);
- CHECK(CUMULATIVE(estimator, 0, NULL), RES_BAD_ARG);
- CHECK(CUMULATIVE(NULL, 1, &cumul), RES_BAD_ARG);
- CHECK(CUMULATIVE(estimator, 1, &cumul), RES_BAD_ARG);
- CHECK(CUMULATIVE(NULL, 0, &cumul), RES_BAD_ARG);
- CHECK(CUMULATIVE(estimator, 0, &cumul), RES_OK);
+ CHK(CUMULATIVE(NULL, 1, NULL) == RES_BAD_ARG);
+ CHK(CUMULATIVE(estimator, 1, NULL) == RES_BAD_ARG);
+ CHK(CUMULATIVE(NULL, 0, NULL) == RES_BAD_ARG);
+ CHK(CUMULATIVE(estimator, 0, NULL) == RES_BAD_ARG);
+ CHK(CUMULATIVE(NULL, 1, &cumul) == RES_BAD_ARG);
+ CHK(CUMULATIVE(estimator, 1, &cumul) == RES_BAD_ARG);
+ CHK(CUMULATIVE(NULL, 0, &cumul) == RES_BAD_ARG);
+ CHK(CUMULATIVE(estimator, 0, &cumul) == RES_OK);
#undef CUMULATIVE
printf("\n# Cumulative phase function\n");
@@ -2815,31 +2815,31 @@ main(int argc, char** argv)
* is not sufficiently well estimated due to a limited number of
* realisations. */
if(i <= ilimit_angle) {
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
}
}
- NCHECK(sa_add(thetas, 2000), NULL);
+ CHK(sa_add(thetas, 2000) != NULL);
#define INV_CUMULATIVE sschiff_estimator_inverse_cumulative_phase_function
- CHECK(INV_CUMULATIVE(NULL, 1, NULL, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 1, NULL, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 0, NULL, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 0, NULL, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 1, thetas, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 1, thetas, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 0, thetas, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 0, thetas, 0), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 1, NULL, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 1, NULL, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 0, NULL, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 0, NULL, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 1, thetas, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 1, thetas, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(NULL, 0, thetas, 2), RES_BAD_ARG);
- CHECK(INV_CUMULATIVE(estimator, 0, thetas, 2), RES_OK);
- CHECK(eq_eps(thetas[0], 0, 1.e-6), 1);
- CHECK(eq_eps(thetas[1], PI, 1.e-6), 1);
- CHECK(INV_CUMULATIVE(estimator, 0, thetas, sa_size(thetas)), RES_OK);
+ CHK(INV_CUMULATIVE(NULL, 1, NULL, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 1, NULL, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 0, NULL, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 0, NULL, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 1, thetas, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 1, thetas, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 0, thetas, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 0, thetas, 0) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 1, NULL, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 1, NULL, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 0, NULL, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 0, NULL, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 1, thetas, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 1, thetas, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(NULL, 0, thetas, 2) == RES_BAD_ARG);
+ CHK(INV_CUMULATIVE(estimator, 0, thetas, 2) == RES_OK);
+ CHK(eq_eps(thetas[0], 0, 1.e-6) == 1);
+ CHK(eq_eps(thetas[1], PI, 1.e-6) == 1);
+ CHK(INV_CUMULATIVE(estimator, 0, thetas, sa_size(thetas)) == RES_OK);
#undef INV_CUMULATIVE
printf("\n# Inverse cumulative phase function\n");
@@ -2848,20 +2848,20 @@ main(int argc, char** argv)
error = fabs(thetas[i] - inverse_cumulative[i]) / inverse_cumulative[i];
printf("CDF^-1(%9.3g) = %9.3g ~ %9.3g; err = %.3f%%\n",
(double)i*(1.0/1999.0), thetas[i], inverse_cumulative[i], error*100);
- CHECK(interval[0] <= interval[1], 1);
+ CHK(interval[0] <= interval[1]);
}
sa_release(thetas);
- CHECK(sschiff_estimator_ref_put(estimator), RES_OK);
- CHECK(sschiff_device_ref_put(dev), RES_OK);
- CHECK(ssp_rng_ref_put(rng), RES_OK);
+ CHK(sschiff_estimator_ref_put(estimator) == RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
+ CHK(ssp_rng_ref_put(rng) == RES_OK);
- CHECK(s3d_device_ref_put(s3d), RES_OK);
- CHECK(s3d_shape_ref_put(shape), RES_OK);
+ CHK(s3d_device_ref_put(s3d) == RES_OK);
+ CHK(s3d_shape_ref_put(shape) == RES_OK);
geometry_release(&geometry);
check_memory_allocator(&allocator);
mem_shutdown_proxy_allocator(&allocator);
- CHECK(mem_allocated_size(), 0);
+ CHK(mem_allocated_size() == 0);
return 0;
}
diff --git a/src/test_sschiff_estimator_sphere.c b/src/test_sschiff_estimator_sphere.c
@@ -49,9 +49,9 @@ get_material_property
{
struct sampler_context* ctx = mtl;
- NCHECK(mtl, NULL);
- NCHECK(properties, NULL);
- CHECK(eq_eps(ctx->wavelength, wavelength, 1.e-8), 1);
+ CHK(mtl != NULL);
+ CHK(properties != NULL);
+ CHK(eq_eps(ctx->wavelength, wavelength, 1.e-8) == 1);
properties->medium_refractive_index = ctx->medium_refractive_index;
properties->relative_real_refractive_index =
@@ -70,8 +70,8 @@ sample_sphere
struct sampler_context* sampler_ctx = sampler_context;
struct sphere sphere;
- NCHECK(rng, NULL);
- NCHECK(volume_scaling, NULL);
+ CHK(rng != NULL);
+ CHK(volume_scaling != NULL);
sphere.geometry = &sampler_ctx->geometry;
sphere.radius = (float)ssp_ran_lognormal
@@ -101,9 +101,9 @@ check_schiff_estimation
const size_t ndirs = 100;
const double wavelength = sampler_ctx->wavelength;
- NCHECK(sampler_ctx, NULL);
- NCHECK(results, NULL);
- NCHECK(results, 0);
+ CHK(sampler_ctx != NULL);
+ CHK(results != NULL);
+ CHK(results != 0);
distrib.material.get_property = get_material_property;
distrib.material.material = sampler_ctx;
@@ -124,37 +124,38 @@ check_schiff_estimation
distrib.characteristic_length = sampler_ctx->mean_radius * 2.0;
time_current(&t0);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wavelength, 1,
- sschiff_uniform_scattering_angles, nscatt_angles, ngeoms, ndirs, 0, &estimator), RES_OK);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wavelength, 1,
+ sschiff_uniform_scattering_angles, nscatt_angles, ngeoms, ndirs, 0, &estimator)
+ == RES_OK);
time_current(&t1);
time_sub(&t0, &t1, &t0);
time_dump(&t0, TIME_MIN|TIME_SEC|TIME_MSEC, NULL, buf, sizeof(buf));
printf("%d - mean radius: %5.2f micron - %s: \n", (int)i, results[i].mean_radius, buf);
- CHECK(sschiff_estimator_get_cross_sections(estimator, &cross_section), RES_OK);
+ CHK(sschiff_estimator_get_cross_sections(estimator, &cross_section) == RES_OK);
val = &cross_section.extinction;
dst = val->E - results[i].extinction_cross_section;
printf(" Extinction cross section = %7.2f ~ %12.7f +/- %12.7f (%6.2f)\n",
results[i].extinction_cross_section, val->E, val->SE, dst / val->SE);
- CHECK(eq_eps(val->E, results[i].extinction_cross_section, 4*val->SE), 1);
+ CHK(eq_eps(val->E, results[i].extinction_cross_section, 4*val->SE) == 1);
val = &cross_section.absorption;
dst = val->E - results[i].absorption_cross_section;
printf(" Absorption cross section = %7.2f ~ %12.7f +/- %12.7f (%6.2f)\n",
results[i].absorption_cross_section, val->E, val->SE, dst / val->SE);
- CHECK(eq_eps(val->E, results[i].absorption_cross_section, 4*val->SE), 1);
+ CHK(eq_eps(val->E, results[i].absorption_cross_section, 4*val->SE) == 1);
val = &cross_section.scattering;
dst = val->E - results[i].scattering_cross_section;
printf(" Scattering cross section = %7.2f ~ %12.7f +/- %12.7f (%6.2f)\n",
results[i].scattering_cross_section, val->E, val->SE, dst / val->SE);
- CHECK(eq_eps(val->E, results[i].scattering_cross_section, 4*val->SE), 1);
+ CHK(eq_eps(val->E, results[i].scattering_cross_section, 4*val->SE) == 1);
val = &cross_section.average_projected_area;
printf(" Averavege projected area = %12.7g +/- %12.7g\n", val->E, val->SE);
- CHECK(sschiff_estimator_ref_put(estimator), RES_OK);
+ CHK(sschiff_estimator_ref_put(estimator) == RES_OK);
}
}
@@ -200,9 +201,9 @@ main(int argc, char** argv)
mem_init_proxy_allocator(&allocator, &mem_default_allocator);
- CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK);
- CHECK(sschiff_device_create
- (NULL, &allocator, SSCHIFF_NTHREADS_DEFAULT, 1, NULL, &dev), RES_OK);
+ CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK);
+ CHK(sschiff_device_create
+ (NULL, &allocator, SSCHIFF_NTHREADS_DEFAULT, 1, NULL, &dev) == RES_OK);
geometry_init_sphere(&sampler_ctx.geometry, 64);
@@ -219,128 +220,130 @@ main(int argc, char** argv)
distrib.sample = sample_sphere;
distrib.context = &sampler_ctx;
- CHECK(sschiff_integrate(NULL, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(NULL, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
-
- CHECK(sschiff_integrate(dev, rng, &distrib, &wlen, 1,
- sschiff_uniform_scattering_angles, 1, 1, 1, 0, &estimator), RES_BAD_ARG);
- CHECK(sschiff_integrate(dev, rng, &distrib, &wlen, 1,
- sschiff_uniform_scattering_angles, 10, 1000, 1, 0, &estimator), RES_OK);
-
- CHECK(sschiff_estimator_get_wavelengths(NULL, NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_wavelengths(estimator, NULL, NULL), RES_OK);/*Useless*/
- CHECK(sschiff_estimator_get_wavelengths(NULL, NULL, &count), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_wavelengths(estimator, NULL, &count), RES_OK);
- CHECK(count, 1);
- CHECK(sschiff_estimator_get_wavelengths(NULL, &dbls, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_wavelengths(estimator, &dbls, NULL), RES_OK);
- CHECK(dbls[0], wlen);
- CHECK(sschiff_estimator_get_wavelengths(NULL, &dbls, &count), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_wavelengths(estimator, &dbls, &count), RES_OK);
- CHECK(dbls[0], wlen);
- CHECK(count, 1);
-
- CHECK(sschiff_estimator_get_scattering_angles(NULL, NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_scattering_angles(estimator, NULL, NULL), RES_OK); /* Useless */
- CHECK(sschiff_estimator_get_scattering_angles(NULL, NULL, &count), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_scattering_angles(estimator, NULL, &count), RES_OK);
- CHECK(count, 10);
- CHECK(sschiff_estimator_get_scattering_angles(NULL, &dbls, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_scattering_angles(estimator, &dbls, NULL), RES_OK); /* Useless */
+ CHK(sschiff_integrate(NULL, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, NULL, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 0, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, NULL, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, NULL, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, NULL, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(NULL, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 1, NULL, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 1,
+ sschiff_uniform_scattering_angles, 1, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 1,
+ sschiff_uniform_scattering_angles, 2, 1, 1, 0, &estimator) == RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, &wlen, 1,
+ sschiff_uniform_scattering_angles, 10, 1000, 1, 0, &estimator) == RES_OK);
+
+ CHK(sschiff_estimator_get_wavelengths(NULL, NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_wavelengths(estimator, NULL, NULL) == RES_OK);/*Useless*/
+ CHK(sschiff_estimator_get_wavelengths(NULL, NULL, &count) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_wavelengths(estimator, NULL, &count) == RES_OK);
+ CHK(count == 1);
+ CHK(sschiff_estimator_get_wavelengths(NULL, &dbls, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_wavelengths(estimator, &dbls, NULL) == RES_OK);
+ CHK(dbls[0] == wlen);
+ CHK(sschiff_estimator_get_wavelengths(NULL, &dbls, &count) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_wavelengths(estimator, &dbls, &count) == RES_OK);
+ CHK(dbls[0] == wlen);
+ CHK(count == 1);
+
+ CHK(sschiff_estimator_get_scattering_angles(NULL, NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_scattering_angles(estimator, NULL, NULL) == RES_OK); /* Useless */
+ CHK(sschiff_estimator_get_scattering_angles(NULL, NULL, &count) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_scattering_angles(estimator, NULL, &count) == RES_OK);
+ CHK(count == 10);
+ CHK(sschiff_estimator_get_scattering_angles(NULL, &dbls, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_scattering_angles(estimator, &dbls, NULL) == RES_OK); /* Useless */
FOR_EACH(i, 0, count)
- CHECK(eq_eps(dbls[i], (double)i*PI/((double)count-1), 1.e-6), 1);
- CHECK(sschiff_estimator_get_scattering_angles(NULL, &dbls, &count), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_scattering_angles(estimator, &dbls, &count), RES_OK);
+ CHK(eq_eps(dbls[i], (double)i*PI/((double)count-1), 1.e-6) == 1);
+ CHK(sschiff_estimator_get_scattering_angles(NULL, &dbls, &count) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_scattering_angles(estimator, &dbls, &count) == RES_OK);
FOR_EACH(i, 0, count)
- CHECK(eq_eps(dbls[i], (double)i*PI/((double)count-1), 1.e-6), 1);
- CHECK(count, 10);
-
- CHECK(sschiff_estimator_get_realisations_count(NULL, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_realisations_count(estimator, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_realisations_count(NULL, &count), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_realisations_count(estimator, &count), RES_OK);
- CHECK(count, 1000);
-
- CHECK(sschiff_estimator_get_cross_section(NULL, 1, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(estimator, 1, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(NULL, 1, &cross_section), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(estimator, 1, &cross_section), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(NULL, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(estimator, 0, NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(NULL, 0, &cross_section), RES_BAD_ARG);
- CHECK(sschiff_estimator_get_cross_section(estimator, 0, &cross_section), RES_OK);
-
- CHECK(sschiff_estimator_ref_get(NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_ref_get(estimator), RES_OK);
- CHECK(sschiff_estimator_ref_put(NULL), RES_BAD_ARG);
- CHECK(sschiff_estimator_ref_put(estimator), RES_OK);
- CHECK(sschiff_estimator_ref_put(estimator), RES_OK);
+ CHK(eq_eps(dbls[i], (double)i*PI/((double)count-1), 1.e-6) == 1);
+ CHK(count == 10);
+
+ CHK(sschiff_estimator_get_realisations_count(NULL, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_realisations_count(estimator, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_realisations_count(NULL, &count) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_realisations_count(estimator, &count) == RES_OK);
+ CHK(count == 1000);
+
+ CHK(sschiff_estimator_get_cross_section(NULL, 1, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(estimator, 1, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(NULL, 1, &cross_section) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(estimator, 1, &cross_section) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(NULL, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(estimator, 0, NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(NULL, 0, &cross_section) == RES_BAD_ARG);
+ CHK(sschiff_estimator_get_cross_section(estimator, 0, &cross_section) == RES_OK);
+
+ CHK(sschiff_estimator_ref_get(NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_ref_get(estimator) == RES_OK);
+ CHK(sschiff_estimator_ref_put(NULL) == RES_BAD_ARG);
+ CHK(sschiff_estimator_ref_put(estimator) == RES_OK);
+ CHK(sschiff_estimator_ref_put(estimator) == RES_OK);
wlens[0] = 0.2, wlens[1] = 0.6, wlens[2] = 0.4;
- CHECK(sschiff_integrate(dev, rng, &distrib, wlens, 3,
- sschiff_uniform_scattering_angles, 10, 1000, 1, 0, &estimator), RES_BAD_ARG);
+ CHK(sschiff_integrate(dev, rng, &distrib, wlens, 3,
+ sschiff_uniform_scattering_angles, 10, 1000, 1, 0, &estimator) == RES_BAD_ARG);
sampler_ctx.relative_real_refractive_index = 1.1;
check_schiff_estimation(dev, rng, &sampler_ctx, results_n_r_1_1,
@@ -351,13 +354,13 @@ main(int argc, char** argv)
check_schiff_estimation(dev, rng, &sampler_ctx, results_n_r_1_01,
sizeof(results_n_r_1_01)/sizeof(struct result));
- CHECK(sschiff_device_ref_put(dev), RES_OK);
- CHECK(ssp_rng_ref_put(rng), RES_OK);
+ CHK(sschiff_device_ref_put(dev) == RES_OK);
+ CHK(ssp_rng_ref_put(rng) == RES_OK);
geometry_release(&sampler_ctx.geometry);
check_memory_allocator(&allocator);
mem_shutdown_proxy_allocator(&allocator);
- CHECK(mem_allocated_size(), 0);
+ CHK(mem_allocated_size() == 0);
return 0;
}
diff --git a/src/test_sschiff_utils.h b/src/test_sschiff_utils.h
@@ -43,8 +43,8 @@ geometry_init_sphere(struct geometry* sphere, const unsigned ntheta)
double* sin_phi = NULL;
unsigned itheta, iphi;
- NCHECK(sphere, NULL);
- NCHECK(ntheta, 0);
+ CHK(sphere != NULL);
+ CHK(ntheta != 0);
sphere->vertices = NULL;
sphere->indices = NULL;
@@ -117,8 +117,8 @@ geometry_init_cylinder(struct geometry* geometry, const unsigned nsteps)
const double step = 2*PI / (double)nsteps;
unsigned istep;
- NCHECK(geometry, NULL);
- NCHECK(nsteps, 0);
+ CHK(geometry != NULL);
+ CHK(nsteps != 0);
geometry->vertices = NULL;
geometry->indices = NULL;
@@ -173,7 +173,7 @@ geometry_init_cylinder(struct geometry* geometry, const unsigned nsteps)
static INLINE void
geometry_release(struct geometry* geometry)
{
- NCHECK(geometry, NULL);
+ CHK(geometry != NULL);
sa_release(geometry->vertices);
sa_release(geometry->indices);
geometry->vertices = NULL;
@@ -184,11 +184,11 @@ static INLINE void
geometry_dump(struct geometry* geom, FILE* file)
{
size_t i;
- NCHECK(geom, NULL);
- NCHECK(file, NULL);
+ CHK(geom != NULL);
+ CHK(file != NULL);
- CHECK(sa_size(geom->vertices)%3, 0); /* Ensure 3D position */
- CHECK(sa_size(geom->indices)%3, 0); /* Ensure triangular primitives */
+ CHK(sa_size(geom->vertices)%3 == 0); /* Ensure 3D position */
+ CHK(sa_size(geom->indices)%3 == 0); /* Ensure triangular primitives */
FOR_EACH(i, 0, sa_size(geom->vertices)/3) {
fprintf(file, "v %f %f %f\n",
@@ -219,8 +219,8 @@ cylinder_get_indices(const unsigned itri, unsigned ids[3], void* ctx)
struct cylinder* cylinder = ctx;
const size_t i = itri * 3;
- CHECK(sa_size(cylinder->geometry->indices) % 3, 0);
- CHECK(itri < sa_size(cylinder->geometry->indices) / 3, 1);
+ CHK(sa_size(cylinder->geometry->indices) % 3 == 0);
+ CHK(itri < sa_size(cylinder->geometry->indices) / 3);
ids[0] = cylinder->geometry->indices[i + 0];
ids[1] = cylinder->geometry->indices[i + 1];
ids[2] = cylinder->geometry->indices[i + 2];
@@ -232,8 +232,8 @@ cylinder_get_position(const unsigned ivert, float vertex[3], void* ctx)
struct cylinder* cylinder = ctx;
const size_t i = ivert * 3;
- CHECK(sa_size(cylinder->geometry->vertices) % 3, 0);
- CHECK(ivert < sa_size(cylinder->geometry->vertices) / 3, 1);
+ CHK(sa_size(cylinder->geometry->vertices) % 3 == 0);
+ CHK(ivert < sa_size(cylinder->geometry->vertices) / 3);
vertex[0] = cylinder->geometry->vertices[i + 0] * cylinder->radius;
vertex[1] = cylinder->geometry->vertices[i + 1] * cylinder->radius;
vertex[2] = cylinder->geometry->vertices[i + 2] * cylinder->height;
@@ -245,8 +245,8 @@ cylinder_setup_s3d_shape(struct cylinder* cylinder, struct s3d_shape* shape)
struct s3d_vertex_data attrib;
size_t nverts, nprims;
- NCHECK(cylinder, NULL);
- NCHECK(shape, NULL);
+ CHK(cylinder != NULL);
+ CHK(shape != NULL);
attrib.usage = S3D_POSITION;
attrib.type = S3D_FLOAT3;
@@ -273,8 +273,8 @@ sphere_get_indices(const unsigned itri, unsigned ids[3], void* ctx)
struct sphere* sphere = ctx;
const size_t i = itri * 3;
- CHECK(sa_size(sphere->geometry->indices) % 3, 0);
- CHECK(itri < sa_size(sphere->geometry->indices) / 3, 1);
+ CHK(sa_size(sphere->geometry->indices) % 3 == 0);
+ CHK(itri < sa_size(sphere->geometry->indices) / 3);
ids[0] = sphere->geometry->indices[i + 0];
ids[1] = sphere->geometry->indices[i + 1];
ids[2] = sphere->geometry->indices[i + 2];
@@ -286,8 +286,8 @@ sphere_get_position(const unsigned ivert, float vertex[3], void* ctx)
struct sphere* sphere = ctx;
const size_t i = ivert * 3;
- CHECK(sa_size(sphere->geometry->vertices) % 3, 0);
- CHECK(ivert < sa_size(sphere->geometry->vertices) / 3, 1);
+ CHK(sa_size(sphere->geometry->vertices) % 3 == 0);
+ CHK(ivert < sa_size(sphere->geometry->vertices) / 3);
vertex[0] = sphere->geometry->vertices[i + 0] * sphere->radius;
vertex[1] = sphere->geometry->vertices[i + 1] * sphere->radius;
vertex[2] = sphere->geometry->vertices[i + 2] * sphere->radius;
@@ -299,8 +299,8 @@ sphere_setup_s3d_shape(struct sphere* sphere, struct s3d_shape* shape)
struct s3d_vertex_data attrib;
size_t nverts, nprims;
- NCHECK(sphere, NULL);
- NCHECK(shape, NULL);
+ CHK(sphere != NULL);
+ CHK(shape != NULL);
attrib.usage = S3D_POSITION;
attrib.type = S3D_FLOAT3;
@@ -324,7 +324,7 @@ compute_estimation_intersection
const struct sschiff_state* state1)
{
double interval0[2], interval1[2];
- CHECK(scale > 0, 1);
+ CHK(scale > 0);
interval0[0] = state0->E - scale*state0->SE;
interval0[1] = state0->E + scale*state0->SE;
interval1[0] = state1->E - scale*state1->SE;