25
25
#include <stdio.h>
26
26
#include <string.h>
27
27
#include <stdlib.h>
28
- #include <assert.h>
29
28
#include <math.h>
30
29
#include <float.h>
31
30
@@ -64,17 +63,17 @@ tsk_ls_hmm_check_state(tsk_ls_hmm_t *self)
64
63
65
64
for (j = 0 ; j < (tsk_id_t ) self -> num_transitions ; j ++ ) {
66
65
if (T [j ].tree_node != TSK_NULL ) {
67
- assert (T_index [T [j ].tree_node ] == j );
66
+ tsk_bug_assert (T_index [T [j ].tree_node ] == j );
68
67
}
69
68
}
70
- /* assert (self->num_transitions <= self->num_samples); */
69
+ /* tsk_bug_assert (self->num_transitions <= self->num_samples); */
71
70
72
71
if (self -> num_transitions > 0 ) {
73
72
for (j = 0 ; j < (tsk_id_t ) self -> num_nodes ; j ++ ) {
74
73
if (T_index [j ] != TSK_NULL ) {
75
- assert (T [T_index [j ]].tree_node == j );
74
+ tsk_bug_assert (T [T_index [j ]].tree_node == j );
76
75
}
77
- assert (self -> tree .parent [j ] == self -> parent [j ]);
76
+ tsk_bug_assert (self -> tree .parent [j ] == self -> parent [j ]);
78
77
}
79
78
}
80
79
}
@@ -315,9 +314,9 @@ tsk_ls_hmm_update_tree(tsk_ls_hmm_t *self)
315
314
/* Ensure the subtree we're detaching has a transition at the root */
316
315
while (T_index [u ] == TSK_NULL ) {
317
316
u = parent [u ];
318
- assert (u != TSK_NULL );
317
+ tsk_bug_assert (u != TSK_NULL );
319
318
}
320
- assert (self -> num_transitions < self -> max_transitions );
319
+ tsk_bug_assert (self -> num_transitions < self -> max_transitions );
321
320
T_index [record -> edge .child ] = (tsk_id_t ) self -> num_transitions ;
322
321
T [self -> num_transitions ].tree_node = record -> edge .child ;
323
322
T [self -> num_transitions ].value = T [T_index [u ]].value ;
@@ -334,7 +333,7 @@ tsk_ls_hmm_update_tree(tsk_ls_hmm_t *self)
334
333
/* Grafting onto a new root. */
335
334
if (T_index [record -> edge .parent ] == TSK_NULL ) {
336
335
T_index [edge .parent ] = (tsk_id_t ) self -> num_transitions ;
337
- assert (self -> num_transitions < self -> max_transitions );
336
+ tsk_bug_assert (self -> num_transitions < self -> max_transitions );
338
337
T [self -> num_transitions ].tree_node = edge .parent ;
339
338
T [self -> num_transitions ].value = T [T_index [edge .child ]].value ;
340
339
self -> num_transitions ++ ;
@@ -344,9 +343,9 @@ tsk_ls_hmm_update_tree(tsk_ls_hmm_t *self)
344
343
while (T_index [u ] == TSK_NULL ) {
345
344
u = parent [u ];
346
345
}
347
- assert (u != TSK_NULL );
346
+ tsk_bug_assert (u != TSK_NULL );
348
347
}
349
- assert (T_index [u ] != -1 && T_index [edge .child ] != -1 );
348
+ tsk_bug_assert (T_index [u ] != -1 && T_index [edge .child ] != -1 );
350
349
if (T [T_index [u ]].value == T [T_index [edge .child ]].value ) {
351
350
vt = & T [T_index [edge .child ]];
352
351
/* Mark the value transition as unusued */
@@ -422,7 +421,7 @@ tsk_ls_hmm_update_probabilities(
422
421
while (T_index [u ] == TSK_NULL ) {
423
422
u = parent [u ];
424
423
}
425
- assert (self -> num_transitions < self -> max_transitions );
424
+ tsk_bug_assert (self -> num_transitions < self -> max_transitions );
426
425
T_index [mut .node ] = (tsk_id_t ) self -> num_transitions ;
427
426
T [self -> num_transitions ].tree_node = mut .node ;
428
427
T [self -> num_transitions ].value = T [T_index [u ]].value ;
@@ -437,7 +436,7 @@ tsk_ls_hmm_update_probabilities(
437
436
v = u ;
438
437
while (allelic_state [v ] == TSK_MISSING_DATA ) {
439
438
v = parent [v ];
440
- assert (v != -1 );
439
+ tsk_bug_assert (v != -1 );
441
440
}
442
441
match = haplotype_state == TSK_MISSING_DATA
443
442
|| haplotype_state == allelic_state [v ];
@@ -477,7 +476,7 @@ tsk_ls_hmm_discretise_values(tsk_ls_hmm_t *self)
477
476
num_values ++ ;
478
477
}
479
478
}
480
- assert (num_values > 0 );
479
+ tsk_bug_assert (num_values > 0 );
481
480
482
481
qsort (values , num_values , sizeof (double ), cmp_double );
483
482
@@ -494,7 +493,7 @@ tsk_ls_hmm_discretise_values(tsk_ls_hmm_t *self)
494
493
if (T [j ].tree_node != TSK_NULL ) {
495
494
T [j ].value_index
496
495
= (tsk_id_t ) tsk_search_sorted (values , num_values , T [j ].value );
497
- assert (T [j ].value == self -> values [T [j ].value_index ]);
496
+ tsk_bug_assert (T [j ].value == self -> values [T [j ].value_index ]);
498
497
}
499
498
}
500
499
return ret ;
@@ -516,7 +515,7 @@ get_smallest_set_bit(uint64_t v)
516
515
*/
517
516
uint64_t t = 1 ;
518
517
tsk_id_t r = 0 ;
519
- assert (v != 0 );
518
+ tsk_bug_assert (v != 0 );
520
519
521
520
while ((v & t ) == 0 ) {
522
521
t <<= 1 ;
@@ -534,7 +533,7 @@ get_smallest_element(const uint64_t *restrict A, size_t u, size_t num_words)
534
533
535
534
while (a [j ] == 0 ) {
536
535
j ++ ;
537
- assert (j < (tsk_id_t ) num_words );
536
+ tsk_bug_assert (j < (tsk_id_t ) num_words );
538
537
}
539
538
return j * 64 + get_smallest_set_bit (a [j ]);
540
539
}
@@ -563,7 +562,7 @@ static inline void
563
562
set_fitch (uint64_t * restrict A , const tsk_id_t u , const size_t num_words , tsk_id_t state )
564
563
{
565
564
size_t index = ((size_t ) u ) * num_words + (size_t )(state / 64 );
566
- assert (((size_t ) state ) / 64 < num_words );
565
+ tsk_bug_assert (((size_t ) state ) / 64 < num_words );
567
566
A [index ] |= 1ULL << (state % 64 );
568
567
}
569
568
@@ -641,7 +640,7 @@ compute_fitch_general(uint64_t *restrict A, const tsk_id_t *restrict left_child,
641
640
const uint64_t state_word = 1ULL << (parent_state % 64 );
642
641
int j ;
643
642
644
- assert (num_words <= MAX_FITCH_WORDS );
643
+ tsk_bug_assert (num_words <= MAX_FITCH_WORDS );
645
644
646
645
memset (a_union , 0 , num_words * sizeof (* a_union ));
647
646
memset (a_inter , 0xff , num_words * sizeof (* a_inter ));
@@ -761,15 +760,15 @@ tsk_ls_hmm_build_fitch_sets(tsk_ls_hmm_t *self)
761
760
if (v != TSK_NULL ) {
762
761
while (T_index [v ] == TSK_NULL ) {
763
762
v = parent [v ];
764
- assert (v != TSK_NULL );
763
+ tsk_bug_assert (v != TSK_NULL );
765
764
}
766
765
parent_state = T [T_index [v ]].value_index ;
767
766
v = parent [u ];
768
767
while (T_index [v ] == TSK_NULL ) {
769
768
compute_fitch (
770
769
A , left_child , right_sib , v , parent_state , num_fitch_words );
771
770
v = parent [v ];
772
- assert (v != TSK_NULL );
771
+ tsk_bug_assert (v != TSK_NULL );
773
772
}
774
773
}
775
774
}
@@ -803,12 +802,12 @@ tsk_ls_hmm_redistribute_transitions(tsk_ls_hmm_t *self)
803
802
for (root = self -> tree .left_root ; root != TSK_NULL ; root = right_sib [root ]) {
804
803
stack [0 ].tree_node = root ;
805
804
stack [0 ].old_state = T_old [T_index [root ]].value_index ;
806
- /* assert (self->num_fitch_words == 1); */
805
+ /* tsk_bug_assert (self->num_fitch_words == 1); */
807
806
stack [0 ].new_state = get_smallest_element (A , (size_t ) root , num_fitch_words );
808
807
stack [0 ].transition_parent = 0 ;
809
808
stack_top = 0 ;
810
809
811
- assert (self -> num_transitions < self -> max_transitions );
810
+ tsk_bug_assert (self -> num_transitions < self -> max_transitions );
812
811
T_parent [self -> num_transitions ] = TSK_NULL ;
813
812
T [self -> num_transitions ].tree_node = stack [0 ].tree_node ;
814
813
T [self -> num_transitions ].value_index = stack [0 ].new_state ;
@@ -829,7 +828,7 @@ tsk_ls_hmm_redistribute_transitions(tsk_ls_hmm_t *self)
829
828
= get_smallest_element (A , (size_t ) v , num_fitch_words );
830
829
child_s .transition_parent = (tsk_id_t ) self -> num_transitions ;
831
830
/* Add a new transition */
832
- assert (self -> num_transitions < self -> max_transitions );
831
+ tsk_bug_assert (self -> num_transitions < self -> max_transitions );
833
832
T_parent [self -> num_transitions ] = s .transition_parent ;
834
833
T [self -> num_transitions ].tree_node = v ;
835
834
T [self -> num_transitions ].value_index = child_s .new_state ;
@@ -840,7 +839,7 @@ tsk_ls_hmm_redistribute_transitions(tsk_ls_hmm_t *self)
840
839
} else {
841
840
/* Node that we didn't visit when moving up the tree */
842
841
if (s .old_state != s .new_state ) {
843
- assert (self -> num_transitions < self -> max_transitions );
842
+ tsk_bug_assert (self -> num_transitions < self -> max_transitions );
844
843
T_parent [self -> num_transitions ] = s .transition_parent ;
845
844
T [self -> num_transitions ].tree_node = v ;
846
845
T [self -> num_transitions ].value_index = s .old_state ;
@@ -916,15 +915,15 @@ tsk_ls_hmm_process_site(tsk_ls_hmm_t *self, tsk_site_t *site, int8_t haplotype_s
916
915
if (ret != 0 ) {
917
916
goto out ;
918
917
}
919
- assert (self -> num_transitions <= self -> num_samples );
918
+ tsk_bug_assert (self -> num_transitions <= self -> num_samples );
920
919
normalisation_factor = self -> compute_normalisation_factor (self );
921
920
922
921
if (normalisation_factor == 0 ) {
923
922
ret = TSK_ERR_MATCH_IMPOSSIBLE ;
924
923
goto out ;
925
924
}
926
925
for (j = 0 ; j < self -> num_transitions ; j ++ ) {
927
- assert (T [j ].tree_node != TSK_NULL );
926
+ tsk_bug_assert (T [j ].tree_node != TSK_NULL );
928
927
x = T [j ].value / normalisation_factor ;
929
928
T [j ].value = tsk_round (x , precision );
930
929
}
@@ -999,7 +998,7 @@ tsk_ls_hmm_compute_normalisation_factor_forward(tsk_ls_hmm_t *self)
999
998
1000
999
/* Compute the number of samples directly inheriting from each transition */
1001
1000
for (j = 0 ; j < num_transitions ; j ++ ) {
1002
- assert (T [j ].tree_node != TSK_NULL );
1001
+ tsk_bug_assert (T [j ].tree_node != TSK_NULL );
1003
1002
N [j ] = num_samples [T [j ].tree_node ];
1004
1003
}
1005
1004
for (j = 0 ; j < num_transitions ; j ++ ) {
@@ -1079,9 +1078,9 @@ tsk_ls_hmm_compute_normalisation_factor_viterbi(tsk_ls_hmm_t *self)
1079
1078
1080
1079
max_vt .value = -1 ;
1081
1080
max_vt .tree_node = 0 ; /* keep compiler happy */
1082
- assert (num_transitions > 0 );
1081
+ tsk_bug_assert (num_transitions > 0 );
1083
1082
for (j = 0 ; j < num_transitions ; j ++ ) {
1084
- assert (T [j ].tree_node != TSK_NULL );
1083
+ tsk_bug_assert (T [j ].tree_node != TSK_NULL );
1085
1084
if (T [j ].value > max_vt .value ) {
1086
1085
max_vt = T [j ];
1087
1086
}
@@ -1481,7 +1480,7 @@ tsk_viterbi_matrix_choose_sample(
1481
1480
max_value = transition_values [j ];
1482
1481
}
1483
1482
}
1484
- assert (u != TSK_NULL );
1483
+ tsk_bug_assert (u != TSK_NULL );
1485
1484
1486
1485
while (!(node_flags [u ] & TSK_NODE_IS_SAMPLE )) {
1487
1486
found = false;
@@ -1499,7 +1498,7 @@ tsk_viterbi_matrix_choose_sample(
1499
1498
}
1500
1499
}
1501
1500
/* TODO: should remove this once we're sure this is robust */
1502
- assert (found );
1501
+ tsk_bug_assert (found );
1503
1502
}
1504
1503
ret = u ;
1505
1504
out :
@@ -1551,8 +1550,8 @@ tsk_viterbi_matrix_traceback(
1551
1550
goto out ;
1552
1551
}
1553
1552
}
1554
- assert (tree .left <= site .position );
1555
- assert (site .position < tree .right );
1553
+ tsk_bug_assert (tree .left <= site .position );
1554
+ tsk_bug_assert (site .position < tree .right );
1556
1555
1557
1556
/* Fill in the recombination tree */
1558
1557
rr_record_tmp = rr_record ;
@@ -1574,7 +1573,7 @@ tsk_viterbi_matrix_traceback(
1574
1573
while (u != TSK_NULL && recombination_tree [u ] == TSK_NULL ) {
1575
1574
u = tree .parent [u ];
1576
1575
}
1577
- assert (u != TSK_NULL );
1576
+ tsk_bug_assert (u != TSK_NULL );
1578
1577
if (recombination_tree [u ] == 1 ) {
1579
1578
/* Switch at the next site */
1580
1579
current_node = TSK_NULL ;
0 commit comments