Math.Gmp.Native/Documentation/Content/Welcome.aml

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>