File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -319,6 +319,12 @@ impl ConvType {
319319 pub const fn is_pdf ( & self ) -> bool {
320320 matches ! ( self , Self :: UnpolPDF | Self :: PolPDF )
321321 }
322+
323+ /// TODO
324+ #[ must_use]
325+ pub const fn is_ff ( & self ) -> bool {
326+ matches ! ( self , Self :: UnpolFF | Self :: PolFF )
327+ }
322328}
323329
324330/// Data type that indentifies different types of convolutions.
Original file line number Diff line number Diff line change @@ -1529,16 +1529,24 @@ impl Grid {
15291529 let new_channel_pids: Vec < _ > = new_channel_map. keys ( ) . cloned ( ) . collect ( ) ;
15301530
15311531 let conv_to_fix = & self . convolutions [ conv_idx] ;
1532- let ( new_orders, order_map) = if conv_to_fix. conv_type ( ) . is_pdf ( ) {
1533- ( self . orders . clone ( ) , ( 0 ..self . orders . len ( ) ) . collect ( ) )
1534- } else {
1532+ let ( new_orders, order_map) = {
15351533 let mut unique_orders = Vec :: new ( ) ;
1534+ let other_conv_idx = 1 - conv_idx;
1535+
15361536 let map: Vec < usize > = self
15371537 . orders
15381538 . iter ( )
15391539 . map ( |o| {
15401540 let mut new_o = o. clone ( ) ;
1541- new_o. logxia = 0 ;
1541+
1542+ if conv_to_fix. conv_type ( ) . is_ff ( ) {
1543+ new_o. logxia = 0 ;
1544+ } else if self . convolutions . len ( ) == 2
1545+ && self . convolutions [ other_conv_idx] . conv_type ( ) . is_ff ( )
1546+ {
1547+ new_o. logxif = 0 ;
1548+ }
1549+
15421550 unique_orders
15431551 . iter ( )
15441552 . position ( |uo| uo == & new_o)
You can’t perform that action at this time.
0 commit comments