33
33
#include <omp.h>
34
34
#endif
35
35
36
- #define DEBUG_TOPOLOGY_SPR 1
36
+ // #define DEBUG_TOPOLOGY_SPR 1
37
37
38
38
39
39
void compare_trees (Node * node1 , Node * node2 ){
@@ -251,16 +251,18 @@ double optimize_brent_branch_length_3( SingleTreeLikelihood *stlk, Optimizer *op
251
251
double lnl = stlk -> calculate (stlk );
252
252
double lnl2 = lnl + 10 ;
253
253
data -> index_param = -1 ;
254
+ #ifdef DEBUG_TOPOLOGY_SPR
254
255
printf ("-- lnl %f\n" ,lnl );
255
-
256
+ #endif
256
257
257
258
if ( Node_isroot (node1 ) ){
258
259
printf ("Cannot be called on the root\n%s\n%s: %d\n" , __func__ , __FILE__ , __LINE__ );
259
260
exit (1 );
260
261
}
261
262
262
-
263
+ #ifdef DEBUG_TOPOLOGY_SPR
263
264
printf ("%f %f %f %f\n" , Node_distance (node1 ), Node_distance (node1 -> left ), Node_distance (node1 -> right ), Node_distance (node2 ));
265
+ #endif
264
266
while ( 1 ) {
265
267
266
268
SingleTreeLikelihood_update_all_nodes (stlk );
@@ -272,8 +274,9 @@ double optimize_brent_branch_length_3( SingleTreeLikelihood *stlk, Optimizer *op
272
274
if ( status == OPT_ERROR ) error ("OPT.DISTANCE No SUCCESS!!!!!!!!!!!!\n" );
273
275
274
276
Node_set_distance ( node1 -> left , Parameters_value (param , 0 ) );
275
-
277
+ #ifdef DEBUG_TOPOLOGY_SPR
276
278
printf ("** lnl %f (%f) %s %f\n" , - lnl2 , lnl ,node1 -> left -> name , Parameters_value (param , 0 ) );
279
+ #endif
277
280
278
281
279
282
@@ -286,9 +289,9 @@ double optimize_brent_branch_length_3( SingleTreeLikelihood *stlk, Optimizer *op
286
289
if ( status == OPT_ERROR ) error ("OPT.DISTANCE No SUCCESS!!!!!!!!!!!!\n" );
287
290
288
291
Node_set_distance ( node1 -> right , Parameters_value (param , 0 ) );
289
-
292
+ #ifdef DEBUG_TOPOLOGY_SPR
290
293
printf ("** lnl %f (%f) %s %f\n" , - lnl2 , lnl ,node1 -> right -> name , Parameters_value (param , 0 ) );
291
-
294
+ #endif
292
295
293
296
SingleTreeLikelihood_update_all_nodes (stlk );
294
297
data -> index_param = node1 -> postorder_idx ;
@@ -299,9 +302,9 @@ double optimize_brent_branch_length_3( SingleTreeLikelihood *stlk, Optimizer *op
299
302
if ( status == OPT_ERROR ) error ("OPT.DISTANCE No SUCCESS!!!!!!!!!!!!\n" );
300
303
301
304
Node_set_distance ( node1 , Parameters_value (param , 0 ) );
302
-
305
+ #ifdef DEBUG_TOPOLOGY_SPR
303
306
printf ("** lnl %f (%f) %s %f\n" , - lnl2 , lnl ,node1 -> name , Parameters_value (param , 0 ) );
304
-
307
+ #endif
305
308
306
309
307
310
SingleTreeLikelihood_update_all_nodes (stlk );
@@ -313,9 +316,9 @@ double optimize_brent_branch_length_3( SingleTreeLikelihood *stlk, Optimizer *op
313
316
if ( status == OPT_ERROR ) error ("OPT.DISTANCE No SUCCESS!!!!!!!!!!!!\n" );
314
317
315
318
Node_set_distance ( node2 , Parameters_value (param , 0 ) );
316
-
319
+ #ifdef DEBUG_TOPOLOGY_SPR
317
320
printf ("** lnl %f (%f) %s %f\n" , - lnl2 , lnl ,node2 -> name , Parameters_value (param , 0 ) );
318
-
321
+ #endif
319
322
if ( - lnl2 - lnl < 0.01 ){
320
323
lnl = - lnl2 ;
321
324
break ;
@@ -324,8 +327,9 @@ double optimize_brent_branch_length_3( SingleTreeLikelihood *stlk, Optimizer *op
324
327
}
325
328
326
329
SingleTreeLikelihood_update_all_nodes (stlk );
327
-
330
+ #ifdef DEBUG_TOPOLOGY_SPR
328
331
printf ("%f %f %f %f\n" , Node_distance (node1 ), Node_distance (node1 -> left ), Node_distance (node1 -> right ), Node_distance (node2 ));
332
+ #endif
329
333
//return stlk->calculate(stlk);
330
334
return lnl ;
331
335
}
@@ -422,9 +426,9 @@ double spr_optimize_bl_parsimony( struct TopologyOptimizer * opt ){
422
426
423
427
Parsimony * parsimony = new_Parsimony (tlk2 -> sp , tlk2 -> tree );
424
428
double score = parsimony -> calculate (parsimony );
425
-
426
- printf ("\nParsimony score: %f\n\n" , score );
427
-
429
+ if ( tlk -> opt . verbosity > 0 ){
430
+ printf ("\nParsimony score: %f\n\n" , score );
431
+ }
428
432
429
433
Optimizer * opt_bl = new_Optimizer (OPT_BRENT );
430
434
BrentData * data_brent = new_BrentData ( tlk2 );
@@ -809,7 +813,6 @@ double spr_optimize_bl_parsimony( struct TopologyOptimizer * opt ){
809
813
//#define SPR_THREAD 1
810
814
//#define _OPENMP 1
811
815
812
- #define DEBUG_TOPOLOGY_SPR 1
813
816
814
817
// neighborhood size 2(n − 3)(2n − 7)
815
818
double spr_optimize_bl_parsimony_only ( struct TopologyOptimizer * opt ){
@@ -826,9 +829,10 @@ double spr_optimize_bl_parsimony_only( struct TopologyOptimizer * opt ){
826
829
827
830
int max_distance = 20 ;//5;
828
831
829
- printf ("\nParsimony score: %f (%i)\n\n" , score , total );
830
- printf ("Maximum radius %d\n\n" , max_distance );
831
-
832
+ if (tlk -> opt .verbosity > 0 ){
833
+ printf ("\nParsimony score: %f (%i)\n\n" , score , total );
834
+ printf ("Maximum radius %d\n\n" , max_distance );
835
+ }
832
836
833
837
int nNodes = Tree_node_count (tlk -> tree );
834
838
bool failed = false;
@@ -1110,9 +1114,9 @@ double spr_optimize_bl_parsimony_only( struct TopologyOptimizer * opt ){
1110
1114
Parsimony_update_all_nodes (parsimony );
1111
1115
1112
1116
spr_score = parsimony -> calculate (parsimony );
1113
-
1114
- printf ("Parsimony %f (%f) d(prune,graft)=%d max %f\n" , spr_score , scores [i ], ds [i ], score );
1115
-
1117
+ if ( tlk -> opt . verbosity > 0 ){
1118
+ printf ("Parsimony %f (%f) d(prune,graft)=%d max %f\n" , spr_score , scores [i ], ds [i ], score );
1119
+ }
1116
1120
// skip moves that increase the score
1117
1121
if ( spr_score >= score ) {
1118
1122
@@ -1139,7 +1143,9 @@ double spr_optimize_bl_parsimony_only( struct TopologyOptimizer * opt ){
1139
1143
opt -> moves ++ ;
1140
1144
}
1141
1145
}
1142
- printf ("Parsimony score: %f #SPR: %d\n\n" , score , accepted );
1146
+ if (tlk -> opt .verbosity > 0 ){
1147
+ printf ("Parsimony score: %f #SPR: %d\n\n" , score , accepted );
1148
+ }
1143
1149
}
1144
1150
else {
1145
1151
failed = true;
@@ -1183,8 +1189,9 @@ double spr_optimize_bl_parsimony_only_openmp( struct TopologyOptimizer * opt ){
1183
1189
1184
1190
int total = (Tree_tip_count (tlk -> tree )- 3 )* 2 * (2 * Tree_tip_count (tlk -> tree )- 7 );
1185
1191
1186
- printf ("\nParsimony score: %f (%i)\n\n" , score , total );
1187
-
1192
+ if (tlk -> opt .verbosity > 0 ){
1193
+ printf ("\nParsimony score: %f (%i)\n\n" , score , total );
1194
+ }
1188
1195
1189
1196
int nNodes = Tree_node_count (tlk -> tree );
1190
1197
bool failed = false;
@@ -1510,7 +1517,7 @@ double spr_optimize_bl_parsimony_only_openmp( struct TopologyOptimizer * opt ){
1510
1517
//break;
1511
1518
}
1512
1519
else {
1513
- #ifndef DEBUG_TOPOLOGY_SPR
1520
+ #ifdef DEBUG_TOPOLOGY_SPR
1514
1521
printf ("Parsimony %f (%f) d(prune,graft)=%d max %f\n" , spr_score , scores [i ], ds [i ], score );
1515
1522
#endif
1516
1523
@@ -1526,7 +1533,9 @@ double spr_optimize_bl_parsimony_only_openmp( struct TopologyOptimizer * opt ){
1526
1533
opt -> moves ++ ;
1527
1534
}
1528
1535
}
1529
- printf ("Parsimony score: %f #SPR: %d\n\n" , score , accepted );
1536
+ if (tlk -> opt .verbosity > 0 ){
1537
+ printf ("Parsimony score: %f #SPR: %d\n\n" , score , accepted );
1538
+ }
1530
1539
}
1531
1540
else {
1532
1541
failed = true;
@@ -1789,9 +1798,9 @@ double spr_optimize_bl_openmp( struct TopologyOptimizer * opt ){
1789
1798
free_Parameters_soft (oneparameter );
1790
1799
1791
1800
1792
- //if(spr_score > lnl){
1801
+ #ifdef DEBUG_TOPOLOGY_SPR
1793
1802
printf ("%s %s lnl %f (%f) %s\n\n" ,graft -> name , prune -> name , spr_score , lnl , (spr_score > lnl ? "*" : "" ));
1794
- //}
1803
+ #endif
1795
1804
1796
1805
//spr_score = tlk->calculate(tlk);
1797
1806
@@ -1914,9 +1923,9 @@ double spr_optimize_bl_openmp( struct TopologyOptimizer * opt ){
1914
1923
SingleTreeLikelihood_update_all_nodes (tlk );
1915
1924
1916
1925
spr_score = tlk -> calculate (tlk );
1917
-
1926
+ #ifdef DEBUG_TOPOLOGY_SPR
1918
1927
printf ("Parsimony %f (%f) d(prune,graft)=%d max %f\n" , spr_score , scores [i ], ds [i ], lnl );
1919
-
1928
+ #endif
1920
1929
// skip moves that increase the score
1921
1930
if ( spr_score >= lnl ) {
1922
1931
@@ -1937,7 +1946,7 @@ double spr_optimize_bl_openmp( struct TopologyOptimizer * opt ){
1937
1946
//break;
1938
1947
}
1939
1948
else {
1940
- #ifndef DEBUG_TOPOLOGY_SPR
1949
+ #ifdef DEBUG_TOPOLOGY_SPR
1941
1950
printf ("Parsimony %f (%f) d(prune,graft)=%d max %f\n" , spr_score , scores [i ], ds [i ], score );
1942
1951
#endif
1943
1952
SingleTreeLikelihood_update_all_nodes (pool [0 ]);
@@ -1949,7 +1958,7 @@ double spr_optimize_bl_openmp( struct TopologyOptimizer * opt ){
1949
1958
lnl = spr_score ;
1950
1959
}
1951
1960
1952
- #ifndef DEBUG_TOPOLOGY_SPR
1961
+ #ifdef DEBUG_TOPOLOGY_SPR
1953
1962
printf ("Parsimony %f\n" , score );
1954
1963
#endif
1955
1964
opt -> moves ++ ;
0 commit comments