From 7144216342686b49e4f759c2fdd8de4946db8fdb Mon Sep 17 00:00:00 2001 From: taw27 Date: Wed, 14 Feb 2007 14:13:42 +0000 Subject: Trap further downstream if IPR fails git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@7 bf6ca9ba-c028-0410-8290-897cf20841d1 --- src/ipr.c | 6 ++++-- src/ipr.h | 2 +- src/main.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ipr.c b/src/ipr.c index 720369f..5fa7ace 100644 --- a/src/ipr.c +++ b/src/ipr.c @@ -243,13 +243,13 @@ static void ipr_sort(ReflectionContext *rctx) { } -void ipr_reduce(ControlContext *ctx) { +int ipr_reduce(ControlContext *ctx) { Basis *basis; basis = ipr_choose_initial_basis(ctx); - if ( !basis ) return; ctx->reflectionctx->basis = basis; + if ( !basis ) return -1; /* Get rid of the original list and replace it with the prediction list */ reflection_clear(ctx->reflectionctx); @@ -259,5 +259,7 @@ void ipr_reduce(ControlContext *ctx) { /* Sort the reflections into order of increasing g */ ipr_sort(ctx->reflectionctx); + + return 0; } diff --git a/src/ipr.h b/src/ipr.h index 149e523..3fcb40d 100644 --- a/src/ipr.h +++ b/src/ipr.h @@ -18,6 +18,6 @@ #include "control.h" -extern void ipr_reduce(ControlContext *ctx); +extern int ipr_reduce(ControlContext *ctx); #endif /* IPR_H */ diff --git a/src/main.c b/src/main.c index a89fdf9..7f5d5c9 100644 --- a/src/main.c +++ b/src/main.c @@ -58,8 +58,8 @@ static gint main_method_window_response(GtkWidget *method_window, gint response, val = mrc_read(ctx); } - if ( ctx->rmode == RECONSTRUCTION_PREDICTION ) { - ipr_reduce(ctx); + if ( !val && (ctx->rmode == RECONSTRUCTION_PREDICTION) ) { + val = ipr_reduce(ctx); } if ( val == 0 ) { -- cgit v1.2.3