Skip to content

Add non-x86 versions of special functions #3510

Description

@david-cortes-intel

OneDAL takes many common mathematical functions used by statistical calculations from MKL, such as CDF of the normal distribution, inverse CDF, inverse error function, and similar.

These kinds of functions are not part of the C++ standard, and not part of any common library. Hence, the reference implementation used in the aarch64 and riscv builds fails silently, by filling with NaNs.

For example:

static float sErfInv(float in) { return std::numeric_limits<float>::quiet_NaN(); }

Perhaps some dependency could be added to the reference implementation for those functions. Issue would be with the licensing though - there are GPL implementations out there, but they would be incompatible with the Apache license of oneDAL.

Perhaps the cephes library which SciPy uses could be incorporated, but the licensing around that library is very unclear. Maybe a third-party dependency akin to OpenRNG could be created with those functions.

CC @rakshithgb-fujitsu @theComputeKid @keeranroth

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    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