@@ -232,7 +232,7 @@ def partial_wasserstein(a, b, M, m=None, nb_dummies=1, log=False, **kwargs):
232232
233233 b_extended = np .append (b , [(np .sum (a ) - m ) / nb_dummies ] * nb_dummies )
234234 a_extended = np .append (a , [(np .sum (b ) - m ) / nb_dummies ] * nb_dummies )
235- M_extended = np .ones ((len (a_extended ), len (b_extended ))) * 0
235+ M_extended = np .zeros ((len (a_extended ), len (b_extended )))
236236 M_extended [- 1 , - 1 ] = np .max (M ) * 1e5
237237 M_extended [:len (a ), :len (b )] = M
238238
@@ -510,9 +510,9 @@ def partial_gromov_wasserstein(C1, C2, p, q, m=None, nb_dummies=1, G0=None,
510510 Gprev = G0
511511
512512 M = gwgrad_partial (C1 , C2 , G0 )
513- M [M < eps ] = np .quantile (M [ M > eps ] , thres )
513+ M [M < eps ] = np .quantile (M , thres )
514514
515- M_emd = np .ones (dim_G_extended ) * np . max ( M ) * 1e2
515+ M_emd = np .zeros (dim_G_extended )
516516 M_emd [:len (p ), :len (q )] = M
517517 M_emd [- nb_dummies :, - nb_dummies :] = np .max (M ) * 1e5
518518 M_emd = np .asarray (M_emd , dtype = np .float64 )
@@ -729,16 +729,16 @@ def entropic_partial_wasserstein(a, b, M, reg, m=None, numItermax=1000,
729729 M = np .asarray (M , dtype = np .float64 )
730730
731731 dim_a , dim_b = M .shape
732- dx = np .ones (dim_a )
733- dy = np .ones (dim_b )
732+ dx = np .ones (dim_a , dtype = np . float64 )
733+ dy = np .ones (dim_b , dtype = np . float64 )
734734
735735 if len (a ) == 0 :
736736 a = np .ones (dim_a , dtype = np .float64 ) / dim_a
737737 if len (b ) == 0 :
738738 b = np .ones (dim_b , dtype = np .float64 ) / dim_b
739739
740740 if m is None :
741- m = np .min ((np .sum (a ), np .sum (b )))
741+ m = np .min ((np .sum (a ), np .sum (b ))) * 1.0
742742 if m < 0 :
743743 raise ValueError ("Problem infeasible. Parameter m should be greater"
744744 " than 0." )
0 commit comments