70 lines
3.3 KiB
XML
70 lines
3.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<topic id="846f5c8a-6cba-433e-9f18-cde2ff5695cd" revisionNumber="1">
|
|
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
|
|
<introduction>
|
|
<para>
|
|
The <legacyBold>GMP Native Interface for .NET Library</legacyBold> exposes to .NET (through P-Invoke and .NET types)
|
|
all of the functionality of the
|
|
<externalLink>
|
|
<linkText>GNU MP Library</linkText>
|
|
<linkUri>https://gmplib.org/</linkUri>
|
|
</externalLink>
|
|
(version 6.1.2). It automatically loads at runtime the 32-bit or 64-bit GNU MP library that matches the current CPU
|
|
architecture, thus allowing building Visual Studio Projects for AnyCPU, x86, or x64.
|
|
It is based on the GNU MP "fat" build which automatically detects the current CPU type, and selects any available
|
|
assembly language code optimization for that CPU, thus providing optimal performance.
|
|
</para>
|
|
<para>
|
|
</para>
|
|
<para>
|
|
<externalLink>
|
|
<linkText>C Standard</linkText>
|
|
<linkUri>http://en.cppreference.com/w/c/numeric/math</linkUri>
|
|
</externalLink>
|
|
functions that are missing from the .NET framework.
|
|
Functions include among others:
|
|
<!--<codeEntityReference autoUpgrade="true">M:C.math.frexp(System.Double,System.Int32@)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.ilogb(System.Double)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.ldexp(System.Double,System.Int32)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.logb(System.Double)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.scalbn(System.Double,System.Int32)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.copysign(System.Double,System.Double)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.nextafter(System.Double,System.Double)</codeEntityReference>,
|
|
<codeEntityReference autoUpgrade="true">M:C.math.isunordered(System.Double,System.Double)</codeEntityReference>, and
|
|
<codeEntityReference autoUpgrade="true">M:C.math.fpclassify(System.Double)</codeEntityReference>.-->
|
|
Both double and single precision functions are implemented.
|
|
All functions are static and their names follow the
|
|
<externalLink>
|
|
<linkText>C Standard</linkText>
|
|
<linkUri>http://en.cppreference.com/w/c/numeric/math</linkUri>
|
|
</externalLink>.
|
|
</para>
|
|
<para>
|
|
All functions have been thoroughly tested using a large set of unit tests that cover all
|
|
limit cases to guarantee that all functions behave as specified by the C standard.
|
|
</para>
|
|
</introduction>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<relatedTopics>
|
|
<externalLink>
|
|
<linkText>C Standard</linkText>
|
|
<linkUri>http://en.cppreference.com/w/c/numeric/math</linkUri>
|
|
<linkTarget>_self</linkTarget>
|
|
</externalLink>
|
|
<externalLink>
|
|
<linkText>C.math.NET on GitHub</linkText>
|
|
<linkUri>https://github.com/MachineCognitis/C.math.NET</linkUri>
|
|
<linkTarget>_self</linkTarget>
|
|
</externalLink>
|
|
</relatedTopics>
|
|
|
|
</developerConceptualDocument>
|
|
</topic>
|