star-mc

Parallel estimation of Monte Carlo integrators
git clone git://git.meso-star.fr/star-mc.git
Log | Files | Refs | README | LICENSE

commit f249eb11ac779fffe40f3d85d5b181a877f26e1c
parent 839580a5f4211fc2a6648cf044f9188a25be1dea
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Mon, 27 Nov 2017 16:00:36 +0100

Fix deprecations introduced by RSys 0.6

Diffstat:
Mcmake/CMakeLists.txt | 2+-
Msrc/test_smc_device.c | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/test_smc_doubleN.c | 35++++++++++++++++-------------------
Msrc/test_smc_errors.c | 14+++++++-------
Msrc/test_smc_integrate.c | 76++++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/test_smc_light_path.c | 116++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_smc_solve.c | 65++++++++++++++++++++++++++++++++---------------------------------
7 files changed, 187 insertions(+), 191 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -40,7 +40,7 @@ option(NO_TEST "Disable the test" OFF) # Check dependencies ################################################################################ find_package(RCMake 0.3 REQUIRED) -find_package(RSys 0.4 REQUIRED) +find_package(RSys 0.6 REQUIRED) find_package(StarSP 0.5 REQUIRED) find_package(Star3D 0.4) find_package(OpenMP) diff --git a/src/test_smc_device.c b/src/test_smc_device.c @@ -50,60 +50,60 @@ main(int argc, char** argv) struct smc_device* dev; (void)argc, (void)argv; - CHECK(smc_device_create(NULL, NULL, SMC_NTHREADS_DEFAULT, NULL, NULL), RES_BAD_ARG); - CHECK(smc_device_create(NULL, NULL, SMC_NTHREADS_DEFAULT, NULL, &dev), RES_OK); + CHK(smc_device_create(NULL, NULL, SMC_NTHREADS_DEFAULT, NULL, NULL) == RES_BAD_ARG); + CHK(smc_device_create(NULL, NULL, SMC_NTHREADS_DEFAULT, NULL, &dev) == RES_OK); - CHECK(smc_device_ref_get(NULL), RES_BAD_ARG); - CHECK(smc_device_ref_get(dev), RES_OK); - CHECK(smc_device_ref_put(NULL), RES_BAD_ARG); - CHECK(smc_device_ref_put(dev), RES_OK); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(smc_device_ref_get(NULL) == RES_BAD_ARG); + CHK(smc_device_ref_get(dev) == RES_OK); + CHK(smc_device_ref_put(NULL) == RES_BAD_ARG); + CHK(smc_device_ref_put(dev) == RES_OK); + CHK(smc_device_ref_put(dev) == RES_OK); - CHECK(smc_device_create(NULL, NULL, 0, NULL, &dev), RES_BAD_ARG); + CHK(smc_device_create(NULL, NULL, 0, NULL, &dev) == RES_BAD_ARG); mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(MEM_ALLOCATED_SIZE(&allocator), 0); - CHECK(smc_device_create(NULL, &allocator, 1, NULL, NULL), RES_BAD_ARG); - CHECK(smc_device_create(NULL, &allocator, 1, NULL, &dev), RES_OK); - CHECK(smc_device_ref_put(dev), RES_OK); - CHECK(MEM_ALLOCATED_SIZE(&allocator), 0); + CHK(MEM_ALLOCATED_SIZE(&allocator) == 0); + CHK(smc_device_create(NULL, &allocator, 1, NULL, NULL) == RES_BAD_ARG); + CHK(smc_device_create(NULL, &allocator, 1, NULL, &dev) == RES_OK); + CHK(smc_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(smc_device_create(&logger, NULL, 1, NULL, NULL), RES_BAD_ARG); - CHECK(smc_device_create(&logger, NULL, 1, NULL, &dev), RES_OK); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(smc_device_create(&logger, NULL, 1, NULL, NULL) == RES_BAD_ARG); + CHK(smc_device_create(&logger, NULL, 1, NULL, &dev) == RES_OK); + CHK(smc_device_ref_put(dev) == RES_OK); - CHECK(smc_device_create(&logger, &allocator, 4, NULL, NULL), RES_BAD_ARG); - CHECK(smc_device_create(&logger, &allocator, 4, NULL, &dev), RES_OK); + CHK(smc_device_create(&logger, &allocator, 4, NULL, NULL) == RES_BAD_ARG); + CHK(smc_device_create(&logger, &allocator, 4, NULL, &dev) == RES_OK); - CHECK(smc_device_set_rng_type(NULL, NULL), RES_BAD_ARG); - CHECK(smc_device_set_rng_type(dev, NULL), RES_BAD_ARG); - CHECK(smc_device_set_rng_type(NULL, &ssp_rng_ranlux48), RES_BAD_ARG); - CHECK(smc_device_set_rng_type(dev, &ssp_rng_ranlux48), RES_OK); + CHK(smc_device_set_rng_type(NULL, NULL) == RES_BAD_ARG); + CHK(smc_device_set_rng_type(dev, NULL) == RES_BAD_ARG); + CHK(smc_device_set_rng_type(NULL, &ssp_rng_ranlux48) == RES_BAD_ARG); + CHK(smc_device_set_rng_type(dev, &ssp_rng_ranlux48) == RES_OK); - CHECK(smc_device_get_rng_type(NULL, NULL), RES_BAD_ARG); - CHECK(smc_device_get_rng_type(dev, NULL), RES_BAD_ARG); - CHECK(smc_device_get_rng_type(NULL, &type), RES_BAD_ARG); - CHECK(smc_device_get_rng_type(dev, &type), RES_OK); - CHECK(ssp_rng_type_eq(&type, &ssp_rng_ranlux48), 1); + CHK(smc_device_get_rng_type(NULL, NULL) == RES_BAD_ARG); + CHK(smc_device_get_rng_type(dev, NULL) == RES_BAD_ARG); + CHK(smc_device_get_rng_type(NULL, &type) == RES_BAD_ARG); + CHK(smc_device_get_rng_type(dev, &type) == RES_OK); + CHK(ssp_rng_type_eq(&type, &ssp_rng_ranlux48) == 1); - CHECK(smc_device_set_rng_type(dev, &ssp_rng_kiss), RES_OK); - CHECK(smc_device_get_rng_type(dev, &type), RES_OK); - CHECK(ssp_rng_type_eq(&type, &ssp_rng_kiss), 1); + CHK(smc_device_set_rng_type(dev, &ssp_rng_kiss) == RES_OK); + CHK(smc_device_get_rng_type(dev, &type) == RES_OK); + CHK(ssp_rng_type_eq(&type, &ssp_rng_kiss) == 1); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(smc_device_ref_put(dev) == RES_OK); - CHECK(smc_device_create(&logger, &allocator, 4, &ssp_rng_ranlux48, &dev), RES_OK); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(smc_device_create(&logger, &allocator, 4, &ssp_rng_ranlux48, &dev) == RES_OK); + CHK(smc_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_smc_doubleN.c b/src/test_smc_doubleN.c @@ -51,14 +51,12 @@ cos_x(void* value, struct ssp_rng* rng, void* context) double samp; struct smc_doubleN_context* ctx = context; const struct alpha* alpha = ctx->integrand_data; - NCHECK(value, NULL); - NCHECK(rng, NULL); + CHK(value != NULL); + CHK(rng != NULL); samp = ssp_rng_uniform_double(rng, -PI/4.0, PI/4.0); - result[WEIGHT] = - cos(alpha->value*samp) * PI / 2.0; - result[WEIGHT_SENSIBILITY_ALPHA] = - -samp * sin(alpha->value*samp) * PI/2.0; + result[WEIGHT] = cos(alpha->value*samp) * PI / 2.0; + result[WEIGHT_SENSIBILITY_ALPHA] = -samp * sin(alpha->value*samp) * PI/2.0; return RES_OK; } @@ -79,8 +77,7 @@ main(int argc, char** argv) mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &dev), - RES_OK); + CHK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &dev) == RES_OK); integrator.integrand = cos_x; integrator.type = &smc_doubleN; @@ -89,12 +86,12 @@ main(int argc, char** argv) ctx.count = WEIGHTS_COUNT; ctx.integrand_data = &alpha; - CHECK(smc_solve(dev, &integrator, NULL, &estimator), RES_MEM_ERR); + CHK(smc_solve(dev, &integrator, NULL, &estimator) == RES_MEM_ERR); ctx.count = 0; - CHECK(smc_solve(dev, &integrator, &ctx, &estimator), RES_MEM_ERR); + CHK(smc_solve(dev, &integrator, &ctx, &estimator) == RES_MEM_ERR); ctx.count = WEIGHTS_COUNT; - CHECK(smc_solve(dev, &integrator, &ctx, &estimator), RES_OK); - CHECK(smc_estimator_get_status(estimator, &status), RES_OK); + CHK(smc_solve(dev, &integrator, &ctx, &estimator) == RES_OK); + CHK(smc_estimator_get_status(estimator, &status) == RES_OK); /* Check the estimated result */ result = 2*sin(a*PI/4.0) / a; @@ -102,10 +99,10 @@ main(int argc, char** argv) a, result, SMC_DOUBLEN(status.E)[WEIGHT], SMC_DOUBLEN(status.SE)[WEIGHT]); - CHECK(eq_eps + CHK(eq_eps (result, SMC_DOUBLEN(status.E)[WEIGHT], - SMC_DOUBLEN(status.SE)[WEIGHT]), 1); + SMC_DOUBLEN(status.SE)[WEIGHT])); /* Check the estimated sensibility in alpha */ result = 2*(a*PI/4.0*cos(a*PI/4.0) - sin(a*PI/4.0)) / (a*a); @@ -113,16 +110,16 @@ main(int argc, char** argv) a, result, SMC_DOUBLEN(status.E)[WEIGHT_SENSIBILITY_ALPHA], SMC_DOUBLEN(status.SE)[WEIGHT_SENSIBILITY_ALPHA]); - CHECK(eq_eps + CHK(eq_eps (result, SMC_DOUBLEN(status.E)[WEIGHT_SENSIBILITY_ALPHA], - SMC_DOUBLEN(status.SE)[WEIGHT_SENSIBILITY_ALPHA]), 1); + SMC_DOUBLEN(status.SE)[WEIGHT_SENSIBILITY_ALPHA])); - CHECK(smc_estimator_ref_put(estimator), RES_OK); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(smc_estimator_ref_put(estimator) == RES_OK); + CHK(smc_device_ref_put(dev) == RES_OK); 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_smc_errors.c b/src/test_smc_errors.c @@ -74,8 +74,8 @@ main(int argc, char** argv) SMC(estimator_get_status(estimator, &status)); /* result must be 1 with std err = 0 */ - CHECK(SMC_DOUBLE(status.E), 1); - CHECK(SMC_DOUBLE(status.SE), 0); + CHK(SMC_DOUBLE(status.E) == 1); + CHK(SMC_DOUBLE(status.SE) == 0); printf("OK realizations = %lu; KO realizations = %lu\n", (unsigned long)status.N, (unsigned long)status.NF); @@ -89,12 +89,12 @@ main(int argc, char** argv) SMC(estimator_get_status(estimator, &status)); /* it is expected that solve was auto-canceled */ - NCHECK(integrator.max_steps, status.N); - CHECK(status.NF >= integrator.max_failures + 1, 1); + CHK(integrator.max_steps != status.N); + CHK(status.NF >= integrator.max_failures + 1); /* result must be 1 with std err = 0 */ - CHECK(SMC_DOUBLE(status.E), 1); - CHECK(SMC_DOUBLE(status.SE), 0); + CHK(SMC_DOUBLE(status.E) == 1); + CHK(SMC_DOUBLE(status.SE) == 0); printf("OK realizations = %lu; KO realizations = %lu\n", (unsigned long)status.N, (unsigned long)status.NF); @@ -104,7 +104,7 @@ main(int argc, char** argv) 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_smc_integrate.c b/src/test_smc_integrate.c @@ -36,16 +36,16 @@ static void* dbl2_create(struct mem_allocator* allocator, void* ctx) { - NCHECK(allocator, NULL); - CHECK(ctx, (void*)0xC0DE); + CHK(allocator != NULL); + CHK(ctx == (void*)0xC0DE); return MEM_CALLOC(allocator, 2, sizeof(double)); } static void dbl2_destroy(struct mem_allocator* allocator, void* data) { - NCHECK(allocator, NULL); - NCHECK(data, NULL); + CHK(allocator != NULL); + CHK(data != NULL); MEM_RM(allocator, data); } @@ -77,9 +77,9 @@ rcp_x(void* value, struct ssp_rng* rng, void* ctx) double* result = value; double samp; double val; - NCHECK(value, NULL); - NCHECK(rng, NULL); - CHECK(ctx, (void*)0xC0DE); + CHK(value != NULL); + CHK(rng != NULL); + CHK(ctx == (void*)0xC0DE); samp = ssp_rng_uniform_double(rng, 1.0, 4.0); val = 1.0 / samp * 3; result[0] += val; @@ -93,9 +93,9 @@ cos_x(void* value, struct ssp_rng* rng, void* ctx) double* result = value; double samp; double val; - NCHECK(value, NULL); - NCHECK(rng, NULL); - CHECK(ctx, (void*)0xC0DE); + CHK(value != NULL); + CHK(rng != NULL); + CHK(ctx == (void*)0xC0DE); samp = ssp_rng_uniform_double(rng, -PI/4.0, PI/4.0); val = cos(samp) * PI / 2.0; result[0] += val; @@ -116,26 +116,26 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &dev), - RES_OK); + CHK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &dev) + == RES_OK); integrator.integrand = rcp_x; integrator.type = &smc_accum_dbl2; integrator.max_steps = 10000; - CHECK(smc_integrate(NULL, NULL, (void*)0xC0DE, NULL), RES_BAD_ARG); - CHECK(smc_integrate(dev, NULL, (void*)0xC0DE, NULL), RES_BAD_ARG); - CHECK(smc_integrate(NULL, &integrator, (void*)0xC0DE, NULL), RES_BAD_ARG); - CHECK(smc_integrate(dev, &integrator, (void*)0xC0DE, NULL), RES_BAD_ARG); - CHECK(smc_integrate(NULL, NULL, (void*)0xC0DE, &accum), RES_BAD_ARG); - CHECK(smc_integrate(dev, NULL, (void*)0xC0DE, &accum), RES_BAD_ARG); - CHECK(smc_integrate(NULL, &integrator, (void*)0xC0DE, &accum), RES_BAD_ARG); - CHECK(smc_integrate(dev, &integrator, (void*)0xC0DE, &accum), RES_OK); + CHK(smc_integrate(NULL, NULL, (void*)0xC0DE, NULL) == RES_BAD_ARG); + CHK(smc_integrate(dev, NULL, (void*)0xC0DE, NULL) == RES_BAD_ARG); + CHK(smc_integrate(NULL, &integrator, (void*)0xC0DE, NULL) == RES_BAD_ARG); + CHK(smc_integrate(dev, &integrator, (void*)0xC0DE, NULL) == RES_BAD_ARG); + CHK(smc_integrate(NULL, NULL, (void*)0xC0DE, &accum) == RES_BAD_ARG); + CHK(smc_integrate(dev, NULL, (void*)0xC0DE, &accum) == RES_BAD_ARG); + CHK(smc_integrate(NULL, &integrator, (void*)0xC0DE, &accum) == RES_BAD_ARG); + CHK(smc_integrate(dev, &integrator, (void*)0xC0DE, &accum) == RES_OK); - CHECK(smc_accumulator_get_status(NULL, NULL), RES_BAD_ARG); - CHECK(smc_accumulator_get_status(accum, NULL), RES_BAD_ARG); - CHECK(smc_accumulator_get_status(NULL, &status), RES_BAD_ARG); - CHECK(smc_accumulator_get_status(accum, &status), RES_OK); + CHK(smc_accumulator_get_status(NULL, NULL) == RES_BAD_ARG); + CHK(smc_accumulator_get_status(accum, NULL) == RES_BAD_ARG); + CHK(smc_accumulator_get_status(NULL, &status) == RES_BAD_ARG); + CHK(smc_accumulator_get_status(accum, &status) == RES_OK); val = status.value; E = val[0] / (double)status.N; @@ -144,23 +144,23 @@ main(int argc, char** argv) printf("Integral[1, 4] 1/x dx = %g; E = %g; SE = %g\n", log(4.0) - log(1.0), E, SE); - CHECK(eq_eps(log(4.0) - log(1.0), E, 2.0 * SE), 1); + CHK(eq_eps(log(4.0) - log(1.0), E, 2.0 * SE) == 1); - CHECK(smc_accumulator_ref_get(NULL), RES_BAD_ARG); - CHECK(smc_accumulator_ref_get(accum), RES_OK); - CHECK(smc_accumulator_ref_put(NULL), RES_BAD_ARG); - CHECK(smc_accumulator_ref_put(accum), RES_OK); - CHECK(smc_accumulator_ref_put(accum), RES_OK); + CHK(smc_accumulator_ref_get(NULL) == RES_BAD_ARG); + CHK(smc_accumulator_ref_get(accum) == RES_OK); + CHK(smc_accumulator_ref_put(NULL) == RES_BAD_ARG); + CHK(smc_accumulator_ref_put(accum) == RES_OK); + CHK(smc_accumulator_ref_put(accum) == RES_OK); integrator.type = NULL; - CHECK(smc_integrate(dev, &integrator, NULL, &accum), RES_BAD_ARG); + CHK(smc_integrate(dev, &integrator, NULL, &accum) == RES_BAD_ARG); integrator.type = &smc_accum_dbl2; integrator.integrand = NULL; - CHECK(smc_integrate(dev, &integrator, NULL, &accum), RES_BAD_ARG); + CHK(smc_integrate(dev, &integrator, NULL, &accum) == RES_BAD_ARG); integrator.integrand = cos_x; - CHECK(smc_integrate(dev, &integrator, (void*)0xC0DE, &accum), RES_OK); - CHECK(smc_accumulator_get_status(accum, &status), RES_OK); + CHK(smc_integrate(dev, &integrator, (void*)0xC0DE, &accum) == RES_OK); + CHK(smc_accumulator_get_status(accum, &status) == RES_OK); val = status.value; E = val[0] / (double)status.N; @@ -169,14 +169,14 @@ main(int argc, char** argv) printf("Integral[-PI/4, PI/4] cos(x) dx = %g; E = %g; SE = %g\n", 2*sin(PI/4.0), E, SE); - CHECK(eq_eps(2*sin(PI/4.0), E, 2 * SE), 1); + CHK(eq_eps(2*sin(PI/4.0), E, 2 * SE) == 1); - CHECK(smc_accumulator_ref_put(accum), RES_OK); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(smc_accumulator_ref_put(accum) == RES_OK); + CHK(smc_device_ref_put(dev) == RES_OK); 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_smc_light_path.c b/src/test_smc_light_path.c @@ -129,7 +129,7 @@ cbox_get_ids(const unsigned itri, unsigned ids[3], void* data) { const unsigned id = itri * 3; struct cbox_desc* desc = data; - NCHECK(desc, NULL); + CHK(desc != NULL); ids[0] = desc->indices[id + 0]; ids[1] = desc->indices[id + 1]; ids[2] = desc->indices[id + 2]; @@ -139,7 +139,7 @@ static INLINE void cbox_get_position(const unsigned ivert, float position[3], void* data) { struct cbox_desc* desc = data; - NCHECK(desc, NULL); + CHK(desc != NULL); position[0] = desc->vertices[ivert*3 + 0]; position[1] = desc->vertices[ivert*3 + 1]; position[2] = desc->vertices[ivert*3 + 2]; @@ -165,9 +165,9 @@ camera_init(struct camera* cam) ASSERT(cam); f3_set(cam->pos, pos); - f = f3_normalize(cam->z, f3_sub(cam->z, tgt, pos)); NCHECK(f, 0); - f = f3_normalize(cam->x, f3_cross(cam->x, cam->z, up)); NCHECK(f, 0); - f = f3_normalize(cam->y, f3_cross(cam->y, cam->z, cam->x)); NCHECK(f, 0); + f = f3_normalize(cam->z, f3_sub(cam->z, tgt, pos)); CHK(f != 0); + f = f3_normalize(cam->x, f3_cross(cam->x, cam->z, up)); CHK(f != 0); + f = f3_normalize(cam->y, f3_cross(cam->y, cam->z, cam->x)); CHK(f != 0); f3_divf(cam->z, cam->z, (float)tan(fov_x*0.5f)); f3_divf(cam->y, cam->y, proj_ratio); } @@ -185,7 +185,7 @@ camera_ray f3_mulf(x, cam->x, pixel[0]*2.f - 1.f); f3_mulf(y, cam->y, pixel[1]*2.f - 1.f); f3_add(dir, f3_add(dir, x, y), cam->z); - f = f3_normalize(dir, dir); NCHECK(f, 0); + f = f3_normalize(dir, dir); CHK(f != 0); f3_set(org, cam->pos); } @@ -211,10 +211,10 @@ direct_lighting float wi[3]; float range[2]; - NCHECK(view, NULL); - NCHECK(pos, NULL); - NCHECK(N, NULL); - CHECK(f3_is_normalized(N), 1); + CHK(view != NULL); + CHK(pos != NULL); + CHK(N != NULL); + CHK(f3_is_normalized(N) == 1); f3_sub(wi, light_pos, pos); len = f3_normalize(wi, wi); @@ -222,7 +222,7 @@ direct_lighting /* Trace shadow ray */ range[0] = EPSILON; range[1] = len; - CHECK(s3d_scene_view_trace_ray(view, pos, wi, range, NULL, &hit), RES_OK); + CHK(s3d_scene_view_trace_ray(view, pos, wi, range, NULL, &hit) == RES_OK); if(!S3D_HIT_NONE(&hit)) return 0.f; /* Light is occluded */ len *= 0.01f; /* Transform len from centimer to meter */ @@ -239,7 +239,7 @@ skydome_lighting(const float wi[3]) const float sky_irradiance = 12.0f; float u; - NCHECK(wi, NULL); + CHK(wi != NULL); u = CLAMP(wi[2], 0.f, 0.05f) * 1.f; return u * sky_irradiance + (1.f - u) * ground_irradiance; } @@ -255,9 +255,9 @@ light_path_integrator(void* value, struct ssp_rng* rng, void* data) float throughput = 1.f; int idepth; - NCHECK(value, NULL); - NCHECK(rng, NULL); - NCHECK(data, NULL); + CHK(value != NULL); + CHK(rng != NULL); + CHK(data != NULL); /* Compute the pixel bound */ pix_lower[0] = (float)ctx->ipixel[0] / (float)IMG_WIDTH; @@ -280,8 +280,8 @@ light_path_integrator(void* value, struct ssp_rng* rng, void* data) float pos[3]; float N[3] = {0, 0, 0}; - CHECK(s3d_scene_view_trace_ray - (ctx->view, ray_org, ray_dir, ray_range, NULL, &hit), RES_OK); + CHK(s3d_scene_view_trace_ray + (ctx->view, ray_org, ray_dir, ray_range, NULL, &hit) == RES_OK); if(S3D_HIT_NONE(&hit)) { /* Skydome lighting */ L += throughput * skydome_lighting(ray_dir); @@ -331,47 +331,47 @@ main(int argc, char** argv) mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(image_init(&allocator, &img), RES_OK); - CHECK(image_setup - (&img, IMG_WIDTH, IMG_HEIGHT, 3*IMG_WIDTH, IMAGE_RGB8, NULL), RES_OK); + CHK(image_init(&allocator, &img) == RES_OK); + CHK(image_setup + (&img, IMG_WIDTH, IMG_HEIGHT, 3*IMG_WIDTH, IMAGE_RGB8, NULL) == RES_OK); - CHECK(s3d_device_create(NULL, &allocator, 0, &dev), RES_OK); - CHECK(s3d_scene_create(dev, &scn), RES_OK); + CHK(s3d_device_create(NULL, &allocator, 0, &dev) == RES_OK); + CHK(s3d_scene_create(dev, &scn) == RES_OK); attrib.usage = S3D_POSITION; attrib.type = S3D_FLOAT3; attrib.get = cbox_get_position; - CHECK(s3d_shape_create_mesh(dev, &shape), RES_OK); - CHECK(s3d_mesh_setup_indexed_vertices(shape, cbox_walls_ntris, cbox_get_ids, - cbox_walls_nverts, &attrib, 1, &cbox_walls_desc), RES_OK); - CHECK(s3d_scene_attach_shape(scn, shape), RES_OK); - CHECK(s3d_shape_ref_put(shape), RES_OK); + CHK(s3d_shape_create_mesh(dev, &shape) == RES_OK); + CHK(s3d_mesh_setup_indexed_vertices(shape, cbox_walls_ntris, cbox_get_ids, + cbox_walls_nverts, &attrib, 1, &cbox_walls_desc) == RES_OK); + CHK(s3d_scene_attach_shape(scn, shape) == RES_OK); + CHK(s3d_shape_ref_put(shape) == RES_OK); - CHECK(s3d_shape_create_mesh(dev, &shape), RES_OK); - CHECK(s3d_mesh_setup_indexed_vertices(shape, cbox_block_ntris, cbox_get_ids, - cbox_short_block_nverts, &attrib, 1, &cbox_short_block_desc), RES_OK); - CHECK(s3d_scene_attach_shape(scn, shape), RES_OK); - CHECK(s3d_shape_ref_put(shape), RES_OK); + CHK(s3d_shape_create_mesh(dev, &shape) == RES_OK); + CHK(s3d_mesh_setup_indexed_vertices(shape, cbox_block_ntris, cbox_get_ids, + cbox_short_block_nverts, &attrib, 1, &cbox_short_block_desc) == RES_OK); + CHK(s3d_scene_attach_shape(scn, shape) == RES_OK); + CHK(s3d_shape_ref_put(shape) == RES_OK); - CHECK(s3d_shape_create_mesh(dev, &shape), RES_OK); - CHECK(s3d_mesh_setup_indexed_vertices(shape, cbox_block_ntris, cbox_get_ids, - cbox_tall_block_nverts, &attrib, 1, &cbox_tall_block_desc), RES_OK); - CHECK(s3d_scene_attach_shape(scn, shape), RES_OK); - CHECK(s3d_shape_ref_put(shape), RES_OK); + CHK(s3d_shape_create_mesh(dev, &shape) == RES_OK); + CHK(s3d_mesh_setup_indexed_vertices(shape, cbox_block_ntris, cbox_get_ids, + cbox_tall_block_nverts, &attrib, 1, &cbox_tall_block_desc) == RES_OK); + CHK(s3d_scene_attach_shape(scn, shape) == RES_OK); + CHK(s3d_shape_ref_put(shape) == RES_OK); - CHECK(s3d_scene_instantiate(scn, &shape), RES_OK); - CHECK(s3d_scene_ref_put(scn), RES_OK); - CHECK(s3d_instance_set_position(shape, f3(pos, -100.f, 0.f, -2.f)), RES_OK); + CHK(s3d_scene_instantiate(scn, &shape) == RES_OK); + CHK(s3d_scene_ref_put(scn) == RES_OK); + CHK(s3d_instance_set_position(shape, f3(pos, -100.f, 0.f, -2.f)) == RES_OK); - CHECK(s3d_scene_create(dev, &scn), RES_OK); - CHECK(s3d_scene_attach_shape(scn, shape), RES_OK); - CHECK(s3d_shape_ref_put(shape), RES_OK); + CHK(s3d_scene_create(dev, &scn) == RES_OK); + CHK(s3d_scene_attach_shape(scn, shape) == RES_OK); + CHK(s3d_shape_ref_put(shape) == RES_OK); - CHECK(s3d_scene_view_create(scn, S3D_TRACE, &view), RES_OK); + CHK(s3d_scene_view_create(scn, S3D_TRACE, &view) == RES_OK); - CHECK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &smc), - RES_OK); + CHK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &smc) + == RES_OK); integrator.integrand = light_path_integrator; integrator.type = &smc_float; @@ -379,10 +379,10 @@ main(int argc, char** argv) contexts = MEM_CALLOC (&allocator, IMG_WIDTH*IMG_HEIGHT, sizeof(struct integrator_context)); - NCHECK(contexts, NULL); + CHK(contexts != NULL); estimators = MEM_CALLOC (&allocator, IMG_WIDTH*IMG_HEIGHT, sizeof(struct smc_estimator*)); - NCHECK(estimators, NULL); + CHK(estimators != NULL); camera_init(&cam); @@ -397,8 +397,8 @@ main(int argc, char** argv) contexts[ictx].ipixel[1] = iy; }} - CHECK(smc_solve_N(smc, &integrator, IMG_WIDTH * IMG_HEIGHT, contexts, - sizeof(struct integrator_context), estimators), RES_OK); + CHK(smc_solve_N(smc, &integrator, IMG_WIDTH * IMG_HEIGHT, contexts, + sizeof(struct integrator_context), estimators) == RES_OK); FOR_EACH(iy, 0, IMG_HEIGHT) { FOR_EACH(ix, 0, IMG_WIDTH) { @@ -408,27 +408,27 @@ main(int argc, char** argv) float col; unsigned char colu; - CHECK(smc_estimator_get_status(estimators[iestimator], &status), RES_OK); + CHK(smc_estimator_get_status(estimators[iestimator], &status) == RES_OK); col = (float)pow(SMC_FLOAT(status.E), 1.0/GAMMA); /* Gamma correction */ colu = (uint8_t)(CLAMP(col, 0.f, 1.f) * 255.f); /* Float to U8 */ pix[0] = pix[1] = pix[2] = colu; - CHECK(smc_estimator_ref_put(estimators[iestimator]), RES_OK); + CHK(smc_estimator_ref_put(estimators[iestimator]) == RES_OK); }} image_write_ppm_stream(&img, 0, stdout); - CHECK(image_release(&img), RES_OK); + CHK(image_release(&img) == RES_OK); MEM_RM(&allocator, contexts); MEM_RM(&allocator, estimators); - CHECK(s3d_scene_view_ref_put(view), RES_OK); + CHK(s3d_scene_view_ref_put(view) == RES_OK); - CHECK(s3d_device_ref_put(dev), RES_OK); - CHECK(s3d_scene_ref_put(scn), RES_OK); - CHECK(smc_device_ref_put(smc), RES_OK); + CHK(s3d_device_ref_put(dev) == RES_OK); + CHK(s3d_scene_ref_put(scn) == RES_OK); + CHK(smc_device_ref_put(smc) == RES_OK); 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_smc_solve.c b/src/test_smc_solve.c @@ -39,9 +39,9 @@ rcp_x(void* value, struct ssp_rng* rng, void* ctx) { double* result = value; double samp; - NCHECK(value, NULL); - NCHECK(rng, NULL); - CHECK(ctx, NULL); + CHK(value != NULL); + CHK(rng != NULL); + CHK(ctx == NULL); samp = ssp_rng_uniform_double(rng, 1.0, 4.0); *result = 1.0 / samp * 3; return RES_OK; @@ -52,9 +52,9 @@ cos_x(void* value, struct ssp_rng* rng, void* ctx) { float* result = value; double samp; - NCHECK(value, NULL); - NCHECK(rng, NULL); - CHECK(ctx, (void*)0xC0DE); + CHK(value != NULL); + CHK(rng != NULL); + CHK(ctx == (void*)0xC0DE); samp = ssp_rng_uniform_double(rng, -PI/4.0, PI/4.0); *result = (float)(cos(samp) * PI / 2.0); return RES_OK; @@ -72,53 +72,52 @@ main(int argc, char** argv) mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &dev), - RES_OK); + CHK(smc_device_create(NULL, &allocator, SMC_NTHREADS_DEFAULT, NULL, &dev) == RES_OK); integrator.integrand = rcp_x; integrator.type = &smc_double; integrator.max_steps = 10000; - CHECK(smc_solve(NULL, NULL, NULL, NULL), RES_BAD_ARG); - CHECK(smc_solve(dev, NULL, NULL, NULL), RES_BAD_ARG); - CHECK(smc_solve(NULL, &integrator, NULL, NULL), RES_BAD_ARG); - CHECK(smc_solve(dev, &integrator, NULL, NULL), RES_BAD_ARG); - CHECK(smc_solve(NULL, NULL, NULL, &estimator), RES_BAD_ARG); - CHECK(smc_solve(dev, NULL, NULL, &estimator), RES_BAD_ARG); - CHECK(smc_solve(NULL, &integrator, NULL, &estimator), RES_BAD_ARG); - CHECK(smc_solve(dev, &integrator, NULL, &estimator), RES_OK); - - CHECK(smc_estimator_get_status(NULL, NULL), RES_BAD_ARG); - CHECK(smc_estimator_get_status(estimator, NULL), RES_BAD_ARG); - CHECK(smc_estimator_get_status(NULL, &status), RES_BAD_ARG); - CHECK(smc_estimator_get_status(estimator, &status), RES_OK); + CHK(smc_solve(NULL, NULL, NULL, NULL) == RES_BAD_ARG); + CHK(smc_solve(dev, NULL, NULL, NULL) == RES_BAD_ARG); + CHK(smc_solve(NULL, &integrator, NULL, NULL) == RES_BAD_ARG); + CHK(smc_solve(dev, &integrator, NULL, NULL) == RES_BAD_ARG); + CHK(smc_solve(NULL, NULL, NULL, &estimator) == RES_BAD_ARG); + CHK(smc_solve(dev, NULL, NULL, &estimator) == RES_BAD_ARG); + CHK(smc_solve(NULL, &integrator, NULL, &estimator) == RES_BAD_ARG); + CHK(smc_solve(dev, &integrator, NULL, &estimator) == RES_OK); + + CHK(smc_estimator_get_status(NULL, NULL) == RES_BAD_ARG); + CHK(smc_estimator_get_status(estimator, NULL) == RES_BAD_ARG); + CHK(smc_estimator_get_status(NULL, &status) == RES_BAD_ARG); + CHK(smc_estimator_get_status(estimator, &status) == RES_OK); printf("Integral[1, 4] 1/x dx = %g; E = %g; SE = %g\n", log(4.0) - log(1.0), SMC_DOUBLE(status.E), SMC_DOUBLE(status.SE)); - CHECK(eq_eps - (log(4.0) - log(1.0), SMC_DOUBLE(status.E), 2.0 * SMC_DOUBLE(status.SE)), 1); - CHECK(smc_estimator_ref_put(estimator), RES_OK); + CHK(eq_eps + (log(4.0) - log(1.0), SMC_DOUBLE(status.E), 2.0 * SMC_DOUBLE(status.SE))); + CHK(smc_estimator_ref_put(estimator) == RES_OK); integrator.type = NULL; - CHECK(smc_solve(dev, &integrator, NULL, &estimator), RES_BAD_ARG); + CHK(smc_solve(dev, &integrator, NULL, &estimator) == RES_BAD_ARG); integrator.type = &smc_double; integrator.integrand = NULL; - CHECK(smc_solve(dev, &integrator, NULL, &estimator), RES_BAD_ARG); + CHK(smc_solve(dev, &integrator, NULL, &estimator) == RES_BAD_ARG); integrator.integrand = cos_x; integrator.type = &smc_float; - CHECK(smc_solve(dev, &integrator, (void*)0xC0DE, &estimator), RES_OK); - CHECK(smc_estimator_get_status(estimator, &status), RES_OK); + CHK(smc_solve(dev, &integrator, (void*)0xC0DE, &estimator) == RES_OK); + CHK(smc_estimator_get_status(estimator, &status) == RES_OK); printf("Integral[-PI/4, PI/4] cos(x) dx = %f; E = %f; SE = %f\n", 2*sin(PI/4.0), SMC_FLOAT(status.E), SMC_FLOAT(status.SE)); - CHECK(eq_eps - ((float)2*sin(PI/4.0), SMC_FLOAT(status.E), 2 * SMC_FLOAT(status.SE)), 1); - CHECK(smc_device_ref_put(dev), RES_OK); + CHK(eq_eps + ((float)2*sin(PI/4.0), SMC_FLOAT(status.E), 2 * SMC_FLOAT(status.SE))); + CHK(smc_device_ref_put(dev) == RES_OK); - CHECK(smc_estimator_ref_put(estimator), RES_OK); + CHK(smc_estimator_ref_put(estimator) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; }