@@ -550,13 +550,12 @@ where
550
550
}
551
551
}
552
552
553
- fn chromosome_permutations_size ( & self , scale_index : Option < usize > ) -> BigUint {
553
+ fn chromosome_permutations_size ( & self ) -> BigUint {
554
554
if self . seed_genes_list . is_empty ( ) {
555
555
match self . mutation_type {
556
- MutationType :: Scaled => {
557
- BigUint :: from ( self . permutable_allele_size_scaled ( scale_index. unwrap ( ) ) )
558
- . pow ( self . genes_size ( ) as u32 )
559
- }
556
+ MutationType :: Scaled => ( 0 ..self . max_scale_index ( ) . unwrap ( ) )
557
+ . map ( |scale_index| self . chromosome_permutations_size_scaled ( scale_index) )
558
+ . sum ( ) ,
560
559
MutationType :: Relative => {
561
560
panic ! ( "RangeGenotype is not permutable for MutationType::Relative" )
562
561
}
@@ -769,11 +768,16 @@ where
769
768
writeln ! ( f, " genes_size: {}" , self . genes_size) ?;
770
769
writeln ! ( f, " mutation_type: {:?}" , self . mutation_type) ?;
771
770
772
- if let Some ( max_scale_index ) = self . max_scale_index ( ) {
773
- let sizes : Vec < BigUint > = ( 0 ..max_scale_index)
771
+ if self . mutation_type_allows_permutation ( ) {
772
+ let size_per_scale : Vec < BigUint > = ( 0 ..self . max_scale_index ( ) . unwrap ( ) )
774
773
. map ( |scale_index| self . chromosome_permutations_size_scaled ( scale_index) )
775
774
. collect ( ) ;
776
- writeln ! ( f, " chromosome_permutations_size (per scale): {:?}" , sizes) ?;
775
+ writeln ! (
776
+ f,
777
+ " chromosome_permutations_size: {}, per scale {:?}" ,
778
+ self . chromosome_permutations_size( ) ,
779
+ size_per_scale
780
+ ) ?;
777
781
} else {
778
782
writeln ! ( f, " chromosome_permutations_size: uncountable" ) ?;
779
783
}
0 commit comments