aboutsummaryrefslogtreecommitdiff
path: root/src/ipr.c
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-09-09 21:48:04 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-09-09 21:48:04 +0000
commitf56159b7936b041fa5093b35f0d25de7fabe6487 (patch)
tree27ab8a1e4fff244b5e83eefabe083d01284371cc /src/ipr.c
parente3a4cc7fcaa71c1954394fc4bdee90e3bcc38502 (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.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/ipr.c b/src/ipr.c
index aa55bd5..f12fb67 100644
--- a/src/ipr.c
+++ b/src/ipr.c
@@ -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 {