diff options
author | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-09-09 21:48:04 +0000 |
---|---|---|
committer | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-09-09 21:48:04 +0000 |
commit | f56159b7936b041fa5093b35f0d25de7fabe6487 (patch) | |
tree | 27ab8a1e4fff244b5e83eefabe083d01284371cc /src/ipr.c | |
parent | e3a4cc7fcaa71c1954394fc4bdee90e3bcc38502 (diff) |
Cosmetic alterations
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@129 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/ipr.c')
-rw-r--r-- | src/ipr.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -133,6 +133,7 @@ static Basis *ipr_choose_random_basis(ControlContext *ctx) { basis = malloc(sizeof(Basis)); +restart: basis->a.x = 0; basis->a.y = 0; basis->a.z = 0; basis->a.modulus = 1e30; basis->b.x = 0; basis->b.y = 0; basis->b.z = 0; basis->b.modulus = 1e30; basis->c.x = 0; basis->c.y = 0; basis->c.z = 0; basis->c.modulus = 1e30; @@ -188,9 +189,7 @@ static Basis *ipr_choose_random_basis(ControlContext *ctx) { /* End of list? */ if ( !reflection ) { if ( (basis->a.modulus == 1e30) || (basis->b.modulus == 1e30) || (basis->c.modulus == 1e30) ) { - //printf("IP: Failed to find appropriate starting basis!\n"); - free(basis); - return NULL; + goto restart; /* Probably the one circumstance under which this is allowed... */ } } @@ -271,20 +270,18 @@ static Basis *ipr_choose_initial_basis(ControlContext *ctx) { best_basis = NULL; best_efom = 0; printf("IP: Finding initial basis using eFOM...\n"); - for ( i=1; i<=1000; i++ ) { + for ( i=1; i<=30; i++ ) { double efom; - do { - basis = ipr_choose_random_basis(ctx); - } while ( !basis ); + basis = ipr_choose_random_basis(ctx); efom = ipr_efom(ctx->reflectionctx, basis); if ( (efom > best_efom) || !best_basis ) { if ( best_basis ) free(best_basis); best_efom = efom; best_basis = basis; - printf("IP: %3i: eFOM = %f %%\n", i, efom*100); + printf("IP: %3i: eFOM = %7.3f %%\n", i, efom*100); } @@ -388,6 +385,7 @@ int ipr_refine(ControlContext *ctx) { ctx->ipr_basis = basis; ctx->ipr_lat = ipr_generate(ctx, basis); + printf("IP: Performing refinement...\n"); finished = 0; do { |