@@ -164,12 +164,7 @@ where
164
164
{
165
165
type Output = ConcreteRingTensor < T > ;
166
166
fn add ( self , other : ConcreteRingTensor < T > ) -> Self :: Output {
167
- match self . 0 . broadcast ( other. 0 . dim ( ) ) {
168
- Some ( self_broadcasted) => {
169
- ConcreteRingTensor :: < T > ( self_broadcasted. to_owned ( ) + other. 0 )
170
- }
171
- None => ConcreteRingTensor :: < T > ( self . 0 + other. 0 ) ,
172
- }
167
+ ConcreteRingTensor :: < T > ( self . 0 + other. 0 )
173
168
}
174
169
}
175
170
@@ -180,12 +175,7 @@ where
180
175
{
181
176
type Output = ConcreteRingTensor < T > ;
182
177
fn mul ( self , other : ConcreteRingTensor < T > ) -> Self :: Output {
183
- match self . 0 . broadcast ( other. 0 . dim ( ) ) {
184
- Some ( self_broadcasted) => {
185
- ConcreteRingTensor :: < T > ( self_broadcasted. to_owned ( ) * other. 0 )
186
- }
187
- None => ConcreteRingTensor :: < T > ( self . 0 * other. 0 ) ,
188
- }
178
+ ConcreteRingTensor :: < T > ( self . 0 * other. 0 )
189
179
}
190
180
}
191
181
@@ -196,12 +186,7 @@ where
196
186
{
197
187
type Output = ConcreteRingTensor < T > ;
198
188
fn sub ( self , other : ConcreteRingTensor < T > ) -> Self :: Output {
199
- match self . 0 . broadcast ( other. 0 . dim ( ) ) {
200
- Some ( self_broadcasted) => {
201
- ConcreteRingTensor :: < T > ( self_broadcasted. to_owned ( ) - other. 0 )
202
- }
203
- None => ConcreteRingTensor :: < T > ( self . 0 - other. 0 ) ,
204
- }
189
+ ConcreteRingTensor :: < T > ( self . 0 - other. 0 )
205
190
}
206
191
}
207
192
@@ -412,69 +397,6 @@ mod tests {
412
397
assert_eq ! ( out, exp)
413
398
}
414
399
415
- #[ test]
416
- fn test_add_broadcasting ( ) {
417
- let x_1_backing: ArrayD < i64 > = array ! [ 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
418
- let x_1 = Ring64Tensor :: from ( x_1_backing) ;
419
- let y_1_backing: ArrayD < i64 > = array ! [ 1 , 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
420
- let y_1 = Ring64Tensor :: from ( y_1_backing) ;
421
- let z_1 = x_1. add ( y_1) ;
422
- let z_1_exp_backing: ArrayD < i64 > = array ! [ 3 , 4 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
423
- let z_1_exp = Ring64Tensor :: from ( z_1_exp_backing) ;
424
- let x_2_backing: ArrayD < i64 > = array ! [ 1 , 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
425
- let x_2 = Ring64Tensor :: from ( x_2_backing) ;
426
- let y_2_backing: ArrayD < i64 > = array ! [ 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
427
- let y_2 = Ring64Tensor :: from ( y_2_backing) ;
428
- let z_2 = x_2. add ( y_2) ;
429
- let z_2_exp_backing: ArrayD < i64 > = array ! [ 3 , 4 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
430
- let z_2_exp = Ring64Tensor :: from ( z_2_exp_backing) ;
431
-
432
- assert_eq ! ( z_1, z_1_exp) ;
433
- assert_eq ! ( z_2, z_2_exp) ;
434
- }
435
-
436
- #[ test]
437
- fn test_sub_broadcasting ( ) {
438
- let x_1_backing: ArrayD < i64 > = array ! [ 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
439
- let x_1 = Ring64Tensor :: from ( x_1_backing) ;
440
- let y_1_backing: ArrayD < i64 > = array ! [ 1 , 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
441
- let y_1 = Ring64Tensor :: from ( y_1_backing) ;
442
- let z_1 = x_1. sub ( y_1) ;
443
- let z_1_exp_backing: ArrayD < i64 > = array ! [ 1 , 0 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
444
- let z_1_exp = Ring64Tensor :: from ( z_1_exp_backing) ;
445
- let x_2_backing: ArrayD < i64 > = array ! [ 1 , 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
446
- let x_2 = Ring64Tensor :: from ( x_2_backing) ;
447
- let y_2_backing: ArrayD < i64 > = array ! [ 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
448
- let y_2 = Ring64Tensor :: from ( y_2_backing) ;
449
- let z_2 = x_2. sub ( y_2) ;
450
- let z_2_exp_backing: ArrayD < i64 > = array ! [ -1 , 0 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
451
- let z_2_exp = Ring64Tensor :: from ( z_2_exp_backing) ;
452
-
453
- assert_eq ! ( z_1, z_1_exp) ;
454
- assert_eq ! ( z_2, z_2_exp) ;
455
- }
456
-
457
- #[ test]
458
- fn test_mul_broadcasting ( ) {
459
- let x_1_backing: ArrayD < i64 > = array ! [ 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
460
- let x_1 = Ring64Tensor :: from ( x_1_backing) ;
461
- let y_1_backing: ArrayD < i64 > = array ! [ 1 , 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
462
- let y_1 = Ring64Tensor :: from ( y_1_backing) ;
463
- let z_1 = x_1. mul ( y_1) ;
464
- let z_1_exp_backing: ArrayD < i64 > = array ! [ 2 , 4 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
465
- let z_1_exp = Ring64Tensor :: from ( z_1_exp_backing) ;
466
- let x_2_backing: ArrayD < i64 > = array ! [ 1 , 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
467
- let x_2 = Ring64Tensor :: from ( x_2_backing) ;
468
- let y_2_backing: ArrayD < i64 > = array ! [ 2 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
469
- let y_2 = Ring64Tensor :: from ( y_2_backing) ;
470
- let z_2 = x_2. mul ( y_2) ;
471
- let z_2_exp_backing: ArrayD < i64 > = array ! [ 2 , 4 ] . into_dimensionality :: < IxDyn > ( ) . unwrap ( ) ;
472
- let z_2_exp = Ring64Tensor :: from ( z_2_exp_backing) ;
473
-
474
- assert_eq ! ( z_1, z_1_exp) ;
475
- assert_eq ! ( z_2, z_2_exp) ;
476
- }
477
-
478
400
#[ test]
479
401
fn bit_extract ( ) {
480
402
let shape = Shape ( vec ! [ 5 ] ) ;
0 commit comments