eofs icon indicating copy to clipboard operation
eofs copied to clipboard

Deterministic Algorithm

Open luiservela opened this issue 1 year ago • 0 comments

I am trying to validate the output of the library but there is flag that explicitly avoids enforcing the generation of deterministic results.

This line in the main branch is the culprit: https://github.com/ajdawson/eofs/blob/main/lib/eofs/standard.py#L168C11-L168C80

The coerce_signs=False creates unnecessary arbitrariness and does not guarantee the results will be deterministic.

I would suggest setting this flag to True and add yet-another useful feature to the library, namely the production/generation of deterministic results.

Alternatively: I also noticed that in branch v1.4.x, the same line does not have the explicit flag: https://github.com/ajdawson/eofs/blob/v1.4.x/lib/eofs/standard.py#L165 which is very convenient since the default value of the coerce_signs flag is True according to the dask.array.linalg.svd literature here: https://docs.dask.org/en/stable/generated/dask.array.linalg.svd.html

luiservela avatar Sep 24 '24 07:09 luiservela