This file has a comment that states "Code is a direct translation of the erfinv m file in matlab version 2.0.” https://github.com/apache/incubator-mxnet/blob/dba682a57812b49a222c04297224921393ea90bb/src/operator/contrib/erfinv-inl.h#L61-L62 Since Matlab is not open source software, it's basically a Category X software. #### Proposed Solution There are two commonly used methods for implementing the inverse error function: - Initial approximation followed by two steps of Newton's method - Used by MATLAB (current implementation) - Category X license - Also used by Scilab (GPL license - also Category X): https://github.com/scilab/scilab/blob/master/scilab/modules/special_functions/macros/erfinv.sci - Rational approximation of percentage points of normal distribution Used by SciPy (new BSD license): https://github.com/scipy/scipy/blob/master/scipy/special/cephes/erfinv.c We can modify MXNet's `erfinv` function to use SciPy's implementation as SciPy's license is Apache compliant.
This file has a comment that states "Code is a direct translation of the erfinv m file in matlab version 2.0.”
https://github.com/apache/incubator-mxnet/blob/dba682a57812b49a222c04297224921393ea90bb/src/operator/contrib/erfinv-inl.h#L61-L62
Since Matlab is not open source software, it's basically a Category X software.
Proposed Solution
There are two commonly used methods for implementing the inverse error function:
Used by SciPy (new BSD license): https://github.com/scipy/scipy/blob/master/scipy/special/cephes/erfinv.c
We can modify MXNet's
erfinvfunction to use SciPy's implementation as SciPy's license is Apache compliant.