Closed gjhuizing closed 4 months ago
Is it possible this line counts the fused penalty twice, leading to fused_penalty
being squared?
Hi @gjhuizing , thanks, will look into this!
Is it possible this line counts the fused penalty twice, leading to
fused_penalty
being squared?
I just checked this by running
scaled_pc = PointCloud(a, b, scale_cost=1.0/fp)
lr_pc = PointCloud(a, b).to_LRCGeometry(scale=fp)
jnp.abs(scaled_pc.cost_matrix - lr_pc.cost_matrix).max()
# Array(4.41424291e-14, dtype=float64)
the above line seems to be correct, so the problem is somewhere within the GW solver/problem itself.
Thanks for noticing this @gjhuizing , fixed in #558!
Great, thanks for fixing it! I think this may affect Moscot downstream, it may be worth checking if it changes the behavior for the default parameter of alpha!
thanks to both of you!
Hello,
I would expect these two blocks of code to provide the same answer:
However, they output different values, and the first block seems to be equivalent to
I thought the FGW solver was
<~C_quad,P> + fused_penalty*<C_lin,P> - epsilon*E(P)
. Is that not the case?Thanks a lot!
GJ