@@ -50,20 +50,19 @@ pub fn fft_3(a: Ptr<Option<Value<Box<[Complex]>>>>, mut N: i32) -> Option<Value<
5050 ( * y. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( 0_usize ) as usize ] = __rhs;
5151 return ( * y. borrow_mut ( ) ) . take ( ) ;
5252 }
53- let w: Value < Option < Value < Box < [ Complex ] > > > > =
54- Rc :: new ( RefCell :: new ( Some ( Rc :: new ( RefCell :: new (
55- ( 0 ..( N as usize ) )
56- . map ( |_| <Complex >:: default ( ) )
57- . collect :: < Box < [ _ ] > > ( ) ,
58- ) ) ) ) ) ;
53+ let mut w: Option < Value < Box < [ Complex ] > > > = Some ( Rc :: new ( RefCell :: new (
54+ ( 0 ..( N as usize ) )
55+ . map ( |_| <Complex >:: default ( ) )
56+ . collect :: < Box < [ _ ] > > ( ) ,
57+ ) ) ) ;
5958 let mut i: i32 = 0 ;
6059 ' loop_: while ( i < N ) {
6160 let mut alpha: f64 = ( ( ( ( -2_i32 as f64 ) * 3.141592654E+0 ) * ( i as f64 ) ) / ( N as f64 ) ) ;
6261 let __rhs = Complex {
6362 re : alpha. cos ( ) ,
6463 img : alpha. sin ( ) ,
6564 } ;
66- ( * w . borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
65+ w . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
6766 i. postfix_inc ( ) ;
6867 }
6968 let A0 : Value < Option < Value < Box < [ Complex ] > > > > =
@@ -102,20 +101,15 @@ pub fn fft_3(a: Ptr<Option<Value<Box<[Complex]>>>>, mut N: i32) -> Option<Value<
102101 ( * A1 . borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
103102 i. postfix_inc ( ) ;
104103 }
105- let y0: Value < Option < Value < Box < [ Complex ] > > > > =
106- Rc :: new ( RefCell :: new ( ( { fft_3 ( A0 . as_pointer ( ) , ( N / 2 ) ) } ) ) ) ;
107- let y1: Value < Option < Value < Box < [ Complex ] > > > > =
108- Rc :: new ( RefCell :: new ( ( { fft_3 ( A1 . as_pointer ( ) , ( N / 2 ) ) } ) ) ) ;
104+ let mut y0: Option < Value < Box < [ Complex ] > > > = ( { fft_3 ( A0 . as_pointer ( ) , ( N / 2 ) ) } ) ;
105+ let mut y1: Option < Value < Box < [ Complex ] > > > = ( { fft_3 ( A1 . as_pointer ( ) , ( N / 2 ) ) } ) ;
109106 let mut k: i32 = 0 ;
110107 ' loop_: while ( k < ( N / 2 ) ) {
111108 let mut yk: Complex = ( {
112- let _z1: Complex =
113- ( ( * y0. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
109+ let _z1: Complex = ( y0. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
114110 let _z2: Complex = ( {
115- let _z1: Complex =
116- ( ( * w. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
117- let _z2: Complex =
118- ( ( * y1. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
111+ let _z1: Complex = ( w. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
112+ let _z2: Complex = ( y1. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
119113 Product_0 ( _z1, _z2)
120114 } ) ;
121115 Sum_1 ( _z1, _z2)
@@ -125,17 +119,14 @@ pub fn fft_3(a: Ptr<Option<Value<Box<[Complex]>>>>, mut N: i32) -> Option<Value<
125119 img : yk. img ,
126120 } ;
127121 let mut yk_n2: Complex = ( {
128- let _z1: Complex =
129- ( ( * y0. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
122+ let _z1: Complex = ( y0. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
130123 let _z2: Complex = ( {
131124 Neg_2 (
132125 ( {
133- let _z1: Complex = ( ( * w. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( )
134- [ ( k as usize ) as usize ] )
135- . clone ( ) ;
136- let _z2: Complex = ( ( * y1. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( )
137- [ ( k as usize ) as usize ] )
138- . clone ( ) ;
126+ let _z1: Complex =
127+ ( w. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
128+ let _z2: Complex =
129+ ( y1. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( k as usize ) as usize ] ) . clone ( ) ;
139130 Product_0 ( _z1, _z2)
140131 } ) ,
141132 )
@@ -171,39 +162,34 @@ fn main_0() -> i32 {
171162 ( * a. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
172163 i. postfix_inc ( ) ;
173164 }
174- let b: Value < Option < Value < Box < [ Complex ] > > > > =
175- Rc :: new ( RefCell :: new ( ( { fft_3 ( a. as_pointer ( ) , N ) } ) ) ) ;
176- let reals: Value < Option < Value < Box < [ i32 ] > > > > =
177- Rc :: new ( RefCell :: new ( Some ( Rc :: new ( RefCell :: new (
178- ( 0 ..( N as usize ) )
179- . map ( |_| <i32 >:: default ( ) )
180- . collect :: < Box < [ _ ] > > ( ) ,
181- ) ) ) ) ) ;
182- let imgs: Value < Option < Value < Box < [ i32 ] > > > > =
183- Rc :: new ( RefCell :: new ( Some ( Rc :: new ( RefCell :: new (
184- ( 0 ..( N as usize ) )
185- . map ( |_| <i32 >:: default ( ) )
186- . collect :: < Box < [ _ ] > > ( ) ,
187- ) ) ) ) ) ;
165+ let mut b: Option < Value < Box < [ Complex ] > > > = ( { fft_3 ( a. as_pointer ( ) , N ) } ) ;
166+ let mut reals: Option < Value < Box < [ i32 ] > > > = Some ( Rc :: new ( RefCell :: new (
167+ ( 0 ..( N as usize ) )
168+ . map ( |_| <i32 >:: default ( ) )
169+ . collect :: < Box < [ _ ] > > ( ) ,
170+ ) ) ) ;
171+ let mut imgs: Option < Value < Box < [ i32 ] > > > = Some ( Rc :: new ( RefCell :: new (
172+ ( 0 ..( N as usize ) )
173+ . map ( |_| <i32 >:: default ( ) )
174+ . collect :: < Box < [ _ ] > > ( ) ,
175+ ) ) ) ;
188176 let mut i: i32 = 0 ;
189177 ' loop_: while ( i < N ) {
190- let __rhs =
191- ( { ( * b. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( ) [ ( i as usize ) as usize ] . re } . round ( ) as i32 ) ;
192- ( * reals. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
193- let __rhs = ( { ( * b. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow ( ) [ ( i as usize ) as usize ] . img } . round ( )
194- as i32 ) ;
195- ( * imgs. borrow ( ) ) . as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
178+ let __rhs = ( { b. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( i as usize ) as usize ] . re } . round ( ) as i32 ) ;
179+ reals. as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
180+ let __rhs = ( { b. as_ref ( ) . unwrap ( ) . borrow ( ) [ ( i as usize ) as usize ] . img } . round ( ) as i32 ) ;
181+ imgs. as_ref ( ) . unwrap ( ) . borrow_mut ( ) [ ( i as usize ) as usize ] = __rhs;
196182 i. prefix_inc ( ) ;
197183 }
198184 assert ! (
199- ( ( ( ( ( ( ( ( * reals. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 0_usize ) as usize ] == 10 )
200- && ( ( * imgs. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 0_usize ) as usize ] == 0 ) )
201- && ( ( * reals. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 1_usize ) as usize ] == -2_i32 ) )
202- && ( ( * imgs. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 1_usize ) as usize ] == 2 ) )
203- && ( ( * reals. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 2_usize ) as usize ] == -2_i32 ) )
204- && ( ( * imgs. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 2_usize ) as usize ] == 0 ) )
205- && ( ( * reals. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 3_usize ) as usize ] == -2_i32 ) )
206- && ( ( * imgs. borrow ( ) ) . as_ref( ) . unwrap( ) . borrow( ) [ ( 3_usize ) as usize ] == -2_i32 )
185+ ( ( ( ( ( ( ( reals. as_ref( ) . unwrap( ) . borrow( ) [ ( 0_usize ) as usize ] == 10 )
186+ && ( imgs. as_ref( ) . unwrap( ) . borrow( ) [ ( 0_usize ) as usize ] == 0 ) )
187+ && ( reals. as_ref( ) . unwrap( ) . borrow( ) [ ( 1_usize ) as usize ] == -2_i32 ) )
188+ && ( imgs. as_ref( ) . unwrap( ) . borrow( ) [ ( 1_usize ) as usize ] == 2 ) )
189+ && ( reals. as_ref( ) . unwrap( ) . borrow( ) [ ( 2_usize ) as usize ] == -2_i32 ) )
190+ && ( imgs. as_ref( ) . unwrap( ) . borrow( ) [ ( 2_usize ) as usize ] == 0 ) )
191+ && ( reals. as_ref( ) . unwrap( ) . borrow( ) [ ( 3_usize ) as usize ] == -2_i32 ) )
192+ && ( imgs. as_ref( ) . unwrap( ) . borrow( ) [ ( 3_usize ) as usize ] == -2_i32 )
207193 ) ;
208194 return 0 ;
209195}
0 commit comments