@@ -333,12 +333,10 @@ def test_reduce_contraction_single(backend: JaxBackend):
333333 )
334334
335335 lhs = Sum .reduce (Product .plus (A (i ()), B (i ())), {i : I ()})
336- rhs = Product .plus (
337- jnp .tensordot (
338- bind_dims (A (unbind_dims (I (), i )), i ),
339- bind_dims (B (unbind_dims (I (), i )), i ),
340- axes = ((0 ,), (0 ,)),
341- )
336+ rhs = jnp .tensordot (
337+ bind_dims (A (unbind_dims (I (), i )), i ),
338+ bind_dims (B (unbind_dims (I (), i )), i ),
339+ axes = ((0 ,), (0 ,)),
342340 )
343341 backend .check_rewrite (lhs = lhs , rhs = rhs , rule = ReduceSumProductContraction ())
344342
@@ -351,79 +349,10 @@ def test_reduce_contraction_double(backend: JaxBackend):
351349 )
352350
353351 lhs = Sum .reduce (Product .plus (A (i (), j ()), B (i (), j ())), {i : I (), j : J ()})
354- rhs = Product .plus (
355- jnp .tensordot (
356- bind_dims (A (unbind_dims (I (), i ), unbind_dims (J (), j )), i , j ),
357- bind_dims (B (unbind_dims (I (), i ), unbind_dims (J (), j )), i , j ),
358- axes = ((0 , 1 ), (0 , 1 )),
359- )
360- )
361- backend .check_rewrite (lhs = lhs , rhs = rhs , rule = ReduceSumProductContraction ())
362-
363-
364- def test_reduce_contraction_multi_factor (backend : JaxBackend ):
365- i , j = backend .define_vars ("i" , "j" , ret = "scalar" )
366- I , J = backend .define_vars ("I" , "J" , ret = "stream" )
367- B = backend .define_vars (
368- "B" , arg_types = (backend .scalar_typ , backend .scalar_typ ), ret = "scalar"
369- )
370- A , C = backend .define_vars ("A" , "C" , arg_types = (backend .scalar_typ ,), ret = "scalar" )
371-
372- lhs = Sum .reduce (Product .plus (A (i ()), B (i (), j ()), C (j ())), {i : I (), j : J ()})
373- rhs = Product .plus (
374- jnp .tensordot (
375- bind_dims (
376- jnp .tensordot (
377- bind_dims (A (unbind_dims (I (), i )), i ),
378- bind_dims (B (unbind_dims (I (), i ), unbind_dims (J (), j )), i ),
379- axes = ((0 ,), (0 ,)),
380- ),
381- j ,
382- ),
383- bind_dims (C (unbind_dims (J (), j )), j ),
384- axes = ((0 ,), (0 ,)),
385- )
386- )
387- backend .check_rewrite (lhs = lhs , rhs = rhs , rule = ReduceSumProductContraction ())
388-
389-
390- def test_reduce_contraction_shared_only (backend : JaxBackend ):
391- i , j , k = backend .define_vars ("i" , "j" , "k" , ret = "scalar" )
392- I , J , K = backend .define_vars ("I" , "J" , "K" , ret = "stream" )
393- A = backend .define_vars (
394- "A" ,
395- arg_types = (backend .scalar_typ , backend .scalar_typ , backend .scalar_typ ),
396- ret = "scalar" ,
397- )
398- B , C = backend .define_vars (
399- "B" , "C" , arg_types = (backend .scalar_typ , backend .scalar_typ ), ret = "scalar"
400- )
401-
402- lhs = Sum .reduce (
403- Product .plus (A (i (), j (), k ()), B (i (), j ()), C (j (), k ())),
404- {i : I (), j : J (), k : K ()},
405- )
406- rhs = Product .plus (
407- jnp .tensordot (
408- bind_dims (
409- jnp .tensordot (
410- bind_dims (
411- A (
412- unbind_dims (I (), i ),
413- unbind_dims (J (), j ),
414- unbind_dims (K (), k ),
415- ),
416- i ,
417- ),
418- bind_dims (B (unbind_dims (I (), i ), unbind_dims (J (), j )), i ),
419- axes = ((0 ,), (0 ,)),
420- ),
421- j ,
422- k ,
423- ),
424- bind_dims (C (unbind_dims (J (), j ), unbind_dims (K (), k )), j , k ),
425- axes = ((0 , 1 ), (0 , 1 )),
426- )
352+ rhs = jnp .tensordot (
353+ bind_dims (A (unbind_dims (I (), i ), unbind_dims (J (), j )), i , j ),
354+ bind_dims (B (unbind_dims (I (), i ), unbind_dims (J (), j )), i , j ),
355+ axes = ((0 , 1 ), (0 , 1 )),
427356 )
428357 backend .check_rewrite (lhs = lhs , rhs = rhs , rule = ReduceSumProductContraction ())
429358
0 commit comments