@@ -114,48 +114,81 @@ pub fn index(input: &Array, seqs: &[Seq]) -> Result<Array, AfError> {
114114 }
115115}
116116
117+ #[ allow( dead_code) ]
117118pub fn row ( input : & Array , row_num : u64 ) -> Result < Array , AfError > {
118- let dims_err = input. dims ( ) ;
119- let dims = match dims_err {
120- Ok ( dim) => dim. clone ( ) ,
121- Err ( e) => panic ! ( "Error unwrapping dims in row(): {}" , e) ,
122- } ;
123-
124119 index ( input, & [ Seq :: new ( row_num as f64 , row_num as f64 , 1.0 )
125- , Seq :: new ( 0.0 , dims [ 1 ] as f64 - 1.0 , 1.0 ) ] )
120+ , Seq :: default ( ) ] )
126121}
127122
123+ #[ allow( dead_code) ]
124+ pub fn set_row ( input : & Array , new_row : & Array , row_num : u64 ) -> Result < Array , AfError > {
125+ assign_seq ( input, & [ Seq :: new ( row_num as f64 , row_num as f64 , 1.0 ) , Seq :: default ( ) ]
126+ , new_row)
127+ }
128+
129+ #[ allow( dead_code) ]
128130pub fn rows ( input : & Array , first : u64 , last : u64 ) -> Result < Array , AfError > {
129- let dims_err = input. dims ( ) ;
130- let dims = match dims_err {
131- Ok ( dim) => dim. clone ( ) ,
132- Err ( e) => panic ! ( "Error unwrapping dims in rows(): {}" , e) ,
133- } ;
131+ index ( input, & [ Seq :: new ( first as f64 , last as f64 , 1.0 ) , Seq :: default ( ) ] )
132+ }
134133
135- index ( input, & [ Seq :: new ( first as f64 , last as f64 , 1.0 )
136- , Seq :: new ( 0.0 , dims[ 1 ] as f64 - 1.0 , 1.0 ) ] )
134+ #[ allow( dead_code) ]
135+ pub fn set_rows ( input : & Array , new_rows : & Array , first : u64 , last : u64 ) -> Result < Array , AfError > {
136+ assign_seq ( input, & [ Seq :: new ( first as f64 , last as f64 , 1.0 ) , Seq :: default ( ) ]
137+ , new_rows)
137138}
138139
140+ #[ allow( dead_code) ]
139141pub fn col ( input : & Array , col_num : u64 ) -> Result < Array , AfError > {
140- let dims_err = input. dims ( ) ;
141- let dims = match dims_err {
142- Ok ( dim) => dim. clone ( ) ,
143- Err ( e) => panic ! ( "Error unwrapping dims in col(): {}" , e) ,
144- } ;
142+ index ( input, & [ Seq :: default ( )
143+ , Seq :: new ( col_num as f64 , col_num as f64 , 1.0 ) ] )
144+ }
145145
146- index ( input, & [ Seq :: new ( 0.0 , dims[ 0 ] as f64 - 1.0 , 1.0 )
147- , Seq :: new ( col_num as f64 , col_num as f64 , 1.0 ) ] )
146+ #[ allow( dead_code) ]
147+ pub fn set_col ( input : & Array , new_col : & Array , col_num : u64 ) -> Result < Array , AfError > {
148+ assign_seq ( input, & [ Seq :: default ( ) , Seq :: new ( col_num as f64 , col_num as f64 , 1.0 ) ]
149+ , new_col)
148150}
149151
152+ #[ allow( dead_code) ]
150153pub fn cols ( input : & Array , first : u64 , last : u64 ) -> Result < Array , AfError > {
151- let dims_err = input. dims ( ) ;
152- let dims = match dims_err {
153- Ok ( dim) => dim. clone ( ) ,
154- Err ( e) => panic ! ( "Error unwrapping dims in cols(): {}" , e) ,
155- } ;
154+ index ( input, & [ Seq :: default ( )
155+ , Seq :: new ( first as f64 , last as f64 , 1.0 ) ] )
156+ }
156157
157- index ( input, & [ Seq :: new ( 0.0 , dims[ 0 ] as f64 - 1.0 , 1.0 )
158- , Seq :: new ( first as f64 , last as f64 , 1.0 ) ] )
158+ #[ allow( dead_code) ]
159+ pub fn set_cols ( input : & Array , new_cols : & Array , first : u64 , last : u64 ) -> Result < Array , AfError > {
160+ assign_seq ( input, & [ Seq :: default ( ) , Seq :: new ( first as f64 , last as f64 , 1.0 ) ]
161+ , new_cols)
162+ }
163+
164+ #[ allow( dead_code) ]
165+ pub fn slice ( input : & Array , slice_num : u64 ) -> Result < Array , AfError > {
166+ index ( input, & [ Seq :: default ( )
167+ , Seq :: default ( )
168+ , Seq :: new ( slice_num as f64 , slice_num as f64 , 1.0 ) ] )
169+ }
170+
171+ #[ allow( dead_code) ]
172+ pub fn set_slice ( input : & Array , new_slice : & Array , slice_num : u64 ) -> Result < Array , AfError > {
173+ assign_seq ( input, & [ Seq :: default ( )
174+ , Seq :: default ( )
175+ , Seq :: new ( slice_num as f64 , slice_num as f64 , 1.0 ) ]
176+ , new_slice)
177+ }
178+
179+ #[ allow( dead_code) ]
180+ pub fn slices ( input : & Array , first : u64 , last : u64 ) -> Result < Array , AfError > {
181+ index ( input, & [ Seq :: default ( )
182+ , Seq :: default ( )
183+ , Seq :: new ( first as f64 , last as f64 , 1.0 ) ] )
184+ }
185+
186+ #[ allow( dead_code) ]
187+ pub fn set_slices ( input : & Array , new_slices : & Array , first : u64 , last : u64 ) -> Result < Array , AfError > {
188+ assign_seq ( input, & [ Seq :: default ( )
189+ , Seq :: default ( )
190+ , Seq :: new ( first as f64 , last as f64 , 1.0 ) ]
191+ , new_slices)
159192}
160193
161194pub fn lookup ( input : & Array , indices : & Array , seq_dim : i32 ) -> Result < Array , AfError > {
@@ -170,11 +203,11 @@ pub fn lookup(input: &Array, indices: &Array, seq_dim: i32) -> Result<Array, AfE
170203 }
171204}
172205
173- pub fn assign_seq ( lhs : & Array , ndims : usize , seqs : & [ Seq ] , rhs : & Array ) -> Result < Array , AfError > {
206+ pub fn assign_seq ( lhs : & Array , seqs : & [ Seq ] , rhs : & Array ) -> Result < Array , AfError > {
174207 unsafe {
175208 let mut temp: i64 = 0 ;
176209 let err_val = af_assign_seq ( & mut temp as MutAfArray , lhs. get ( ) as AfArray ,
177- ndims as c_uint , seqs. as_ptr ( ) as * const Seq ,
210+ seqs . len ( ) as c_uint , seqs. as_ptr ( ) as * const Seq ,
178211 rhs. get ( ) as AfArray ) ;
179212 match err_val {
180213 0 => Ok ( Array :: from ( temp) ) ,
0 commit comments