Deterministic Algorithm
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