Adding some new functions to System.Math and System.MathF (#20788)
authorTanner Gooding <tagoo@outlook.com>
Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)
committerGitHub <noreply@github.com>
Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)
commit28417584d8e98ae7eac22e92b952778f8ea94047
treea6010a24228ca769fc7a6381cbd04b3a762e9219
parentd3a7c973723bf2610c7dcdcd00318c06a72a36f8
Adding some new functions to System.Math and System.MathF (#20788)

* Adding BitIncrement, BitDecrement, CopySign, MaxMagnitude, and MinMagnitude to Math and MathF

* Adding FusedMultiplyAdd, IlogB, Log2, and ScaleB to Math and MathF

* Adding some basic PAL tests for fma, ilogb, log2, and scalbn

* Fixing a couple typos and adding clarifying comments

* Fixing the MSVC _VVV FCALL declarations
47 files changed:
src/System.Private.CoreLib/shared/System/Math.cs
src/System.Private.CoreLib/shared/System/MathF.cs
src/System.Private.CoreLib/src/System/Math.CoreCLR.cs
src/System.Private.CoreLib/src/System/MathF.CoreCLR.cs
src/classlibnative/float/floatdouble.cpp
src/classlibnative/float/floatsingle.cpp
src/classlibnative/inc/floatdouble.h
src/classlibnative/inc/floatsingle.h
src/jit/importer.cpp
src/jit/lsraxarch.cpp
src/pal/inc/pal.h
src/pal/src/cruntime/math.cpp
src/pal/src/include/pal/palinternal.h
src/pal/tests/palsuite/c_runtime/fma/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fma/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fma/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fmaf/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fmaf/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fmaf/test1/test1.c [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/fmaf/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogb/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogb/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogb/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogbf/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogbf/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.c [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/ilogbf/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2f/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2f/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2f/test1/test1.c [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/log2f/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbn/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbn/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbn/test1/testinfo.dat [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbnf/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbnf/test1/CMakeLists.txt [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.c [new file with mode: 0644]
src/pal/tests/palsuite/c_runtime/scalbnf/test1/testinfo.dat [new file with mode: 0644]
src/vm/ecalllist.h
src/vm/fcall.h