Skip to content

On the applicability of quantile_function and nx.searchsorted on tensors wider than 2D #518

Description

@kachayev

Describe the bug

Pre-story to this question is the following operation within quantile_function helper for 1d solvers: link. Transpose is only well-defined for 2D PyTorch tensors: for 1D it basically does nothing and for 3D and higher it's deprecated (will be removed in future). Would it be fair to restrict quantile_function to work only for 1D and 2D tensors (e.g. raising ValueError). In tests it's never called with wider tensors.

Same question goes for searchsorted implementation in the backend.py module for backends other than Torch and TF: for example this one. Seems like implementation only supports 1D or 2D use case, should we throw ValueError if something else is given?

Also, maybe it makes sense to define quantile as a backend function with default implementation so we can provide different implementation for Torch to avoid ad-hoc conditioning on the name of the backend?

Happy to make PR if this is the right course of action.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions