Add project files.

master
Robert Baron 2017-11-04 11:02:37 -04:00
parent 0cea0c0996
commit aef80fc4ac
870 changed files with 67452 additions and 0 deletions

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="f774b9bc-fb02-4c74-95dc-fcdeca835543" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>The topics in this section describe the various changes made to the [TODO: Project Title] over the
life of the project.</para>
</introduction>
<section>
<title>Version History</title>
<content>
<para>Select a version below to see a description of its changes.</para>
<list class="bullet">
<listItem>
<para><link xlink:href="f3750914-0f99-41b4-9a22-fc11b91d0953" /></para>
</listItem>
<listItem>
<para>[TODO: Add links to each specific version page]</para>
</listItem>
</list>
</content>
</section>
<relatedTopics>
<link xlink:href="846f5c8a-6cba-433e-9f18-cde2ff5695cd" />
</relatedTopics>
</developerConceptualDocument>
</topic>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="f3750914-0f99-41b4-9a22-fc11b91d0953" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>Version [TODO: Version] was released on [TODO: Date].
</para>
</introduction>
<section>
<title>Changes in This Release</title>
<content>
<list class="bullet">
<listItem>
<para>[TODO: Add change items here]</para>
</listItem>
</list>
</content>
</section>
<relatedTopics>
<link xlink:href="f774b9bc-fb02-4c74-95dc-fcdeca835543" />
</relatedTopics>
</developerConceptualDocument>
</topic>

View File

@ -0,0 +1,69 @@
<?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>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Topics>
<Topic id="846f5c8a-6cba-433e-9f18-cde2ff5695cd" visible="True" isDefault="true" isSelected="true" title="Welcome to the GMP Native Interface for .NET Library">
<HelpKeywords>
<HelpKeyword index="K" term="Welcome" />
</HelpKeywords>
</Topic>
</Topics>

View File

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- NOTE: Update the version number in the path (YYYY.M.D.R) to match the package version -->
<SHFBROOT Condition=" '$(SHFBROOT)' == '' ">$(MSBuildThisFileDirectory)..\packages\EWSoftware.SHFB.2016.9.17.0\Tools\</SHFBROOT>
<!-- The configuration and platform will be used to determine which assemblies to include from solution and project documentation sources -->
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>ce631e64-52bf-4527-99ad-1eaeb76550a8</ProjectGuid>
<SHFBSchemaVersion>2015.6.5.0</SHFBSchemaVersion>
<!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual Studio adds them anyway -->
<AssemblyName>Documentation</AssemblyName>
<RootNamespace>Documentation</RootNamespace>
<Name>Documentation</Name>
<!-- SHFB properties -->
<FrameworkVersion>.NET Framework 2.0</FrameworkVersion>
<OutputPath>..\docs\</OutputPath>
<HtmlHelpName>Gmp.Native</HtmlHelpName>
<Language>en-US</Language>
<TransformComponentArguments>
<Argument Key="logoFile" Value="" />
<Argument Key="logoHeight" Value="" />
<Argument Key="logoWidth" Value="" />
<Argument Key="logoAltText" Value="" />
<Argument Key="logoPlacement" Value="left" />
<Argument Key="logoAlignment" Value="left" />
<Argument Key="maxVersionParts" Value="" />
<Argument Key="defaultLanguage" Value="cs" />
<Argument Key="includeEnumValues" Value="true" />
<Argument Key="baseSourceCodeUrl" Value="" />
<Argument Key="requestExampleUrl" Value="" />
</TransformComponentArguments>
<DocumentationSources>
<DocumentationSource sourceFile="..\Math.Gmp.Native\Math.Gmp.Native.csproj" />
</DocumentationSources>
<SaveComponentCacheCapacity>100</SaveComponentCacheCapacity>
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
<HelpFileFormat>HtmlHelp1, Website</HelpFileFormat>
<IndentHtml>False</IndentHtml>
<KeepLogFile>True</KeepLogFile>
<DisableCodeBlockComponent>False</DisableCodeBlockComponent>
<CleanIntermediates>True</CleanIntermediates>
<NamespaceSummaries>
<NamespaceSummaryItem name="(global)" isDocumented="False" />
</NamespaceSummaries>
<WarnOnMissingSourceContext>False</WarnOnMissingSourceContext>
<HelpFileVersion>1.0.0.0</HelpFileVersion>
<MaximumGroupParts>2</MaximumGroupParts>
<NamespaceGrouping>False</NamespaceGrouping>
<SyntaxFilters>Standard</SyntaxFilters>
<SdkLinkTarget>Blank</SdkLinkTarget>
<RootNamespaceContainer>False</RootNamespaceContainer>
<PresentationStyle>VS2013</PresentationStyle>
<Preliminary>False</Preliminary>
<NamingMethod>Guid</NamingMethod>
<HelpTitle>GMP Native Interface for .NET</HelpTitle>
<ContentPlacement>AboveNamespaces</ContentPlacement>
<ComponentConfigurations />
<ComponentPath>..\packages\EWSoftware.SHFB.NETFramework.4.6.2\</ComponentPath>
</PropertyGroup>
<!-- There are no properties for these groups. AnyCPU needs to appear in order for Visual Studio to perform
the build. The others are optional common platform types that may appear. -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Win32' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Win32' ">
</PropertyGroup>
<ItemGroup>
<Folder Include="Content" />
<Folder Include="Content\VersionHistory" />
<Folder Include="icons" />
<Folder Include="media" />
</ItemGroup>
<ItemGroup>
<None Include="Content\VersionHistory\v1.0.0.0.aml" />
<None Include="Content\VersionHistory\VersionHistory.aml" />
<None Include="Content\Welcome.aml" />
</ItemGroup>
<ItemGroup>
<ContentLayout Include="ContentLayout.content" />
</ItemGroup>
<ItemGroup>
<Content Include="icons\Help.png" />
</ItemGroup>
<ItemGroup>
<Content Include="icons\facebook.png">
<ImageId>facebook</ImageId>
<AlternateText>facebook</AlternateText>
</Content>
<Content Include="icons\google.png">
<ImageId>google</ImageId>
<AlternateText>google</AlternateText>
</Content>
<Content Include="icons\linkedin.png">
<ImageId>linkedin</ImageId>
<AlternateText>linkedin</AlternateText>
</Content>
<Content Include="icons\mail.png">
<ImageId>mail</ImageId>
<AlternateText>mail</AlternateText>
</Content>
<Content Include="icons\twitter.png">
<ImageId>twitter</ImageId>
<AlternateText>twitter</AlternateText>
</Content>
</ItemGroup>
<!-- Import the SHFB build targets -->
<Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" />
<!-- The pre-build and post-build event properties must appear *after* the targets file import in order to be
evaluated correctly. -->
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

BIN
GMP Sizes.xlsx 100644

Binary file not shown.

22
LICENSE.md 100644
View File

@ -0,0 +1,22 @@
MIT License
Copyright (c) 2017 Robert Baron, Machine Cognitis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8E987EBD-1611-488C-BC4D-639074C88CB1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Math.Gmp.Native.UnitTests</RootNamespace>
<AssemblyName>Math.Gmp.Native.UnitTests</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup>
</Otherwise>
</Choose>
<ItemGroup>
<Compile Include="UnitTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Math.Gmp.Native\Math.Gmp.Native.csproj">
<Project>{145d16a4-b3b6-49c6-b0dd-e4e0a2a00e4a}</Project>
<Name>Math.Gmp.Native</Name>
</ProjectReference>
</ItemGroup>
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
</ItemGroup>
</When>
</Choose>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Math.Native.Gmp.UnitTests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Math.Native.Gmp.UnitTests")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("8e987ebd-1611-488c-bc4d-639074c88cb1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

File diff suppressed because it is too large Load Diff

107
Math.Gmp.Native.sln 100644
View File

@ -0,0 +1,107 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{68DC166D-565A-4F3D-B777-B8E384F26864}"
ProjectSection(SolutionItems) = preProject
LICENSE.md = LICENSE.md
README.md = README.md
EndProjectSection
EndProject
Project("{7CF6DF6D-3B04-46F8-A40B-537D21BCA0B4}") = "Documentation", "Documentation\Documentation.shfbproj", "{CE631E64-52BF-4527-99AD-1EAEB76550A8}"
ProjectSection(ProjectDependencies) = postProject
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A} = {145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}
EndProjectSection
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "docs", "docs\docs.shproj", "{39B1E62E-D491-495F-8E90-B7D09B76D8A1}"
EndProject
Project("{E09DD79A-4488-4AB9-8D3F-A7EEE78BF432}") = "NuGet", "NuGet\NuGet.nuproj", "{B51A83D0-21F1-454A-A62C-8173DB309348}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "packages", "packages\packages.shproj", "{7C014AD2-2519-4B17-A89E-26A7C6D0BD50}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Math.Gmp.Native", "Math.Gmp.Native\Math.Gmp.Native.csproj", "{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Math.Gmp.Native.UnitTests", "Math.Gmp.Native.UnitTests\Math.Gmp.Native.UnitTests.csproj", "{8E987EBD-1611-488C-BC4D-639074C88CB1}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
docs\docs.projitems*{39b1e62e-d491-495f-8e90-b7d09b76d8a1}*SharedItemsImports = 13
packages\packages.projitems*{7c014ad2-2519-4b17-a89e-26a7c6d0bd50}*SharedItemsImports = 13
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|ARM.ActiveCfg = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|ARM.Build.0 = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|x64.ActiveCfg = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|x64.Build.0 = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|x86.ActiveCfg = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Debug|x86.Build.0 = Debug|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|Any CPU.Build.0 = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|ARM.ActiveCfg = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|ARM.Build.0 = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|x64.ActiveCfg = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|x64.Build.0 = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|x86.ActiveCfg = Release|Any CPU
{CE631E64-52BF-4527-99AD-1EAEB76550A8}.Release|x86.Build.0 = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|ARM.Build.0 = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|x64.ActiveCfg = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|x64.Build.0 = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|x86.ActiveCfg = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Debug|x86.Build.0 = Debug|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|ARM.ActiveCfg = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|ARM.Build.0 = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|x64.ActiveCfg = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|x64.Build.0 = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|x86.ActiveCfg = Release|Any CPU
{B51A83D0-21F1-454A-A62C-8173DB309348}.Release|x86.Build.0 = Release|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|ARM.Build.0 = Debug|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|x64.ActiveCfg = Debug|x64
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|x64.Build.0 = Debug|x64
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|x86.ActiveCfg = Debug|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Debug|x86.Build.0 = Debug|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|Any CPU.Build.0 = Release|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|ARM.ActiveCfg = Release|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|ARM.Build.0 = Release|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|x64.ActiveCfg = Release|x64
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|x64.Build.0 = Release|x64
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|x86.ActiveCfg = Release|Any CPU
{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}.Release|x86.Build.0 = Release|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|ARM.ActiveCfg = Debug|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|ARM.Build.0 = Debug|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|x64.ActiveCfg = Debug|x64
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|x64.Build.0 = Debug|x64
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|x86.ActiveCfg = Debug|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Debug|x86.Build.0 = Debug|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|ARM.ActiveCfg = Release|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|ARM.Build.0 = Release|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|x64.ActiveCfg = Release|x64
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|x64.Build.0 = Release|x64
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|x86.ActiveCfg = Release|Any CPU
{8E987EBD-1611-488C-BC4D-639074C88CB1}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,77 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a file stream.
/// </summary>
/// <remarks></remarks>
public struct FILE
{
/// <summary>
/// File pointer in unmanaged memory.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible")]
public IntPtr Value;
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="FILE"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is FILE))
return false;
return Equals((FILE)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="FILE"/> value.
/// </summary>
/// <param name="other">A <see cref="FILE"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(FILE other)
{
return Value == other.Value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return Value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="FILE"/> value.</param>
/// <param name="value2">A <see cref="FILE"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(FILE value1, FILE value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="FILE"/> value.</param>
/// <param name="value2">A <see cref="FILE"/> value.</param>
/// <returns><c>True</c> if the two FILE are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(FILE value1, FILE value2)
{
return !value1.Equals(value2);
}
}
}

Binary file not shown.

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{145D16A4-B3B6-49C6-B0DD-E4E0A2A00E4A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Math.Gmp.Native</RootNamespace>
<AssemblyName>Math.Gmp.Native</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>Math.Gmp.Native.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<DocumentationFile>
</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<CodeAnalysisRuleSet>Math.Gmp.Native.ruleset</CodeAnalysisRuleSet>
<DocumentationFile>bin\Release\Math.Gmp.Native.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>Math.Gmp.Native.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>Math.Gmp.Native.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="va_list.cs" />
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="mp_base.cs" />
<Compile Include="FILE.cs" />
<Compile Include="mp_ptr.cs" />
<Compile Include="mp_exp_t.cs" />
<Compile Include="mp_size_t.cs" />
<Compile Include="mp_limb_t.cs" />
<Compile Include="mp_bitcnt_t.cs" />
<Compile Include="ptr.cs" />
<Compile Include="size_t.cs" />
<Compile Include="void_ptr.cs" />
<Compile Include="free_function.cs" />
<Compile Include="char_ptr.cs" />
<Compile Include="reallocate_function.cs" />
<Compile Include="allocate_function.cs" />
<Compile Include="gmp_lib.cs" />
<Compile Include="mpf_t.cs" />
<Compile Include="mpq_t.cs" />
<Compile Include="gmp_randstate_t.cs" />
<Compile Include="mpz_t.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
<Content Include="x64\libgmp-10.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="x86\libgmp-10.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="Math.Gmp.Native.ruleset" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Rules for Math.Gmp.Native" Description="Code analysis rules for Math.Gmp.Native.csproj." ToolsVersion="14.0">
<IncludeAll Action="Warning" />
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1702" Action="None" />
<Rule Id="CA1704" Action="None" />
<Rule Id="CA1707" Action="None" />
<Rule Id="CA1709" Action="None" />
<Rule Id="CA1710" Action="None" />
<Rule Id="CA2204" Action="None" />
</Rules>
</RuleSet>

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Math.Native.Gmp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Math.Native.Gmp")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("145d16a4-b3b6-49c6-b0dd-e4e0a2a00e4a")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,4 @@

Code Analysis is run under .NET Framework 4.0

View File

@ -0,0 +1,15 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Return a pointer to newly allocated space with at least <paramref name="alloc_size"/> bytes.
/// </summary>
/// <param name="alloc_size">The minimum number of bytes to allocate.</param>
/// <returns>A pointer to newly allocated space with at least <paramref name="alloc_size"/> bytes.</returns>
public delegate void_ptr allocate_function(size_t alloc_size);
}

View File

@ -0,0 +1,118 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a pointer to a string in unmanaged memory.
/// </summary>
/// <remarks></remarks>
public struct char_ptr
{
internal IntPtr pointer;
/// <summary>
/// Creates new string in unmanaged memory and initializes it with <paramref name="str"/>.
/// </summary>
/// <param name="str">The value of the new string.</param>
/// <remarks>
/// <para>
/// When done with the string, unmanaged memory must be released with <see cref="gmp_lib.free(char_ptr)"/> .
/// </para>
/// </remarks>
public char_ptr(string str)
{
if (str == null) throw new ArgumentNullException("str");
pointer = gmp_lib.allocate((size_t)(str.Length + 1)).ToIntPtr();
Marshal.Copy(System.Text.Encoding.ASCII.GetBytes(str), 0, pointer, str.Length);
Marshal.Copy(new Byte[] { 0 }, 0, (IntPtr)(pointer.ToInt64() + str.Length), 1);
}
internal char_ptr(IntPtr pointer)
{
this.pointer = pointer;
}
/// <summary>
/// Gets pointer to string in unmanaged memory.
/// </summary>
/// <returns>Pointer to string in unmanaged memory.</returns>
public IntPtr ToIntPtr()
{
return pointer;
}
/// <summary>
/// Gets a null <see cref="char_ptr"/>.
/// </summary>
public static readonly char_ptr Zero = new char_ptr(IntPtr.Zero);
/// <summary>
/// Gets the .NET <see cref="string"/> equivalent of the unmanaged string.
/// </summary>
/// <returns>The .NET <see cref="string"/> equivalent of the unmanaged string.</returns>
public override string ToString()
{
return Marshal.PtrToStringAnsi(pointer);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="char_ptr"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is char_ptr))
return false;
return Equals((char_ptr)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="char_ptr"/> value.
/// </summary>
/// <param name="other">A <see cref="char_ptr"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(char_ptr other)
{
return pointer == other.pointer;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return pointer.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="char_ptr"/> value.</param>
/// <param name="value2">A <see cref="char_ptr"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(char_ptr value1, char_ptr value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="char_ptr"/> value.</param>
/// <param name="value2">A <see cref="char_ptr"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(char_ptr value1, char_ptr value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,15 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// De-allocate the space pointed to by <paramref name="ptr"/>.
/// </summary>
/// <param name="ptr">Pointer to previously allocated block.</param>
/// <param name="size">Number of bytes of previously allocated block.</param>
public delegate void free_function(void_ptr ptr, size_t size);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,39 @@

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents the state of a random number generator.
/// </summary>
/// <remarks></remarks>
public class gmp_randstate_t
{
private IntPtr _pointer;
/// <summary>
/// Creates a new random number generator state.
/// </summary>
/// <remarks>
/// <para>
/// When done with the random number generator state, unmanaged memory must be released with <see cref="gmp_lib.free(gmp_randstate_t)"/> .
/// </para>
/// </remarks>
public gmp_randstate_t()
{
// Allocation sizes take into account the members alignment done by the C compiler.
_pointer = gmp_lib.allocate(IntPtr.Size == 4 ? 20U : 32U).ToIntPtr();
}
internal IntPtr ToIntPtr()
{
return _pointer;
}
}
}

View File

@ -0,0 +1,97 @@

using System;
using System.Diagnostics;
namespace Math.Gmp.Native
{
/// <summary>
/// Provides common functionality to <see cref="mpz_t"/>, <see cref="mpf_t"/>, and <see cref="gmp_randstate_t"/>.
/// </summary>
public class mp_base
{
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal IntPtr _pointer;
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal mp_size_t _size;
/// <summary>
/// The number of limbs.
/// </summary>
/// <remarks></remarks>
public virtual mp_size_t _mp_size
{
get
{
return _size;
}
}
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal virtual IntPtr _mp_d_intptr
{
get
{
return _pointer;
}
set
{
_pointer = value;
}
}
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private mp_ptr __mp_d = null;
/// <summary>
/// A pointer to an array of limbs which is the magnitude.
/// </summary>
/// <remarks>
/// <para>
/// In <see cref="mpz_t"/>:
/// </para>
/// <para>
/// A pointer to an array of limbs which is the magnitude.
/// These are stored “little endian” as per the mpn functions, so <c><see cref="_mp_d"/>[0]</c>
/// is the least significant limb and <c><see cref="_mp_d"/>[ABS(<see cref="_mp_size"/>) - 1]</c>
/// is the most significant.
/// Whenever <see cref="_mp_size"/> is non-zero, the most significant limb is non-zero.
/// </para>
/// <para>
/// Currently theres always at least one limb allocated, so for instance <see cref="gmp_lib.mpz_set_ui"/>
/// never needs to reallocate, and <see cref="gmp_lib.mpz_get_ui"/> can fetch <c><see cref="_mp_d"/>[0]</c>
/// unconditionally (though its value is then only wanted if <see cref="_mp_size"/> is non-zero).
/// </para>
/// <para>
/// In <see cref="mpz_t"/>:
/// </para>
/// <para>
/// A pointer to the array of limbs which is the absolute value of the mantissa.
/// These are stored "little endian" as per the <c>mpn</c> functions, so <c>_mp_d[0]</c> is the least
/// significant limb and <c>_mp_d[ABS(_mp_size)-1]</c> the most significant.
/// </para>
/// <para>
/// The most significant limb is always non-zero, but there are no other restrictions on its value,
/// in particular the highest <c>1</c> bit can be anywhere within the limb.
/// </para>
/// <para>
/// <c>_mp_prec + 1</c> limbs are allocated to <see cref="mp_base._mp_d"/>, the extra limb being for
/// convenience (see below).
/// There are no reallocations during a calculation, only in a change of precision with <see cref="gmp_lib.mpf_set_prec"/>.
/// </para>
/// </remarks>
public virtual mp_ptr _mp_d
{
get
{
if (__mp_d == null)
__mp_d = new mp_ptr(this);
return __mp_d;
}
}
}
}

View File

@ -0,0 +1,272 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a count of bits.
/// </summary>
/// <remarks>
/// <para>
/// Counts of bits of a multi-precision number are represented in the C type <see cref="mp_bitcnt_t"/>.
/// Currently this is always an unsigned long, but on some systems it will be an unsigned long long in the future.
/// </para>
/// <para>
/// In .NET, this is an unsigned 32-bit integer.
/// </para>
/// </remarks>
/// <seealso cref="mpf_t"/>
/// <seealso cref="mpq_t"/>
/// <seealso cref="mpz_t"/>
public struct mp_bitcnt_t
{
internal uint _value;
/// <summary>
/// Creates a new <see cref="mp_bitcnt_t"/>, and sets its <paramref name="value"/>.
/// </summary>
/// <param name="value">The value of the new <see cref="mp_bitcnt_t"/>.</param>
public mp_bitcnt_t(uint value)
{
_value = value;
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static implicit operator mp_bitcnt_t(byte value)
{
return new mp_bitcnt_t(value);
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static explicit operator mp_bitcnt_t(sbyte value)
{
if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_bitcnt_t data type.", value));
return new mp_bitcnt_t((uint)value);
}
/// <summary>
/// Converts a <see cref="UInt16"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt16"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static implicit operator mp_bitcnt_t(ushort value)
{
return new mp_bitcnt_t(value);
}
/// <summary>
/// Converts an <see cref="Int16"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int16"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static explicit operator mp_bitcnt_t(short value)
{
if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_bitcnt_t data type.", value));
return new mp_bitcnt_t((uint)value);
}
/// <summary>
/// Converts a <see cref="UInt32"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt32"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static implicit operator mp_bitcnt_t(uint value)
{
return new mp_bitcnt_t(value);
}
/// <summary>
/// Converts an <see cref="Int32"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int32"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static explicit operator mp_bitcnt_t(int value)
{
//if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_bitcnt_t data type.", value));
return new mp_bitcnt_t(unchecked((uint)value));
}
/// <summary>
/// Converts a <see cref="UInt64"/> value to an <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt64"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static explicit operator mp_bitcnt_t(ulong value)
{
if (value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_bitcnt_t data type.", value));
return new mp_bitcnt_t((uint)value);
}
/// <summary>
/// Converts an <see cref="Int64"/> value to a <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int64"/> value.</param>
/// <returns>An <see cref="mp_bitcnt_t"/> value.</returns>
public static explicit operator mp_bitcnt_t(long value)
{
if (value < 0 || value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_bitcnt_t data type.", value));
return new mp_bitcnt_t((uint)value);
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to a <see cref="Byte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>A <see cref="Byte"/> value.</returns>
public static explicit operator byte(mp_bitcnt_t value)
{
if (value._value > byte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Byte data type.", value));
return (byte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to an <see cref="SByte"/> value.
/// </summary>
/// <param name="value">An <see cref="SByte"/> value.</param>
/// <returns>An <see cref="Byte"/> value.</returns>
public static explicit operator sbyte(mp_bitcnt_t value)
{
if (value._value > sbyte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the SByte data type.", value));
return (sbyte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to a <see cref="UInt16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>A <see cref="UInt16"/> value.</returns>
public static explicit operator ushort(mp_bitcnt_t value)
{
if (value._value > ushort.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt16 data type.", value));
return (ushort)value._value;
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to an <see cref="Int16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>An <see cref="Int16"/> value.</returns>
public static explicit operator short(mp_bitcnt_t value)
{
if (value._value > short.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int16 data type.", value));
return (short)value._value;
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to a <see cref="UInt32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>A <see cref="UInt32"/> value.</returns>
public static implicit operator uint(mp_bitcnt_t value)
{
return value._value;
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to an <see cref="Int32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>An <see cref="Int32"/> value.</returns>
public static explicit operator int(mp_bitcnt_t value)
{
//if (value._value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int32 data type.", value));
return unchecked((int)value._value);
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to a <see cref="UInt64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>A <see cref="UInt64"/> value.</returns>
public static implicit operator ulong(mp_bitcnt_t value)
{
return value._value;
}
/// <summary>
/// Converts an <see cref="mp_bitcnt_t"/> value to an <see cref="Int64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_bitcnt_t"/> value.</param>
/// <returns>An <see cref="Int64"/> value.</returns>
public static implicit operator long(mp_bitcnt_t value)
{
return value._value;
}
/// <summary>
/// Gets the string representation of the <see cref="mp_bitcnt_t"/>.
/// </summary>
/// <returns>The string representation of the <see cref="mp_bitcnt_t"/>.</returns>
public override string ToString()
{
return _value.ToString(System.Globalization.CultureInfo.InvariantCulture);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="mp_bitcnt_t"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is mp_bitcnt_t))
return false;
return Equals((mp_bitcnt_t)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="mp_bitcnt_t"/> value.
/// </summary>
/// <param name="other">A <see cref="mp_bitcnt_t"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(mp_bitcnt_t other)
{
return _value == other._value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="mp_bitcnt_t"/> value.</param>
/// <param name="value2">A <see cref="mp_bitcnt_t"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(mp_bitcnt_t value1, mp_bitcnt_t value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="mp_bitcnt_t"/> value.</param>
/// <param name="value2">A <see cref="mp_bitcnt_t"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(mp_bitcnt_t value1, mp_bitcnt_t value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,268 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents the exponent of a floating-point number.
/// </summary>
/// <remarks>
/// <para>
/// The floating point functions accept and return exponents in the C type <see cref="mp_exp_t"/>.
/// Currently this is usually a long, but on some systems its an int for efficiency.
/// </para>
/// <para>
/// In .Net, this is a 32-bit integer.
/// </para>
/// </remarks>
public struct mp_exp_t
{
internal int _value;
/// <summary>
/// Creates a new <see cref="mp_exp_t"/>, and sets its <paramref name="value"/>.
/// </summary>
/// <param name="value">The value of the new <see cref="mp_exp_t"/>.</param>
public mp_exp_t(int value)
{
_value = value;
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(byte value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(sbyte value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="UInt16"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt16"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(ushort value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts an <see cref="Int16"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int16"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(short value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="UInt32"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt32"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static explicit operator mp_exp_t(uint value)
{
if (value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_exp_t data type.", value));
return new mp_exp_t((int)value);
}
/// <summary>
/// Converts an <see cref="Int32"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int32"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(int value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="UInt64"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt64"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static explicit operator mp_exp_t(ulong value)
{
if (value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_exp_t data type.", value));
return new mp_exp_t((int)value);
}
/// <summary>
/// Converts an <see cref="Int64"/> value to a <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int64"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static explicit operator mp_exp_t(long value)
{
if (value < uint.MinValue || value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_exp_t data type.", value));
return new mp_exp_t((int)value);
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="Byte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="Byte"/> value.</returns>
public static explicit operator byte(mp_exp_t value)
{
if (value._value > byte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Byte data type.", value));
return (byte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="SByte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="SByte"/> value.</returns>
public static explicit operator sbyte(mp_exp_t value)
{
if (value._value < sbyte.MinValue || value._value > sbyte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the SByte data type.", value));
return (sbyte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="UInt16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="UInt16"/> value.</returns>
public static explicit operator ushort(mp_exp_t value)
{
if (value._value > ushort.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt16 data type.", value));
return (ushort)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="Int16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="Int16"/> value.</returns>
public static explicit operator short(mp_exp_t value)
{
if (value._value < short.MinValue || value._value > short.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int16 data type.", value));
return (short)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="UInt32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="UInt32"/> value.</returns>
public static explicit operator uint(mp_exp_t value)
{
if (value._value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt32 data type.", value));
return (uint)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="Int32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="Int32"/> value.</returns>
public static implicit operator int(mp_exp_t value)
{
return value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="UInt64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="UInt64"/> value.</returns>
public static explicit operator ulong(mp_exp_t value)
{
if (value._value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt64 data type.", value));
return (ulong)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="Int64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="Int64"/> value.</returns>
public static implicit operator long(mp_exp_t value)
{
return value._value;
}
/// <summary>
/// Gets the string representation of the <see cref="mp_exp_t"/>.
/// </summary>
/// <returns>The string representation of the <see cref="mp_exp_t"/>.</returns>
public override string ToString()
{
return _value.ToString(System.Globalization.CultureInfo.InvariantCulture);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="mp_exp_t"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is mp_exp_t))
return false;
return Equals((mp_exp_t)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="other">A <see cref="mp_exp_t"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(mp_exp_t other)
{
return _value == other._value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="mp_exp_t"/> value.</param>
/// <param name="value2">A <see cref="mp_exp_t"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(mp_exp_t value1, mp_exp_t value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="mp_exp_t"/> value.</param>
/// <param name="value2">A <see cref="mp_exp_t"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(mp_exp_t value1, mp_exp_t value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,268 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents the exponent of a floating-point number.
/// </summary>
/// <remarks>
/// <para>
/// The floating point functions accept and return exponents in the C type <see cref="mp_exp_t"/>.
/// Currently this is usually a long, but on some systems its an int for efficiency.
/// </para>
/// <para>
/// In .Net, this is a 32-bit integer.
/// </para>
/// </remarks>
public struct mp_exp_t
{
internal int _value;
/// <summary>
/// Creates a new <see cref="mp_exp_t"/>, and sets its <paramref name="value"/>.
/// </summary>
/// <param name="value">The value of the new <see cref="mp_exp_t"/>.</param>
public mp_exp_t(int value)
{
_value = value;
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(byte value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(sbyte value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="UInt16"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt16"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(ushort value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts an <see cref="Int16"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int16"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(short value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="UInt32"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt32"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static explicit operator mp_exp_t(uint value)
{
if (value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_exp_t data type.", value));
return new mp_exp_t((int)value);
}
/// <summary>
/// Converts an <see cref="Int32"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int32"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static implicit operator mp_exp_t(int value)
{
return new mp_exp_t(value);
}
/// <summary>
/// Converts a <see cref="UInt64"/> value to an <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt64"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static explicit operator mp_exp_t(ulong value)
{
if (value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_exp_t data type.", value));
return new mp_exp_t((int)value);
}
/// <summary>
/// Converts an <see cref="Int64"/> value to a <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int64"/> value.</param>
/// <returns>An <see cref="mp_exp_t"/> value.</returns>
public static explicit operator mp_exp_t(long value)
{
if (value < uint.MinValue || value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_exp_t data type.", value));
return new mp_exp_t((int)value);
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="Byte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="Byte"/> value.</returns>
public static explicit operator byte(mp_exp_t value)
{
if (value._value > byte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Byte data type.", value));
return (byte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="SByte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="SByte"/> value.</returns>
public static explicit operator sbyte(mp_exp_t value)
{
if (value._value < sbyte.MinValue || value._value > sbyte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the SByte data type.", value));
return (sbyte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="UInt16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="UInt16"/> value.</returns>
public static explicit operator ushort(mp_exp_t value)
{
if (value._value > ushort.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt16 data type.", value));
return (ushort)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="Int16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="Int16"/> value.</returns>
public static explicit operator short(mp_exp_t value)
{
if (value._value < short.MinValue || value._value > short.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int16 data type.", value));
return (short)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="UInt32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="UInt32"/> value.</returns>
public static explicit operator uint(mp_exp_t value)
{
if (value._value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt32 data type.", value));
return (uint)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="Int32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="Int32"/> value.</returns>
public static implicit operator int(mp_exp_t value)
{
return value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to a <see cref="UInt64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>A <see cref="UInt64"/> value.</returns>
public static explicit operator ulong(mp_exp_t value)
{
if (value._value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt64 data type.", value));
return (ulong)value._value;
}
/// <summary>
/// Converts an <see cref="mp_exp_t"/> value to an <see cref="Int64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_exp_t"/> value.</param>
/// <returns>An <see cref="Int64"/> value.</returns>
public static implicit operator long(mp_exp_t value)
{
return value._value;
}
/// <summary>
/// Gets the string representation of the <see cref="mp_exp_t"/>.
/// </summary>
/// <returns>The string representation of the <see cref="mp_exp_t"/>.</returns>
public override string ToString()
{
return _value.ToString(System.Globalization.CultureInfo.InvariantCulture);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="mp_exp_t"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is mp_exp_t))
return false;
return Equals((mp_exp_t)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="mp_exp_t"/> value.
/// </summary>
/// <param name="other">A <see cref="mp_exp_t"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(mp_exp_t other)
{
return _value == other._value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="mp_exp_t"/> value.</param>
/// <param name="value2">A <see cref="mp_exp_t"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(mp_exp_t value1, mp_exp_t value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="mp_exp_t"/> value.</param>
/// <param name="value2">A <see cref="mp_exp_t"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(mp_exp_t value1, mp_exp_t value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,271 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a part of a multiple precision number.
/// </summary>
/// <remarks>
/// <para>
/// A limb means the part of a multi-precision number that fits in a single machine word.
/// (We chose this word because a limb of the human body is analogous to a digit, only larger,
/// and containing several digits.) Normally a limb is 32 or 64 bits.
/// </para>
/// </remarks>
/// <seealso cref="mpf_t"/>
/// <seealso cref="mpq_t"/>
/// <seealso cref="mpz_t"/>
public struct mp_limb_t
{
internal ulong _value;
/// <summary>
/// Creates a new <see cref="mp_limb_t"/>, and sets its <paramref name="value"/>.
/// </summary>
/// <param name="value">The value of the new <see cref="mp_limb_t"/>.</param>
public mp_limb_t(ulong value)
{
_value = value;
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static implicit operator mp_limb_t(byte value)
{
return new mp_limb_t(value);
}
/// <summary>
/// Converts a <see cref="SByte"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">A <see cref="SByte"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static explicit operator mp_limb_t(sbyte value)
{
if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_limb_t data type.", value));
return new mp_limb_t((ulong)value);
}
/// <summary>
/// Converts a <see cref="UInt16"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt16"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static implicit operator mp_limb_t(ushort value)
{
return new mp_limb_t(value);
}
/// <summary>
/// Converts an <see cref="Int16"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int16"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static explicit operator mp_limb_t(short value)
{
if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_limb_t data type.", value));
return new mp_limb_t((ulong)value);
}
/// <summary>
/// Converts a <see cref="UInt32"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt32"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static implicit operator mp_limb_t(uint value)
{
return new mp_limb_t(value);
}
/// <summary>
/// Converts an <see cref="Int32"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int32"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static explicit operator mp_limb_t(int value)
{
//if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_limb_t data type.", value));
return new mp_limb_t(unchecked((ulong)(uint)value));
}
/// <summary>
/// Converts a <see cref="UInt64"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt64"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static implicit operator mp_limb_t(ulong value)
{
return new mp_limb_t(value);
}
/// <summary>
/// Converts an <see cref="Int64"/> value to an <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int64"/> value.</param>
/// <returns>An <see cref="mp_limb_t"/> value.</returns>
public static explicit operator mp_limb_t(long value)
{
//if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_limb_t data type.", value));
return new mp_limb_t(unchecked((ulong)value));
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to a <see cref="Byte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>A <see cref="Byte"/> value.</returns>
public static explicit operator byte(mp_limb_t value)
{
if (value._value > byte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Byte data type.", value));
return (byte)value._value;
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to an <see cref="SByte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>An <see cref="SByte"/> value.</returns>
public static explicit operator sbyte(mp_limb_t value)
{
if (value._value > (ulong)sbyte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the SByte data type.", value));
return (sbyte)value._value;
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to a <see cref="UInt16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>A <see cref="UInt16"/> value.</returns>
public static explicit operator ushort(mp_limb_t value)
{
if (value._value > ushort.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt16 data type.", value));
return (ushort)value._value;
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to an <see cref="Int16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>An <see cref="Int16"/> value.</returns>
public static explicit operator short(mp_limb_t value)
{
if (value._value > (ulong)short.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int16 data type.", value));
return (short)value._value;
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to a <see cref="UInt32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>A <see cref="UInt32"/> value.</returns>
public static explicit operator uint(mp_limb_t value)
{
if (value._value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt32 data type.", value));
return (uint)value._value;
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to an <see cref="Int32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>An <see cref="Int32"/> value.</returns>
public static explicit operator int(mp_limb_t value)
{
//if (value._value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int32 data type.", value));
return unchecked((int)value._value);
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to a <see cref="UInt64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>A <see cref="UInt64"/> value.</returns>
public static implicit operator ulong(mp_limb_t value)
{
return value._value;
}
/// <summary>
/// Converts a <see cref="mp_limb_t"/> value to an <see cref="Int64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_limb_t"/> value.</param>
/// <returns>An <see cref="Int64"/> value.</returns>
public static explicit operator long(mp_limb_t value)
{
//if (value._value > long.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int64 data type.", value));
return unchecked((long)value._value);
}
/// <summary>
/// Gets the string representation of the <see cref="mp_limb_t"/>.
/// </summary>
/// <returns>The string representation of the <see cref="mp_limb_t"/>.</returns>
public override string ToString()
{
return "0x" + _value.ToString(gmp_lib.mp_bytes_per_limb == 4 ? "x8" : "x16", System.Globalization.CultureInfo.InvariantCulture);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="mp_limb_t"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is mp_limb_t))
return false;
return Equals((mp_limb_t)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="mp_limb_t"/> value.
/// </summary>
/// <param name="other">A <see cref="mp_limb_t"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(mp_limb_t other)
{
return _value == other._value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="mp_limb_t"/> value.</param>
/// <param name="value2">A <see cref="mp_limb_t"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(mp_limb_t value1, mp_limb_t value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="mp_limb_t"/> value.</param>
/// <param name="value2">A <see cref="mp_limb_t"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(mp_limb_t value1, mp_limb_t value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,259 @@

using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a pointer to an array of <see cref="mp_limb_t"/> values in unmanaged memory,
/// </summary>
/// <remarks>
/// <para>
/// </para>
/// </remarks>
public class mp_ptr : IEnumerable<mp_limb_t>
{
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal mp_base mp;
/// <summary>
/// Creates a new array of <paramref name="size"/> limbs in unmanaged memory.
/// </summary>
/// <param name="size">The number of limbs.</param>
/// <remarks>
/// <para>
/// When done with the array, you must release the unmanaged memory by calling <see cref="gmp_lib.free(mp_ptr[])"/>.
/// </para>
/// </remarks>
public mp_ptr(mp_size_t size) : this(new uint[size * gmp_lib.mp_uint_per_limb])
{
}
/// <summary>
/// Creates a new array of limbs initialized with <paramref name="values"/> in unmanaged memory.
/// </summary>
/// <param name="values">The values of the limbs.</param>
/// <remarks>
/// <para>
/// If there is not enough bytes to fill out the most significant limb, it is padded with zeroes.
/// </para>
/// <para>
/// When done with the array, you must release the unmanaged memory by calling <see cref="gmp_lib.free(mp_ptr[])"/>.
/// </para>
/// </remarks>
public mp_ptr(byte[] values)
{
if (values == null) throw new ArgumentNullException("values");
mp = new mp_base();
if (values.GetLength(0) == 0)
{
mp._size = 0;
mp._pointer = IntPtr.Zero;
}
else
{
mp._size = (values.Length + IntPtr.Size - 1) / IntPtr.Size;
mp._pointer = gmp_lib.allocate((size_t)(mp._size * IntPtr.Size)).ToIntPtr();
Marshal.Copy(new Int32[] { 0, 0 }, 0, (IntPtr)(mp._pointer.ToInt64() + IntPtr.Size * (mp._size - 1)), IntPtr.Size >> 2);
Marshal.Copy(values, 0, mp._pointer, values.Length);
}
}
/// <summary>
/// Creates a new array of limbs initialized with <paramref name="values"/> in unmanaged memory.
/// </summary>
/// <param name="values">The values of the limbs.</param>
/// <remarks>
/// <para>
/// If there is not enough 16-bit words to fill out the most significant limb, it is padded with zeroes.
/// </para>
/// <para>
/// When done with the array, you must release the unmanaged memory by calling <see cref="gmp_lib.free(mp_ptr[])"/>.
/// </para>
/// </remarks>
public mp_ptr(ushort[] values)
{
if (values == null) throw new ArgumentNullException("values");
mp = new mp_base();
mp._size = (2 * values.Length + IntPtr.Size - 1) / IntPtr.Size;
mp._pointer = gmp_lib.allocate((size_t)(mp._size * IntPtr.Size)).ToIntPtr();
Marshal.Copy(new Int32[] { 0, 0 }, 0, (IntPtr)(mp._pointer.ToInt64() + IntPtr.Size * (mp._size - 1)), IntPtr.Size >> 2);
Marshal.Copy((short[])(object)values, 0, mp._pointer, values.Length);
}
/// <summary>
/// Creates a new array of limbs initialized with <paramref name="values"/> in unmanaged memory.
/// </summary>
/// <param name="values">The values of the limbs.</param>
/// <remarks>
/// <para>
/// If there is not enough 32-bit words to fill out the most significant limb, it is padded with zeroes.
/// </para>
/// <para>
/// When done with the array, you must release the unmanaged memory by calling <see cref="gmp_lib.free(mp_ptr[])"/>.
/// </para>
/// </remarks>
public mp_ptr(uint[] values)
{
if (values == null) throw new ArgumentNullException("values");
mp = new mp_base();
mp._size = (4 * values.Length + IntPtr.Size - 1) / IntPtr.Size;
mp._pointer = gmp_lib.allocate((size_t)(mp._size * IntPtr.Size)).ToIntPtr();
Marshal.Copy(new Int32[] { 0, 0 }, 0, (IntPtr)(mp._pointer.ToInt64() + IntPtr.Size * (mp._size - 1)), IntPtr.Size >> 2);
Marshal.Copy((int[])(object)values, 0, mp._pointer, values.Length);
}
/// <summary>
/// Creates a new array of limbs initialized with <paramref name="values"/> in unmanaged memory.
/// </summary>
/// <param name="values">The values of the limbs.</param>
/// <remarks>
/// <para>
/// If limbs size is 32 bits, the 64-bit values are split into 32-bit limbs.
/// </para>
/// <para>
/// When done with the array, you must release the unmanaged memory by calling <see cref="gmp_lib.free(mp_ptr[])"/>.
/// </para>
/// </remarks>
public mp_ptr(ulong[] values)
{
if (values == null) throw new ArgumentNullException("values");
mp = new mp_base();
mp._size = (8 * values.Length + IntPtr.Size - 1) / IntPtr.Size;
mp._pointer = gmp_lib.allocate((size_t)(mp._size * IntPtr.Size)).ToIntPtr();
Marshal.Copy(new Int32[] { 0, 0 }, 0, (IntPtr)(mp._pointer.ToInt64() + IntPtr.Size * (mp._size - 1)), IntPtr.Size >> 2);
Marshal.Copy((long[])(object)values, 0, mp._pointer, values.Length);
}
internal mp_ptr(mp_base mp)
{
this.mp = mp;
}
/// <summary>
/// The number of limbs.
/// </summary>
/// <remarks></remarks>
public mp_size_t Size
{
get
{
return mp._mp_size;
}
}
/// <summary>
/// Gets or sets the value of the limb at <paramref name="index"/>.
/// </summary>
/// <param name="index">The zero-based index of the limb to get or set.</param>
/// <returns></returns>
public mp_limb_t this[int index]
{
get
{
if (index < 0) throw new ArgumentOutOfRangeException("index", "Index cannot be negative.");
if (IntPtr.Size == 4)
{
const int max_index = int.MaxValue / sizeof(int);
if (index > max_index) throw new ArgumentOutOfRangeException("index", "Index must be less than or equal to " + max_index.ToString(System.Globalization.CultureInfo.InvariantCulture) + ".");
return new mp_limb_t((uint)Marshal.ReadInt32(mp._mp_d_intptr, index * sizeof(int)));
}
else
{
const int max_index = int.MaxValue / sizeof(long);
if (index > max_index) throw new ArgumentOutOfRangeException("index", "Index must be less than or equal to " + max_index.ToString(System.Globalization.CultureInfo.InvariantCulture) + ".");
return new mp_limb_t((ulong)Marshal.ReadInt64(mp._mp_d_intptr, index * sizeof(long)));
}
}
set
{
if (index < 0) throw new ArgumentOutOfRangeException("index", "Index cannot be negative.");
if (IntPtr.Size == 4)
{
const int max_index = int.MaxValue / sizeof(int);
if (index > max_index) throw new ArgumentOutOfRangeException("index", "Index must be less than or equal to " + max_index.ToString(System.Globalization.CultureInfo.InvariantCulture) + ".");
Marshal.WriteInt32(mp._mp_d_intptr, index * sizeof(int), (int)(value._value));
}
else
{
const int max_index = int.MaxValue / sizeof(long);
if (index > max_index) throw new ArgumentOutOfRangeException("index", "Index must be less than or equal to " + max_index.ToString(System.Globalization.CultureInfo.InvariantCulture) + ".");
Marshal.WriteInt64(mp._mp_d_intptr, index * sizeof(long), (long)(value._value));
}
}
}
internal IntPtr ToIntPtr()
{
return mp._mp_d_intptr;
}
/// <summary>
/// Returns an enumerator that iterates through the array of limbs.
/// </summary>
/// <returns>An enumerator that iterates through the array of limbs.</returns>
public IEnumerator<mp_limb_t> GetEnumerator()
{
return new _limb_enumerator(this);
}
/// <summary>
/// Returns an enumerator that iterates through the array of limbs.
/// </summary>
/// <returns>An enumerator that iterates through the array of limbs.</returns>
IEnumerator IEnumerable.GetEnumerator()
{
return new _limb_enumerator(this);
}
private class _limb_enumerator : IEnumerator<mp_limb_t>
{
int index;
mp_ptr limbs;
public _limb_enumerator(mp_ptr limbs)
{
this.limbs = limbs;
Reset();
}
public mp_limb_t Current
{
get
{
return this.limbs[index];
}
}
object IEnumerator.Current
{
get
{
return (object)Current;
}
}
public void Dispose()
{
}
public bool MoveNext()
{
index++;
return index < System.Math.Abs(limbs.Size);
}
public void Reset()
{
index = -1;
}
}
}
}

View File

@ -0,0 +1,273 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a count of limbs.
/// </summary>
/// <remarks>
/// <para>
/// Counts of limbs of a multi-precision number represented in the C type <see cref="mp_size_t"/>.
/// Currently this is normally a long, but on some systems its an int for efficiency,
/// and on some systems it will be long long in the future.
/// </para>
/// <para>
/// In .Net, this is a 32-bit integer.
/// </para>
/// </remarks>
/// <seealso cref="mp_limb_t"/>
/// <seealso cref="mpf_t"/>
/// <seealso cref="mpq_t"/>
/// <seealso cref="mpz_t"/>
public struct mp_size_t
{
internal int _value;
/// <summary>
/// Creates a new <see cref="mp_size_t"/>, and sets its <paramref name="value"/>.
/// </summary>
/// <param name="value">The value of the new <see cref="mp_size_t"/>.</param>
public mp_size_t(int value)
{
_value = value;
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static implicit operator mp_size_t(byte value)
{
return new mp_size_t(value);
}
/// <summary>
/// Converts a <see cref="Byte"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static implicit operator mp_size_t(sbyte value)
{
return new mp_size_t(value);
}
/// <summary>
/// Converts a <see cref="UInt16"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt16"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static implicit operator mp_size_t(ushort value)
{
return new mp_size_t(value);
}
/// <summary>
/// Converts an <see cref="Int16"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int16"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static implicit operator mp_size_t(short value)
{
return new mp_size_t(value);
}
/// <summary>
/// Converts a <see cref="UInt32"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt32"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static explicit operator mp_size_t(uint value)
{
if (value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_size_t data type.", value));
return new mp_size_t((int)value);
}
/// <summary>
/// Converts an <see cref="Int32"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int32"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static implicit operator mp_size_t(int value)
{
return new mp_size_t(value);
}
/// <summary>
/// Converts a <see cref="UInt64"/> value to an <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt64"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static explicit operator mp_size_t(ulong value)
{
if (value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_size_t data type.", value));
return new mp_size_t((int)value);
}
/// <summary>
/// Converts an <see cref="Int64"/> value to a <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int64"/> value.</param>
/// <returns>An <see cref="mp_size_t"/> value.</returns>
public static explicit operator mp_size_t(long value)
{
if (value < uint.MinValue || value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the mp_size_t data type.", value));
return new mp_size_t((int)value);
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to a <see cref="Byte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>A <see cref="Byte"/> value.</returns>
public static explicit operator byte(mp_size_t value)
{
if (value._value > byte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Byte data type.", value));
return (byte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to an <see cref="SByte"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>An <see cref="SByte"/> value.</returns>
public static explicit operator sbyte(mp_size_t value)
{
if (value._value < sbyte.MinValue || value._value > sbyte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the SByte data type.", value));
return (sbyte)value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to a <see cref="UInt16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>A <see cref="UInt16"/> value.</returns>
public static explicit operator ushort(mp_size_t value)
{
if (value._value > ushort.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt16 data type.", value));
return (ushort)value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to an <see cref="Int16"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>An <see cref="Int16"/> value.</returns>
public static explicit operator short(mp_size_t value)
{
if (value._value < short.MinValue || value._value > short.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int16 data type.", value));
return (short)value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to a <see cref="UInt32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>A <see cref="UInt32"/> value.</returns>
public static explicit operator uint(mp_size_t value)
{
if (value._value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt32 data type.", value));
return (uint)value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to an <see cref="Int32"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>An <see cref="Int32"/> value.</returns>
public static implicit operator int(mp_size_t value)
{
return value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to a <see cref="UInt64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>A <see cref="UInt64"/> value.</returns>
public static explicit operator ulong(mp_size_t value)
{
if (value._value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt64 data type.", value));
return (ulong)value._value;
}
/// <summary>
/// Converts an <see cref="mp_size_t"/> value to an <see cref="Int64"/> value.
/// </summary>
/// <param name="value">An <see cref="mp_size_t"/> value.</param>
/// <returns>An <see cref="Int64"/> value.</returns>
public static implicit operator long(mp_size_t value)
{
return value._value;
}
/// <summary>
/// Gets the string representation of the <see cref="mp_size_t"/>.
/// </summary>
/// <returns>The string representation of the <see cref="mp_size_t"/>.</returns>
public override string ToString()
{
return _value.ToString(System.Globalization.CultureInfo.InvariantCulture);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="mp_size_t"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is mp_size_t))
return false;
return Equals((mp_size_t)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="mp_size_t"/> value.
/// </summary>
/// <param name="other">A <see cref="mp_size_t"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(mp_size_t other)
{
return _value == other._value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="mp_size_t"/> value.</param>
/// <param name="value2">A <see cref="mp_size_t"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(mp_size_t value1, mp_size_t value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="mp_size_t"/> value.</param>
/// <param name="value2">A <see cref="mp_size_t"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(mp_size_t value1, mp_size_t value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,169 @@

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a multiple precision floating-point number.
/// </summary>
/// <remarks>
/// <para>
/// The floating point functions accept and return exponents in the C type <see cref="mp_exp_t"/>.
/// Currently this is usually a long, but on some systems its an int for efficiency.
/// </para>
/// <para>
/// In .NET, this is a 32-bit integer.
/// </para>
/// </remarks>
/// <seealso cref="mp_exp_t"/>
/// <seealso cref="mp_limb_t"/>
/// <seealso cref="mpq_t"/>
/// <seealso cref="mpz_t"/>
public class mpf_t : mp_base
{
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal bool _initialized = false;
/// <summary>
/// Creates a new multiple precision floating-point number.
/// </summary>
public mpf_t()
{
size_t length = /*sizeof(int) + sizeof(int) + sizeof(int)*/ 12U + (size_t)IntPtr.Size;
_pointer = gmp_lib.allocate(length).ToIntPtr();
gmp_lib.ZeroMemory(_pointer, (int)length);
}
/// <summary>
/// The number of limbs currently in use, or the negative of that when representing a negative value.
/// </summary>
/// <remarks>
/// <para>
/// Zero is represented by <see cref="_mp_size"/> and <see cref="_mp_exp"/> both set to zero,
/// and in that case the <see cref="mp_base._mp_d"/> data is unused.
/// (In the future <see cref="_mp_exp"/> might be undefined when representing zero.)
/// </para>
/// </remarks>
public override mp_size_t _mp_size
{
get
{
return Marshal.ReadInt32(_pointer, /*sizeof(int)*/ 4);
}
}
/// <summary>
/// The precision of the mantissa, in limbs.
/// </summary>
/// <remarks>
/// <para>
/// In any calculation the aim is to produce <see cref="_mp_prec"/> limbs of result (the most significant being non-zero).
/// </para>
/// </remarks>
public int _mp_prec
{
get
{
return Marshal.ReadInt32(_pointer, 0);
}
}
/// <summary>
/// The exponent, in limbs, determining the location of the implied radix point.
/// </summary>
/// <remarks>
/// <para>
/// Zero means the radix point is just above the most significant limb.
/// Positive values mean a radix point offset towards the lower limbs and hence a value &#8805; 1, as for example in the diagram above.
/// Negative exponents mean a radix point further above the highest limb.
/// </para>
/// <para>
/// Naturally the exponent can be any value, it doesnt have to fall within the limbs as the diagram shows,
/// it can be a long way above or a long way below.
/// Limbs other than those included in the {<see cref="mp_base._mp_d"/>, <see cref="_mp_size"/>} data are treated as zero.
/// </para>
/// </remarks>
public int _mp_exp
{
get
{
return Marshal.ReadInt32(_pointer, /*sizeof(int) + sizeof(int)*/ 8);
}
}
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal override IntPtr _mp_d_intptr
{
get
{
return Marshal.ReadIntPtr(_pointer, /*sizeof(int) + sizeof(int) + sizeof(int)*/ 12);
}
set
{
Marshal.WriteIntPtr(_pointer, /*sizeof(int) + sizeof(int) + sizeof(int)*/ 12, value);
}
}
/// <summary>
/// Gets the unmanaged memory pointer of the multiple precision floating-point number.
/// </summary>
/// <returns>The unmanaged memory pointer of the multiple precision floating-point number.</returns>
public IntPtr ToIntPtr()
{
return _pointer;
}
/// <summary>
/// Converts a <see cref="string"/> value to an <see cref="mpf_t"/> value.
/// </summary>
/// <param name="value">A <see cref="string"/> value.</param>
/// <returns>An <see cref="mpf_t"/> value.</returns>
/// <remarks>
/// <para>
/// Base is assumed to be 10 unless the first character of the string is <c>B</c>
/// followed by the base <c>2</c> to <c>62</c> or <c>-62</c> to <c>-2</c> followed
/// by a space and then the floating-point number.
/// Negative values are used to specify that the exponent is in decimal.
/// </para>
/// </remarks>
public static implicit operator mpf_t(string value)
{
int @base = 10;
mpf_t x = new mpf_t();
gmp_lib.mpf_init(x);
if (value != null && value.Substring(0, 1).ToUpperInvariant() == "B")
{
int pos = value.IndexOf(' ', 1);
if (pos != -1 && int.TryParse(value.Substring(1, pos - 1), out @base) == true)
value = value.Substring(pos + 1);
}
char_ptr s = new char_ptr(value);
gmp_lib.mpf_set_str(x, s, @base);
gmp_lib.free(s);
return x;
}
/// <summary>
/// Return the string representation of the float.
/// </summary>
/// <returns>The string representation of the float.</returns>
public override string ToString()
{
if (!_initialized) return null;
ptr<mp_exp_t> exp = new ptr<mp_exp_t>(0);
char_ptr s_ptr = gmp_lib.mpf_get_str(char_ptr.Zero, exp, 10, 0, this);
string s = s_ptr.ToString();
gmp_lib.free(s_ptr);
if (s.StartsWith("-", StringComparison.Ordinal))
return "-0." + s.Substring(1) + "e" + exp.Value._value.ToString(System.Globalization.CultureInfo.InvariantCulture);
else
return "0." + s + "e" + exp.Value._value.ToString(System.Globalization.CultureInfo.InvariantCulture);
}
}
}

View File

@ -0,0 +1,102 @@

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a multiple precision rational number.
/// </summary>
/// <remarks></remarks>
/// <seealso cref="mpf_t"/>
/// <seealso cref="mpz_t"/>
public class mpq_t
{
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
IntPtr _pointer;
/// <summary>
/// Creates a new multiple precision rational.
/// </summary>
public mpq_t()
{
size_t length = /*2 * (sizeof(int) + sizeof(int))*/ 16 + 2 * (size_t)IntPtr.Size;
_pointer = gmp_lib.allocate(length).ToIntPtr();
gmp_lib.ZeroMemory(_pointer, (int)length);
}
/// <summary>
/// Get the numerator integer of the rational.
/// </summary>
/// <returns>The numerator integer of the rational.</returns>
public mpz_t _mp_num
{
get
{
return new mpz_t(_pointer);
}
}
/// <summary>
/// Get the denominator integer of the rational.
/// </summary>
/// <returns>The denominator integer of the rational.</returns>
public mpz_t _mp_den
{
get
{
return new mpz_t((IntPtr)(_pointer.ToInt64() /*+ sizeof(int) + sizeof(int)*/ + 8 + IntPtr.Size));
}
}
/// <summary>
/// Gets the unmanaged memory pointer of the multiple precision rational.
/// </summary>
/// <returns>The unmanaged memory pointer of the multiple precision rational.</returns>
public IntPtr ToIntPtr()
{
return _pointer;
}
/// <summary>
/// Converts a <see cref="string"/> value to an <see cref="mpq_t"/> value.
/// </summary>
/// <param name="value">A <see cref="string"/> value.</param>
/// <returns>An <see cref="mpq_t"/> value.</returns>
/// <remarks>
/// <para>
/// The leading characters are used: <c>0x</c> and <c>0X</c> for hexadecimal,
/// <c>0b</c> and <c>0B</c> for binary, <c>0</c> for octal, or decimal otherwise.
/// Note that this is done separately for the numerator and denominator, so for
/// instance <c>0xEF/100</c> is <c>239/100</c>, whereas <c>0xEF/0x100</c> is
/// <c>239/256</c>.
/// </para>
/// </remarks>
public static implicit operator mpq_t(string value)
{
mpq_t x = new mpq_t();
gmp_lib.mpq_init(x);
char_ptr s = new char_ptr(value);
gmp_lib.mpq_set_str(x, s, 0);
gmp_lib.free(s);
return x;
}
/// <summary>
/// Return the string representation of the rational.
/// </summary>
/// <returns>The string representation of the rational.</returns>
public override string ToString()
{
char_ptr s_ptr = gmp_lib.mpq_get_str(char_ptr.Zero, 10, this);
string s = s_ptr.ToString();
gmp_lib.free(s_ptr);
return s;
}
}
}

View File

@ -0,0 +1,128 @@

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a multiple precision integer.
/// </summary>
/// <remarks></remarks>
/// <seealso cref="mp_limb_t"/>
/// <seealso cref="mpf_t"/>
/// <seealso cref="mpq_t"/>
public class mpz_t : mp_base
{
/// <summary>
/// Creates a new multiple precision integer.
/// </summary>
public mpz_t()
{
size_t length = /*sizeof(int) + sizeof(int)*/ 8 + (size_t)IntPtr.Size;
_pointer = gmp_lib.allocate(length).ToIntPtr();
gmp_lib.ZeroMemory(_pointer, (int)length);
}
internal mpz_t(IntPtr pointer)
{
_pointer = pointer;
}
/// <summary>
/// The number of limbs currently allocated at <see cref="mp_base._mp_d"/>.
/// </summary>
/// <remarks>
/// <para>
/// <see cref="mpz_t._mp_alloc"/> is the number of limbs currently allocated at <see cref="mp_base._mp_d"/>,
/// and naturally <see cref="mpz_t._mp_alloc"/> >= ABS(<see cref="mpz_t._mp_size"/>).
/// When an mpz routine is about to (or might be about to) increase <see cref="mpz_t._mp_size"/>, it checks
/// <see cref="mpz_t._mp_alloc"/> to see whether theres enough space, and reallocates if not.
/// </para>
/// </remarks>
public int _mp_alloc
{
get
{
return Marshal.ReadInt32(_pointer, 0);
}
}
/// <summary>
/// The number of limbs, or the negative of that when representing a negative integer.
/// </summary>
/// <remarks>
/// <para>
/// The number of limbs, or the negative of that when representing a negative integer.
/// Zero is represented by <see cref="mp_base._mp_size"/> set to zero, in which case
/// the <see cref="mp_base._mp_d"/> data is unused.
/// </para>
/// </remarks>
public override mp_size_t _mp_size
{
get
{
return Marshal.ReadInt32(_pointer, sizeof(int));
}
}
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal override IntPtr _mp_d_intptr
{
get
{
return Marshal.ReadIntPtr(_pointer, sizeof(int) + sizeof(int));
}
set
{
Marshal.WriteIntPtr(_pointer, sizeof(int) + sizeof(int), value);
}
}
/// <summary>
/// Gets the unmanaged memory pointer of the multiple precision integer.
/// </summary>
/// <returns>The unmanaged memory pointer of the multiple precision integer.</returns>
public IntPtr ToIntPtr()
{
return _pointer;
}
/// <summary>
/// Converts a <see cref="string"/> value to an <see cref="mpz_t"/> value.
/// </summary>
/// <param name="value">A <see cref="string"/> value.</param>
/// <returns>An <see cref="mpz_t"/> value.</returns>
/// <remarks>
/// <para>
/// The leading characters are used: <c>0x</c> and <c>0X</c> for hexadecimal,
/// <c>0b</c> and <c>0B</c> for binary, <c>0</c> for octal, or decimal otherwise.
/// </para>
/// </remarks>
public static implicit operator mpz_t(string value)
{
mpz_t x = new mpz_t();
gmp_lib.mpz_init(x);
char_ptr s = new char_ptr(value);
gmp_lib.mpz_set_str(x, s, 0);
gmp_lib.free(s);
return x;
}
/// <summary>
/// Return the string representation of the integer.
/// </summary>
/// <returns>The string representation of the integer.</returns>
public override string ToString()
{
char_ptr s_ptr = gmp_lib.mpz_get_str(char_ptr.Zero, 10, this);
string s = s_ptr.ToString();
gmp_lib.free(s_ptr);
return s;
}
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EWSoftware.SHFB" version="2017.5.15.0" targetFramework="net40" />
<package id="EWSoftware.SHFB.NETFramework" version="4.7" targetFramework="net40" />
</packages>

View File

@ -0,0 +1,47 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a pointer to a value of type <typeparamref name="T"/>.
/// </summary>
/// <typeparam name="T">A value type.</typeparam>
/// <remarks>
/// <para>
/// Mimics the C address-of (&amp;) construct to pass the address of a value type variable
/// to a function of the GMP library.
/// </para>
/// <para>
/// Note that this is only for value types. Strings and arrays have their own "pointer"
/// types defined with names ending in <c>_ptr</c>.
/// </para>
/// </remarks>
public class ptr<T> where T : struct
{
/// <summary>
/// The value that is "pointed to".
/// </summary>
public T Value;
/// <summary>
/// Creates a new pointer with default value.
/// </summary>
public ptr()
{
}
/// <summary>
/// Creates a new pointer with <see cref="Value"/> set to <paramref name="value"/>.
/// </summary>
/// <param name="value">The initial value.</param>
public ptr(T value)
{
this.Value = value;
}
}
}

View File

@ -0,0 +1,17 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Resize a previously allocated block ptr of <paramref name="old_size"/> bytes to be <paramref name="new_size"/> bytes.
/// </summary>
/// <param name="ptr">Pointer to previously allocated block.</param>
/// <param name="old_size">Number of bytes of previously allocated block.</param>
/// <param name="new_size">New number of bytes of previously allocated block.</param>
/// <returns>A previously allocated block ptr of <paramref name="old_size"/> bytes to be <paramref name="new_size"/> bytes.</returns>
public delegate void_ptr reallocate_function(void_ptr ptr, size_t old_size, size_t new_size);
}

View File

@ -0,0 +1,266 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a count of characters or bytes.
/// </summary>
/// <remarks>
/// <para>
/// In .NET, this is an unsigned 64-bit integer.
/// </para>
/// </remarks>
public struct size_t
{
internal ulong _value;
/// <summary>
/// Creates a new <see cref="size_t"/>, and sets its <paramref name="value"/>.
/// </summary>
/// <param name="value">The value of the new <see cref="size_t"/>.</param>
public size_t(ulong value)
{
_value = value;
}
/// <summary>
/// Converts a <see cref="Byte"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="Byte"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static implicit operator size_t(byte value)
{
return new size_t(value);
}
/// <summary>
/// Converts a <see cref="SByte"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="SByte"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static explicit operator size_t(sbyte value)
{
if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the size_t data type.", value));
return new size_t((uint)value);
}
/// <summary>
/// Converts a <see cref="UInt16"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt16"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static implicit operator size_t(ushort value)
{
return new size_t(value);
}
/// <summary>
/// Converts an <see cref="Int16"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int16"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static explicit operator size_t(short value)
{
if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the size_t data type.", value));
return new size_t((uint)value);
}
/// <summary>
/// Converts a <see cref="UInt32"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt32"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static implicit operator size_t(uint value)
{
return new size_t(value);
}
/// <summary>
/// Converts an <see cref="Int32"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int32"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static explicit operator size_t(int value)
{
//if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the size_t data type.", value));
return new size_t(unchecked((ulong)(uint)value));
}
/// <summary>
/// Converts a <see cref="UInt64"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">A <see cref="UInt64"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static implicit operator size_t(ulong value)
{
return new size_t(value);
}
/// <summary>
/// Converts an <see cref="Int64"/> value to a <see cref="size_t"/> value.
/// </summary>
/// <param name="value">An <see cref="Int64"/> value.</param>
/// <returns>A <see cref="size_t"/> value.</returns>
public static explicit operator size_t(long value)
{
//if (value < 0) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the size_t data type.", value));
return new size_t(unchecked((ulong)value));
}
/// <summary>
/// Converts a <see cref="size_t"/> value to a <see cref="Byte"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>A <see cref="Byte"/> value.</returns>
public static explicit operator byte(size_t value)
{
if (value._value > byte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Byte data type.", value));
return (byte)value._value;
}
/// <summary>
/// Converts a <see cref="size_t"/> value to an <see cref="SByte"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>An <see cref="SByte"/> value.</returns>
public static explicit operator sbyte(size_t value)
{
if (value._value > (ulong)sbyte.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the SByte data type.", value));
return (sbyte)value._value;
}
/// <summary>
/// Converts a <see cref="size_t"/> value to a <see cref="UInt16"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>A <see cref="UInt16"/> value.</returns>
public static explicit operator ushort(size_t value)
{
if (value._value > ushort.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt16 data type.", value));
return (ushort)value._value;
}
/// <summary>
/// Converts a <see cref="size_t"/> value to an <see cref="Int16"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>An <see cref="Int16"/> value.</returns>
public static explicit operator short(size_t value)
{
if (value._value > (ulong)short.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int16 data type.", value));
return (short)value._value;
}
/// <summary>
/// Converts a <see cref="size_t"/> value to a <see cref="UInt32"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>A <see cref="UInt32"/> value.</returns>
public static explicit operator uint(size_t value)
{
if (value._value > uint.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the UInt32 data type.", value));
return (uint)value._value;
}
/// <summary>
/// Converts a <see cref="size_t"/> value to an <see cref="Int32"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>An <see cref="Int32"/> value.</returns>
public static explicit operator int(size_t value)
{
//if (value._value > int.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int32 data type.", value));
return unchecked((int)value._value);
}
/// <summary>
/// Converts a <see cref="size_t"/> value to a <see cref="UInt64"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>A <see cref="UInt64"/> value.</returns>
public static implicit operator ulong(size_t value)
{
return value._value;
}
/// <summary>
/// Converts a <see cref="size_t"/> value to an <see cref="Int64"/> value.
/// </summary>
/// <param name="value">An <see cref="size_t"/> value.</param>
/// <returns>An <see cref="Int64"/> value.</returns>
public static explicit operator long(size_t value)
{
//if (value._value > long.MaxValue) throw new System.OverflowException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "'{0}' is out of range of the Int64 data type.", value));
return unchecked((long)value._value);
}
/// <summary>
/// Gets the string representation of the <see cref="size_t"/>.
/// </summary>
/// <returns>The string representation of the <see cref="size_t"/>.</returns>
public override string ToString()
{
return _value.ToString(System.Globalization.CultureInfo.InvariantCulture);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="size_t"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is size_t))
return false;
return Equals((size_t)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="size_t"/> value.
/// </summary>
/// <param name="other">A <see cref="size_t"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(size_t other)
{
return _value == other._value;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _value.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="size_t"/> value.</param>
/// <param name="value2">A <see cref="size_t"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(size_t value1, size_t value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="size_t"/> value.</param>
/// <param name="value2">A <see cref="size_t"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(size_t value1, size_t value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,562 @@

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace Math.Gmp.Native
{
internal class va_list
{
private IntPtr arguments;
private struct va_arg
{
//public int arg_size;
//public int data_size;
public int arg_offset;
public int data_offset;
public Action<int> write; // Write to unmanaged memory.
public Action<int> read; // Read from unmanaged memory.
}
private va_arg[] va_args;
private int args_size = 0;
private int data_size = 0;
private Stack<int> readables = new Stack<int>();
/// <summary>
/// Creates a variable list of arguments in unmanaged memory.
/// </summary>
/// <param name="args"></param>
public va_list(params object[] args)
{
va_args = new va_arg[args.Length];
for (int j = 0; j < args.Length; j++)
{
string name = args[j].GetType().Name;
if (name == "ptr`1")
name = name.Replace("`1", "<" + args[j].GetType().GetGenericArguments()[0].Name + ">");
va_args[j].arg_offset = args_size;
va_args[j].data_offset = data_size;
switch (name)
{
case "Char":
args_size += 1;
va_args[j].write = (i) => Marshal.WriteByte(arguments, va_args[i].arg_offset, System.Text.Encoding.ASCII.GetBytes(new Char[] { (Char)args[i] })[0]);
break;
case "Byte":
case "SByte":
args_size += 1;
va_args[j].write = (i) => Marshal.WriteByte(arguments, va_args[i].arg_offset, (Byte)args[i]);
break;
case "Int16":
case "UInt16":
args_size += 2;
va_args[j].write = (i) => Marshal.WriteInt16(arguments, va_args[i].arg_offset, (Int16)args[i]);
break;
case "Int32":
case "UInt32":
args_size += 4;
va_args[j].write = (i) => Marshal.WriteInt32(arguments, va_args[i].arg_offset, (Int32)args[i]);
break;
case "Single":
args_size += 8;
va_args[j].write = (i) => Marshal.Copy(BitConverter.GetBytes((Double)(Single)args[i]), 0, (IntPtr)(arguments.ToInt64() + va_args[i].arg_offset), 8);
break;
case "mp_bitcnt_t":
args_size += 4;
va_args[j].write = (i) => Marshal.WriteInt32(arguments, va_args[i].arg_offset, (Int32)(mp_bitcnt_t)args[i]);
break;
case "mp_size_t":
args_size += 4;
va_args[j].write = (i) => Marshal.WriteInt32(arguments, va_args[i].arg_offset, (Int32)(mp_size_t)args[i]);
break;
case "mp_exp_t":
args_size += 4;
va_args[j].write = (i) => Marshal.WriteInt32(arguments, va_args[i].arg_offset, (Int32)(mp_exp_t)args[i]);
break;
case "Int64":
case "UInt64":
args_size += 8;
va_args[j].write = (i) => Marshal.WriteInt64(arguments, va_args[i].arg_offset, (Int64)args[i]);
break;
case "Double":
args_size += 8;
va_args[j].write = (i) => Marshal.Copy(BitConverter.GetBytes((Double)args[i]), 0, (IntPtr)(arguments.ToInt64() + va_args[i].arg_offset), 8);
break;
case "IntPtr":
case "UIntPtr":
args_size += IntPtr.Size;
va_args[j].write = (i) => Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, (IntPtr)args[i]);
break;
case "mpz_t":
args_size += IntPtr.Size;
va_args[j].write = (i) => Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, ((mpz_t)args[i]).ToIntPtr());
break;
case "mpq_t":
args_size += IntPtr.Size;
va_args[j].write = (i) => Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, ((mpq_t)args[i]).ToIntPtr());
break;
case "mpf_t":
args_size += IntPtr.Size;
va_args[j].write = (i) => Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, ((mpf_t)args[i]).ToIntPtr());
break;
case "mp_ptr":
args_size += IntPtr.Size;
va_args[j].write = (i) => Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, ((mp_ptr)args[i]).ToIntPtr());
break;
case "mp_limb_t":
args_size += IntPtr.Size;
va_args[j].write = (i) =>
{
if (IntPtr.Size == 4)
Marshal.WriteInt32(arguments, va_args[i].arg_offset, (Int32)(mp_limb_t)args[i]);
else
Marshal.WriteInt64(arguments, va_args[i].arg_offset, (Int64)(mp_limb_t)args[i]);
};
break;
case "char_ptr":
args_size += IntPtr.Size;
va_args[j].write = (i) => Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, ((char_ptr)args[i]).ToIntPtr());
break;
case "size_t":
args_size += IntPtr.Size;
va_args[j].write = (i) =>
{
if (IntPtr.Size == 4)
Marshal.WriteInt32(arguments, va_args[i].arg_offset, (Int32)(size_t)args[i]);
else
Marshal.WriteInt64(arguments, va_args[i].arg_offset, (Int64)(size_t)args[i]);
};
break;
case "String":
args_size += IntPtr.Size;
data_size += ((string)args[j]).Length + 1;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
string data = (string)args[i];
Marshal.Copy(Encoding.ASCII.GetBytes(data), 0, data_ptr, data.Length);
data_ptr += data.Length;
Marshal.Copy(new Byte[] { 0 }, 0, data_ptr, 1);
};
break;
case "StringBuilder":
args_size += IntPtr.Size;
data_size += ((StringBuilder)args[j]).Capacity + 1;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
StringBuilder data = (StringBuilder)args[i];
Marshal.Copy(Encoding.ASCII.GetBytes(data.ToString()), 0, data_ptr, data.Length);
Marshal.Copy(new Byte[] { 0 }, 0, data_ptr + data.Length, 1);
data_ptr += data.Capacity + 1;
};
va_args[j].read = (i) =>
{
StringBuilder data = (StringBuilder)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Clear();
data.Append(Marshal.PtrToStringAnsi(data_ptr));
};
readables.Push(j);
break;
case "ptr<Char>":
args_size += IntPtr.Size;
data_size += 1;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Char data = ((ptr<Char>)args[i]).Value;
Marshal.WriteByte(data_ptr, 0, Encoding.ASCII.GetBytes(new Char[] { data })[0]);
};
va_args[j].read = (i) =>
{
ptr<Char> data = (ptr<Char>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = Encoding.ASCII.GetChars(new byte[] { Marshal.ReadByte(data_ptr) })[0];
};
readables.Push(j);
break;
case "ptr<Byte>":
args_size += IntPtr.Size;
data_size += 1;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Byte data = ((ptr<Byte>)args[i]).Value;
Marshal.WriteByte(data_ptr, 0, data);
};
va_args[j].read = (i) =>
{
ptr<Byte> data = (ptr<Byte>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (Byte)Marshal.ReadByte(data_ptr);
};
readables.Push(j);
break;
case "ptr<SByte>":
args_size += IntPtr.Size;
data_size += 1;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
SByte data = ((ptr<SByte>)args[i]).Value;
Marshal.WriteByte(data_ptr, 0, (Byte)data);
};
va_args[j].read = (i) =>
{
ptr<SByte> data = (ptr<SByte>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (SByte)Marshal.ReadByte(data_ptr);
};
readables.Push(j);
break;
case "ptr<Int16>":
args_size += IntPtr.Size;
data_size += 2;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Int16 data = ((ptr<Int16>)args[i]).Value;
Marshal.WriteInt16(data_ptr, 0, data);
};
va_args[j].read = (i) =>
{
ptr<Int16> data = (ptr<Int16>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (Int16)Marshal.ReadInt16(data_ptr);
};
readables.Push(j);
break;
case "ptr<UInt16>":
args_size += IntPtr.Size;
data_size += 2;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
UInt16 data = ((ptr<UInt16>)args[i]).Value;
Marshal.WriteInt16(data_ptr, 0, (Int16)data);
};
va_args[j].read = (i) =>
{
ptr<UInt16> data = (ptr<UInt16>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (UInt16)Marshal.ReadInt16(data_ptr);
};
readables.Push(j);
break;
case "ptr<Int32>":
args_size += IntPtr.Size;
data_size += 4;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Int32 data = ((ptr<Int32>)args[i]).Value;
Marshal.WriteInt32(data_ptr, 0, data);
};
va_args[j].read = (i) =>
{
ptr<Int32> data = (ptr<Int32>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (Int32)Marshal.ReadInt32(data_ptr);
};
readables.Push(j);
break;
case "ptr<UInt32>":
args_size += IntPtr.Size;
data_size += 4;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
UInt32 data = ((ptr<UInt32>)args[i]).Value;
Marshal.WriteInt32(data_ptr, 0, (Int32)data);
};
va_args[j].read = (i) =>
{
ptr<UInt32> data = (ptr<UInt32>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (UInt32)Marshal.ReadInt32(data_ptr);
};
readables.Push(j);
break;
case "ptr<Single>":
args_size += IntPtr.Size;
data_size += 4;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Single data = ((ptr<Single>)args[i]).Value;
Marshal.Copy(BitConverter.GetBytes((Single)data), 0, data_ptr, 4);
};
va_args[j].read = (i) =>
{
ptr<Single> data = (ptr<Single>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Byte[] bytes = new Byte[4];
Marshal.Copy(data_ptr, bytes, 0, 4);
data.Value = BitConverter.ToSingle(bytes, 0);
};
readables.Push(j);
break;
case "ptr<mp_bitcnt_t>":
args_size += IntPtr.Size;
data_size += 4;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
mp_bitcnt_t data = ((ptr<mp_bitcnt_t>)args[i]).Value;
Marshal.WriteInt32(data_ptr, 0, (Int32)data._value);
};
va_args[j].read = (i) =>
{
ptr<mp_bitcnt_t> data = (ptr<mp_bitcnt_t>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value._value = (uint)Marshal.ReadInt32(data_ptr);
};
readables.Push(j);
break;
case "ptr<mp_size_t>":
args_size += IntPtr.Size;
data_size += 4;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
mp_size_t data = ((ptr<mp_size_t>)args[i]).Value;
Marshal.WriteInt32(data_ptr, 0, data._value);
};
va_args[j].read = (i) =>
{
ptr<mp_size_t> data = (ptr<mp_size_t>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value._value = Marshal.ReadInt32(data_ptr);
};
readables.Push(j);
break;
case "ptr<mp_exp_t>":
args_size += IntPtr.Size;
data_size += 4;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
mp_exp_t data = ((ptr<mp_exp_t>)args[i]).Value;
Marshal.WriteInt32(data_ptr, 0, data._value);
};
va_args[j].read = (i) =>
{
ptr<mp_exp_t> data = (ptr<mp_exp_t>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value._value = Marshal.ReadInt32(data_ptr);
};
readables.Push(j);
break;
case "ptr<Int64>":
args_size += IntPtr.Size;
data_size += 8;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Int64 data = ((ptr<Int64>)args[i]).Value;
Marshal.WriteInt64(data_ptr, 0, data);
};
va_args[j].read = (i) =>
{
ptr<Int64> data = (ptr<Int64>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (Int64)Marshal.ReadInt64(data_ptr);
};
readables.Push(j);
break;
case "ptr<UInt64>":
args_size += IntPtr.Size;
data_size += 8;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
UInt64 data = ((ptr<UInt64>)args[i]).Value;
Marshal.WriteInt64(data_ptr, 0, (Int64)data);
};
va_args[j].read = (i) =>
{
ptr<UInt64> data = (ptr<UInt64>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = (UInt64)Marshal.ReadInt64(data_ptr);
};
readables.Push(j);
break;
case "ptr<Double>":
args_size += IntPtr.Size;
data_size += 8;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
Double data = ((ptr<Double>)args[i]).Value;
Marshal.Copy(BitConverter.GetBytes(data), 0, data_ptr, 8);
};
va_args[j].read = (i) =>
{
ptr<Double> data = (ptr<Double>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Byte[] bytes = new Byte[8];
Marshal.Copy(data_ptr, bytes, 0, 8);
data.Value = BitConverter.ToDouble(bytes, 0);
};
readables.Push(j);
break;
case "ptr<mp_limb_t>":
args_size += IntPtr.Size;
data_size += IntPtr.Size;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
mp_limb_t data = ((ptr<mp_limb_t>)args[i]).Value;
if (IntPtr.Size == 4)
Marshal.WriteInt32(data_ptr, 0, (Int32)data._value);
else
Marshal.WriteInt64(data_ptr, 0, (Int64)data._value);
};
va_args[j].read = (i) =>
{
ptr<mp_limb_t> data = (ptr<mp_limb_t>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
if (IntPtr.Size == 4)
data.Value._value = (UInt32)Marshal.ReadInt32(data_ptr);
else
data.Value._value = (UInt64)Marshal.ReadInt64(data_ptr);
};
readables.Push(j);
break;
case "ptr<size_t>":
args_size += IntPtr.Size;
data_size += IntPtr.Size;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
size_t data = ((ptr<size_t>)args[i]).Value;
if (IntPtr.Size == 4)
Marshal.WriteInt32(data_ptr, 0, (Int32)data._value);
else
Marshal.WriteInt64(data_ptr, 0, (Int64)data._value);
};
va_args[j].read = (i) =>
{
ptr<size_t> data = (ptr<size_t>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
if (IntPtr.Size == 4)
data.Value._value = (UInt32)Marshal.ReadInt32(data_ptr);
else
data.Value._value = (UInt64)Marshal.ReadInt64(data_ptr);
};
readables.Push(j);
break;
case "ptr<IntPtr>":
args_size += IntPtr.Size;
data_size += IntPtr.Size;
va_args[j].write = (i) =>
{
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
Marshal.WriteIntPtr(arguments, va_args[i].arg_offset, data_ptr);
IntPtr data = ((ptr<IntPtr>)args[i]).Value;
Marshal.WriteIntPtr(data_ptr, 0, data);
};
va_args[j].read = (i) =>
{
ptr<IntPtr> data = (ptr<IntPtr>)args[i];
IntPtr data_ptr = (IntPtr)(arguments.ToInt64() + args_size + va_args[i].data_offset);
data.Value = Marshal.ReadIntPtr(data_ptr);
};
readables.Push(j);
break;
default:
throw new System.InvalidOperationException("Unsupported variable argument type '" + name + "'");
}
}
// Write arguments to unmanaged memory.
arguments = gmp_lib.allocate((size_t)(args_size + data_size)).ToIntPtr();
for (int i = 0; i < args.Length; i++)
va_args[i].write(i);
}
public IntPtr ToIntPtr()
{
return arguments;
}
/// <summary>
/// Retrieves argument values from unmanaged memory.
/// </summary>
public void RetrieveArgumentValues()
{
foreach (int i in readables)
va_args[i].read(i);
gmp_lib.free(arguments);
}
}
}

View File

@ -0,0 +1,103 @@

using System;
using System.Runtime.InteropServices;
namespace Math.Gmp.Native
{
/// <summary>
/// Represents a pointer to a block of unmanaged memory.
/// </summary>
/// <remarks></remarks>
public struct void_ptr
{
private IntPtr _pointer;
internal void_ptr(IntPtr pointer)
{
_pointer = pointer;
}
/// <summary>
/// Gets a <see cref="void_ptr"/> from a pointer to a block of unmanaged memory.
/// </summary>
/// <param name="value">A pointer to a block of unmanaged memory.</param>
/// <returns>A <see cref="void_ptr"/> from a pointer to a block of unmanaged memory.</returns>
public void_ptr FromIntPtr(IntPtr value)
{
_pointer = value;
return this;
}
/// <summary>
/// Gets pointer to block of unmanaged memory.
/// </summary>
/// <returns>Pointer to block of unmanaged memory.</returns>
public IntPtr ToIntPtr()
{
return _pointer;
}
/// <summary>
/// Gets a null <see cref="void_ptr"/>.
/// </summary>
public static readonly void_ptr Zero = new void_ptr(IntPtr.Zero);
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns><c>True</c> if <paramref name="obj"/> is an instance of <see cref="void_ptr"/> and equals the value of this instance; otherwise, <c>False</c>.</returns>
public override bool Equals(object obj)
{
if (!(obj is void_ptr))
return false;
return Equals((void_ptr)obj);
}
/// <summary>
/// Returns a value indicating whether this instance is equal to a specified <see cref="void_ptr"/> value.
/// </summary>
/// <param name="other">A <see cref="void_ptr"/> value to compare to this instance.</param>
/// <returns><c>True</c> if <paramref name="other"/> has the same value as this instance; otherwise, <c>False</c>.</returns>
public bool Equals(void_ptr other)
{
return _pointer == other._pointer;
}
/// <summary>
/// Returns the hash code for this instance.
/// </summary>
/// <returns>A 32-bit signed integer hash code.</returns>
public override int GetHashCode()
{
return _pointer.GetHashCode();
}
/// <summary>
/// Gets a value that indicates whether the two argument values are equal.
/// </summary>
/// <param name="value1">A <see cref="void_ptr"/> value.</param>
/// <param name="value2">A <see cref="void_ptr"/> value.</param>
/// <returns><c>True</c> if the two values are equal, and <c>False</c> otherwise.</returns>
public static bool operator ==(void_ptr value1, void_ptr value2)
{
return value1.Equals(value2);
}
/// <summary>
/// Gets a value that indicates whether the two argument values are different.
/// </summary>
/// <param name="value1">A <see cref="void_ptr"/> value.</param>
/// <param name="value2">A <see cref="void_ptr"/> value.</param>
/// <returns><c>True</c> if the two values are different, and <c>False</c> otherwise.</returns>
public static bool operator !=(void_ptr value1, void_ptr value2)
{
return !value1.Equals(value2);
}
}
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Gmp.Native.NET</id>
<version>1.1</version>
<title>GMP Native Interface for .NET)</title>
<authors>Robert Baron (Machine Cognitis)</authors>
<owners>Robert Baron (Machine Cognitis)</owners>
<licenseUrl>https://github.com/MachineCognitis/Gmp.Native.NET/blob/master/LICENSE.md</licenseUrl>
<projectUrl>https://github.com/MachineCognitis/Gmp.Native.NET/</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>This package contains the C.math.NET library that implements several C Standard mathematical functions that are missing from the .NET framework. Functions include among others: frexp, ilogb, ldexp, logb, scalbn, copysign, nextafter, isunordered, and fpclassify. Both double and single precision functions are implemented. All functions are static and their names follow the C Standard.
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.
Supported Platform: .NET Framework 2.0+</description>
<summary>C math (in .NET)</summary>
<releaseNotes>Initial release.</releaseNotes>
<copyright>Copyright (c) 2016 Robert Baron, Machine Cognitis</copyright>
<tags>fpclassify isfinite isinf isnan isnormal signbit frexp ilogb ldexp logb scalbn scalbln copysign nextafter nexttoward significand isunordered</tags>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System" targetFramework=".NETFramework2.0" />
</frameworkAssemblies>
</metadata>
<files>
<file src="..\Math.Gmp.Native\bin\Release\Math.Gmp.Native.dll" target="lib\net20\Math.Gmp.Native.dll" />
</files>
</package>

23
NuGet/NuGet.nuproj 100644
View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>b51a83d0-21f1-454a-a62c-8173db309348</ProjectGuid>
<OutputPath>Bin\</OutputPath>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<NuBuildVersionSource>Manual</NuBuildVersionSource>
<NuBuildVersionFileName>False</NuBuildVersionFileName>
<NuBuildAddBinariesToSubfolder>False</NuBuildAddBinariesToSubfolder>
<NuBuildIncludePdbs>True</NuBuildIncludePdbs>
<Name>NuGet</Name>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
</PropertyGroup>
<ItemGroup>
<Compile Include="Gmp.Native.nuspec">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\NuBuild\v1\NuBuild.targets" />
</Project>

76
README.md 100644
View File

@ -0,0 +1,76 @@
# Welcome to the C.math.NET Library
The C.math.NET library implements several [C Standard](http://en.cppreference.com/w/c/numeric/math) mathematical
functions that are missing from the .NET framework.
Functions include among others:
[frexp](https://machinecognitis.github.io/C.math.NET/html/b4d6cd51-2441-999a-18c2-8d18dc2a2c3c.htm),
[ilogb](https://machinecognitis.github.io/C.math.NET/html/6c69efac-8d3c-7c31-f0c5-930b73593c0e.htm),
[ldexp](https://machinecognitis.github.io/C.math.NET/html/35eead45-7bb4-88c5-0f75-278b2cbc94a7.htm),
[logb](https://machinecognitis.github.io/C.math.NET/html/5f67d96e-daa3-cd30-9384-1cda9ebf3f8a.htm),
[scalbn](https://machinecognitis.github.io/C.math.NET/html/bedc19b9-8091-4a47-c967-9092577c1dd7.htm),
[copysign](https://machinecognitis.github.io/C.math.NET/html/cd5217b7-7396-95ed-e4b7-0702efbd860d.htm),
[nextafter](https://machinecognitis.github.io/C.math.NET/html/65f00e22-a956-ec37-9e75-4594cb42d6d2.htm),
[isunordered](https://machinecognitis.github.io/C.math.NET/html/e64fb421-ebf8-8796-d5d0-159ce7435c91.htm), and
[fpclassify](https://machinecognitis.github.io/C.math.NET/html/63a4a916-1492-dedf-c8fe-0e01aff401f4.htm).
Both double and single precision functions are implemented.
All functions are static and their names follow the
[C Standard](http://en.cppreference.com/w/c/numeric/math).
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.
### Documentation
- On-line help is available [here](https://machinecognitis.github.io/C.math.NET/).
### NuGet
The C.math.NET library can be installed in your Visual Studio solution or project with this
[NuGet package](https://www.nuget.org/packages/C.math.NET/).
### Latest Build
The build file includes the compiled library and the help file (.chm) ready to be included in your project.
The library targets the .NET Framework 2.0, so it can be used with all newer versions of the .NET Framework.
For other builds, see the [Releases](https://github.com/MachineCognitis/C.math.NET/releases) page.
- [C.math.NET.v1.1.build.zip](https://github.com/MachineCognitis/C.math.NET/releases/download/v1.1/C.math.NET.v1.1.build.zip).
**NOTE**: On some systems, the content of the ZIP file may be blocked. To unblock it, right click on the
ZIP file, select Properties, and click on the Unblock button, if it is present.
### Making a Donation
You can make a donation to support this project by clicking on the PayPal Donate button below.
PayPal guarantees your privacy and security. I will not receive any details about your payment
other than the amount, and your name.
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WUQ6Q2QC8EVDA"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" alt="PayPal - The safer, easier way to pay online!"></a>
Thanks to those who have made a donation. This is much appreciated!
### Sharing
<div>
<!-- Email -->
<a href="mailto:?Subject=C.math.NET%20Library&amp;Body=I%20saw%20this%20and%20thought%20of%20you!%20https://github.com/MachineCognitis/C.math.NET/" target="_blank">
<img width="35" src="./docs/icons/mail.png" alt="Email" />
</a>
<!-- Facebook -->
<a href="http://www.facebook.com/sharer.php?u=https://github.com/MachineCognitis/C.math.NET/" target="_blank">
<img width="35"src="./docs/icons/facebook.png" alt="Facebook" />
</a>
<!-- Google+ -->
<a href="https://plus.google.com/share?url=https://github.com/MachineCognitis/C.math.NET/" target="_blank">
<img width="35"src="./docs/icons/google.png" alt="Google" />
</a>
<!-- LinkedIn -->
<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=https://github.com/MachineCognitis/C.math.NET/" target="_blank">
<img width="35"src="./docs/icons/linkedin.png" alt="LinkedIn" />
</a>
<!-- Twitter -->
<a href="https://twitter.com/share?url=https://github.com/MachineCognitis/C.math.NET/" target="_blank">
<img width="35"src="./docs/icons/twitter.png" alt="Twitter" />
</a>
</div>

BIN
docs/Gmp.Native.chm 100644

Binary file not shown.

View File

@ -0,0 +1,233 @@
<%@ Page Language="C#" EnableViewState="False" %>
<script runat="server">
//===============================================================================================================
// System : Sandcastle Help File Builder
// File : SearchHelp.aspx
// Author : Eric Woodruff (Eric@EWoodruff.us)
// Updated : 05/15/2014
// Note : Copyright 2007-2015, Eric Woodruff, All rights reserved
// Compiler: Microsoft C#
//
// This file contains the code used to search for keywords within the help topics using the full-text index
// files created by the help file builder.
//
// This code is published under the Microsoft Public License (Ms-PL). A copy of the license should be
// distributed with the code. It can also be found at the project website: https://GitHub.com/EWSoftware/SHFB. This
// notice, the author's name, and all copyright notices must remain intact in all applications, documentation,
// and source files.
//
// Date Who Comments
// ==============================================================================================================
// 06/24/2007 EFW Created the code
// 02/17/2012 EFW Switched to JSON serialization to support websites that use something other than ASP.NET
// such as PHP.
// 05/15/2014 EFW Updated for use with the lightweight website presentation styles
//===============================================================================================================
/// <summary>
/// This class is used to track the results and their rankings
/// </summary>
private class Ranking
{
public string Filename, PageTitle;
public int Rank;
public Ranking(string file, string title, int rank)
{
Filename = file;
PageTitle = title;
Rank = rank;
}
}
/// <summary>
/// Render the search results
/// </summary>
/// <param name="writer">The writer to which the results are written</param>
protected override void Render(HtmlTextWriter writer)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
string searchText, ftiFile;
char letter;
bool sortByTitle = false;
jss.MaxJsonLength = Int32.MaxValue;
// The keywords for which to search should be passed in the query string
searchText = this.Request.QueryString["Keywords"];
if(String.IsNullOrEmpty(searchText))
{
writer.Write("<strong>Nothing found</strong>");
return;
}
// An optional SortByTitle option can also be specified
if(this.Request.QueryString["SortByTitle"] != null)
sortByTitle = Convert.ToBoolean(this.Request.QueryString["SortByTitle"]);
List<string> keywords = this.ParseKeywords(searchText);
List<char> letters = new List<char>();
List<string> fileList;
Dictionary<string, List<long>> ftiWords, wordDictionary = new Dictionary<string,List<long>>();
// Load the file index
using(StreamReader sr = new StreamReader(Server.MapPath("fti/FTI_Files.json")))
{
fileList = jss.Deserialize<List<string>>(sr.ReadToEnd());
}
// Load the required word index files
foreach(string word in keywords)
{
letter = word[0];
if(!letters.Contains(letter))
{
letters.Add(letter);
ftiFile = Server.MapPath(String.Format(CultureInfo.InvariantCulture, "fti/FTI_{0}.json", (int)letter));
if(File.Exists(ftiFile))
{
using(StreamReader sr = new StreamReader(ftiFile))
{
ftiWords = jss.Deserialize<Dictionary<string, List<long>>>(sr.ReadToEnd());
}
foreach(string ftiWord in ftiWords.Keys)
wordDictionary.Add(ftiWord, ftiWords[ftiWord]);
}
}
}
// Perform the search and return the results as a block of HTML
writer.Write(this.Search(keywords, fileList, wordDictionary, sortByTitle));
}
/// <summary>
/// Split the search text up into keywords
/// </summary>
/// <param name="keywords">The keywords to parse</param>
/// <returns>A list containing the words for which to search</returns>
private List<string> ParseKeywords(string keywords)
{
List<string> keywordList = new List<string>();
string checkWord;
string[] words = Regex.Split(keywords, @"\W+");
foreach(string word in words)
{
checkWord = word.ToLower(CultureInfo.InvariantCulture);
if(checkWord.Length > 2 && !Char.IsDigit(checkWord[0]) && !keywordList.Contains(checkWord))
keywordList.Add(checkWord);
}
return keywordList;
}
/// <summary>
/// Search for the specified keywords and return the results as a block of HTML
/// </summary>
/// <param name="keywords">The keywords for which to search</param>
/// <param name="fileInfo">The file list</param>
/// <param name="wordDictionary">The dictionary used to find the words</param>
/// <param name="sortByTitle">True to sort by title, false to sort by ranking</param>
/// <returns>A block of HTML representing the search results</returns>
private string Search(List<string> keywords, List<string> fileInfo,
Dictionary<string, List<long>> wordDictionary, bool sortByTitle)
{
StringBuilder sb = new StringBuilder(10240);
Dictionary<string, List<long>> matches = new Dictionary<string, List<long>>();
List<long> occurrences;
List<int> matchingFileIndices = new List<int>(), occurrenceIndices = new List<int>();
List<Ranking> rankings = new List<Ranking>();
string filename, title;
string[] fileIndex;
bool isFirst = true;
int idx, wordCount, matchCount;
foreach(string word in keywords)
{
if(!wordDictionary.TryGetValue(word, out occurrences))
return "<strong>Nothing found</strong>";
matches.Add(word, occurrences);
occurrenceIndices.Clear();
// Get a list of the file indices for this match
foreach(long entry in occurrences)
occurrenceIndices.Add((int)(entry >> 16));
if(isFirst)
{
isFirst = false;
matchingFileIndices.AddRange(occurrenceIndices);
}
else
{
// After the first match, remove files that do not appear for
// all found keywords.
for(idx = 0; idx < matchingFileIndices.Count; idx++)
if(!occurrenceIndices.Contains(matchingFileIndices[idx]))
{
matchingFileIndices.RemoveAt(idx);
idx--;
}
}
}
if(matchingFileIndices.Count == 0)
return "<strong>Nothing found</strong>";
// Rank the files based on the number of times the words occurs
foreach(int index in matchingFileIndices)
{
// Split out the title, filename, and word count
fileIndex = fileInfo[index].Split('\x0');
title = fileIndex[0];
filename = fileIndex[1];
wordCount = Convert.ToInt32(fileIndex[2]);
matchCount = 0;
foreach(string word in keywords)
{
occurrences = matches[word];
foreach(long entry in occurrences)
if((int)(entry >> 16) == index)
matchCount += (int)(entry & 0xFFFF);
}
rankings.Add(new Ranking(filename, title, matchCount * 1000 / wordCount));
if(rankings.Count > 99)
break;
}
// Sort by rank in descending order or by page title in ascending order
rankings.Sort(delegate (Ranking x, Ranking y)
{
if(!sortByTitle)
return y.Rank - x.Rank;
return x.PageTitle.CompareTo(y.PageTitle);
});
// Format the file list and return the results
sb.Append("<ol>");
foreach(Ranking r in rankings)
sb.AppendFormat("<li><a href=\"{0}\" target=\"_blank\">{1}</a></li>", r.Filename, r.PageTitle);
sb.Append("</ol>");
if(rankings.Count < matchingFileIndices.Count)
sb.AppendFormat("<p>Omitted {0} more results</p>", matchingFileIndices.Count - rankings.Count);
return sb.ToString();
}
</script>

View File

@ -0,0 +1,173 @@
<?
// Contributed to the Sandcastle Help File Builder project by Thomas Levesque
class Ranking
{
public $filename;
public $pageTitle;
public $rank;
function __construct($file, $title, $rank)
{
$this->filename = $file;
$this->pageTitle = $title;
$this->rank = $rank;
}
}
/// <summary>
/// Split the search text up into keywords
/// </summary>
/// <param name="keywords">The keywords to parse</param>
/// <returns>A list containing the words for which to search</returns>
function ParseKeywords($keywords)
{
$keywordList = array();
$words = preg_split("/[^\w]+/", $keywords);
foreach($words as $word)
{
$checkWord = strtolower($word);
$first = substr($checkWord, 0, 1);
if(strlen($checkWord) > 2 && !ctype_digit($first) && !in_array($checkWord, $keywordList))
{
array_push($keywordList, $checkWord);
}
}
return $keywordList;
}
/// <summary>
/// Search for the specified keywords and return the results as a block of
/// HTML.
/// </summary>
/// <param name="keywords">The keywords for which to search</param>
/// <param name="fileInfo">The file list</param>
/// <param name="wordDictionary">The dictionary used to find the words</param>
/// <param name="sortByTitle">True to sort by title, false to sort by
/// ranking</param>
/// <returns>A block of HTML representing the search results.</returns>
function Search($keywords, $fileInfo, $wordDictionary, $sortByTitle)
{
$sb = "<ol>";
$matches = array();
$matchingFileIndices = array();
$rankings = array();
$isFirst = true;
foreach($keywords as $word)
{
if (!array_key_exists($word, $wordDictionary))
{
return "<strong>Nothing found</strong>";
}
$occurrences = $wordDictionary[$word];
$matches[$word] = $occurrences;
$occurrenceIndices = array();
// Get a list of the file indices for this match
foreach($occurrences as $entry)
array_push($occurrenceIndices, ($entry >> 16));
if($isFirst)
{
$isFirst = false;
foreach($occurrenceIndices as $i)
{
array_push($matchingFileIndices, $i);
}
}
else
{
// After the first match, remove files that do not appear for
// all found keywords.
for($idx = 0; $idx < count($matchingFileIndices); $idx++)
{
if (!in_array($matchingFileIndices[$idx], $occurrenceIndices))
{
array_splice($matchingFileIndices, $idx, 1);
$idx--;
}
}
}
}
if(count($matchingFileIndices) == 0)
{
return "<strong>Nothing found</strong>";
}
// Rank the files based on the number of times the words occurs
foreach($matchingFileIndices as $index)
{
// Split out the title, filename, and word count
$fileIndex = explode("\x00", $fileInfo[$index]);
$title = $fileIndex[0];
$filename = $fileIndex[1];
$wordCount = intval($fileIndex[2]);
$matchCount = 0;
foreach($keywords as $words)
{
$occurrences = $matches[$word];
foreach($occurrences as $entry)
{
if(($entry >> 16) == $index)
$matchCount += $entry & 0xFFFF;
}
}
$r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount);
array_push($rankings, $r);
if(count($rankings) > 99)
break;
}
// Sort by rank in descending order or by page title in ascending order
if($sortByTitle)
{
usort($rankings, "cmprankbytitle");
}
else
{
usort($rankings, "cmprank");
}
// Format the file list and return the results
foreach($rankings as $r)
{
$f = $r->filename;
$t = $r->pageTitle;
$sb .= "<li><a href=\"$f\" target=\"_blank\">$t</a></li>";
}
$sb .= "</ol";
if(count($rankings) < count($matchingFileIndices))
{
$c = count(matchingFileIndices) - count(rankings);
$sb .= "<p>Omitted $c more results</p>";
}
return $sb;
}
function cmprank($x, $y)
{
return $y->rank - $x->rank;
}
function cmprankbytitle($x, $y)
{
return strcmp($x->pageTitle, $y->pageTitle);
}
?>

View File

@ -0,0 +1,58 @@
<?
// Contributed to the Sandcastle Help File Builder project by Thomas Levesque
include("SearchHelp.inc.php");
$sortByTitle = false;
// The keywords for which to search should be passed in the query string
$searchText = $_GET["Keywords"];
if(empty($searchText))
{
?>
<strong>Nothing found</strong>
<?
return;
}
// An optional SortByTitle option can also be specified
if($_GET["SortByTitle"] == "true")
$sortByTitle = true;
$keywords = ParseKeywords($searchText);
$letters = array();
$wordDictionary = array();
// Load the file index
$json = file_get_contents("fti/FTI_Files.json");
$fileList = json_decode($json);
// Load the required word index files
foreach($keywords as $word)
{
$letter = substr($word, 0, 1);
if(!in_array($letter, $letters))
{
array_push($letters, $letter);
$ascii = ord($letter);
$ftiFile = "fti/FTI_$ascii.json";
if(file_exists($ftiFile))
{
$json = file_get_contents($ftiFile);
$ftiWords = json_decode($json, true);
foreach($ftiWords as $ftiWord => $val)
{
$wordDictionary[$ftiWord] = $val;
}
}
}
}
// Perform the search and return the results as a block of HTML
$results = Search($keywords, $fileList, $wordDictionary, $sortByTitle);
echo $results;
?>

31
docs/Web.Config 100644
View File

@ -0,0 +1,31 @@
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="false">
<assemblies>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
</compilation>
<pages>
<namespaces>
<add namespace="System"/>
<add namespace="System.Collections.Generic"/>
<add namespace="System.Globalization"/>
<add namespace="System.IO"/>
<add namespace="System.Text"/>
<add namespace="System.Text.RegularExpressions"/>
<add namespace="System.Web"/>
<add namespace="System.Web.Script.Serialization"/>
<add namespace="System.Web.UI"/>
<add namespace="System.Xml"/>
<add namespace="System.Xml.Serialization" />
<add namespace="System.Xml.XPath"/>
</namespaces>
</pages>
</system.web>
<appSettings>
<!-- Increase this value if you get an "Operation is not valid due to the current state of the object" error
when using the search page. -->
<add key="aspnet:MaxJsonDeserializerMembers" value="100000" />
</appSettings>
</configuration>

1142
docs/WebKI.xml 100644

File diff suppressed because it is too large Load Diff

708
docs/WebTOC.xml 100644
View File

@ -0,0 +1,708 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpTOC>
<HelpTOCNode Title="Welcome to the GMP Native Interface for .NET Library" Url="html/846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" />
<HelpTOCNode Id="d6198516-8073-46ef-a798-c23613cf6c9e" Title="Math.Gmp.Native" Url="html/d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">
<HelpTOCNode Title="allocate_function Delegate" Url="html/dfe3609d-cc50-e357-4254-e3a8e2847f07.htm" />
<HelpTOCNode Id="927b2e3d-4a28-4424-90fc-defac1a8ab65" Title="char_ptr Structure" Url="html/06249483-9daf-95f9-32c7-30195550bbcc.htm">
<HelpTOCNode Title="char_ptr Constructor " Url="html/255d9de2-3cf6-50f3-3276-a4332896da07.htm" />
<HelpTOCNode Id="71c6de42-5d42-48a3-a817-91605499c821" Title="char_ptr Methods" Url="html/73876566-4eec-b421-e4d6-3593e9641f0a.htm">
<HelpTOCNode Id="8c74fed2-f876-4627-8fdf-95f030ea4cb6" Title="Equals Method " Url="html/2d2c429f-5828-694d-2ad7-9d13e5c412b3.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/77d1beb2-2aed-58e8-dc50-bba2ff56afee.htm" />
<HelpTOCNode Title="Equals Method (char_ptr)" Url="html/b1eefed1-412c-fcb1-29ff-34094bc8d57e.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/84492195-83e7-7738-6678-c299663dd02c.htm" />
<HelpTOCNode Title="ToIntPtr Method " Url="html/42a15292-978c-35c6-bfa3-9d5acf725ca7.htm" />
<HelpTOCNode Title="ToString Method " Url="html/1eedfa7e-7135-6b5d-e395-9a6b90fab236.htm" />
</HelpTOCNode>
<HelpTOCNode Id="4ddb995b-2ea2-4b30-b2a2-6192b9e5052f" Title="char_ptr Operators" Url="html/84b523e8-bc53-01e9-49af-f7996af73647.htm">
<HelpTOCNode Title="Equality Operator " Url="html/a4f47fa4-8285-638d-c094-bc9e249a49a0.htm" />
<HelpTOCNode Title="Inequality Operator " Url="html/f090e7f3-7440-c789-5594-e5512076a61a.htm" />
</HelpTOCNode>
<HelpTOCNode Id="43dbdcad-c404-4b76-9469-b8413b7bdce2" Title="char_ptr Fields" Url="html/b32f2955-fb82-d5d4-3b3d-7dcd95a5d305.htm">
<HelpTOCNode Title="Zero Field" Url="html/76481715-8a8b-e739-905c-f0d83de503ab.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="a6ad4ff3-7a51-4e7d-a466-07d385948daa" Title="FILE Structure" Url="html/1bcc07bd-8fee-1107-844c-a5ff10e7660c.htm">
<HelpTOCNode Id="8b1fc707-18b1-41b4-86da-4c5976b533b8" Title="FILE Methods" Url="html/00586c66-53ac-3fe3-16a4-3ceb2f94620b.htm">
<HelpTOCNode Id="478bc7ca-98ed-4829-b939-e060c0df24e9" Title="Equals Method " Url="html/4e0b1b66-de5f-3451-d835-df0116b8c789.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/c35318b5-343e-5f6f-2a46-89cb3019121c.htm" />
<HelpTOCNode Title="Equals Method (FILE)" Url="html/a964376d-5264-550c-0dc6-5ce21c48ac93.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/b6911fef-883d-ec11-c2ad-1ff1ff565601.htm" />
</HelpTOCNode>
<HelpTOCNode Id="c48e7eb1-872d-4c15-ba47-5d834c162903" Title="FILE Operators" Url="html/4fe7aa66-0d05-7853-360a-72c4b55b69bd.htm">
<HelpTOCNode Title="Equality Operator " Url="html/cdb5f955-23ce-e22d-5090-d137153e866f.htm" />
<HelpTOCNode Title="Inequality Operator " Url="html/77413435-917b-2cdc-cfde-d0891b6ede82.htm" />
</HelpTOCNode>
<HelpTOCNode Id="bbae1983-c2a1-460e-ad81-4b53c35ef180" Title="FILE Fields" Url="html/76b37dae-ecff-2bd9-2e80-002354a7dddc.htm">
<HelpTOCNode Title="Value Field" Url="html/fb70a49d-b7b0-b8fc-83f5-0864f381cc76.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Title="free_function Delegate" Url="html/2c9876e2-a0f5-14c6-5069-1a9d50b89185.htm" />
<HelpTOCNode Id="7311fde2-893e-4253-8f7c-83d7fe16e091" Title="gmp_lib Class" Url="html/3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm">
<HelpTOCNode Id="ca045521-759a-467b-a15b-5b14cc539928" Title="gmp_lib Properties" Url="html/4c8c8860-0cde-fd90-76f1-81cd6fb7a125.htm">
<HelpTOCNode Title="gmp_errno Property " Url="html/4c3f1727-1891-2918-da3a-321930e883ed.htm" />
</HelpTOCNode>
<HelpTOCNode Id="372d551b-8ca7-40c2-b569-867dfd39e7b6" Title="gmp_lib Methods" Url="html/0fa7cbf3-e8f4-6b14-d829-8aa663e77c74.htm">
<HelpTOCNode Title="_mpz_realloc Method " Url="html/c9cb6a67-59b8-5c03-f31d-f252441c53f6.htm" />
<HelpTOCNode Title="allocate Method " Url="html/2c68671c-cd5c-e2ec-52a2-65b0ca31c3d1.htm" />
<HelpTOCNode Id="f30b9670-f6ca-4873-a5b2-1d08df196c6b" Title="free Method " Url="html/92160da3-b1af-e005-cb05-e3fb4dd524d8.htm">
<HelpTOCNode Title="free Method (char_ptr)" Url="html/d3ad552c-4d46-029e-9eeb-44d8abb800e2.htm" />
<HelpTOCNode Title="free Method (gmp_randstate_t)" Url="html/f46e4103-d4c4-69c2-1363-a4cb17d9cfda.htm" />
<HelpTOCNode Title="free Method (mp_ptr[])" Url="html/7924a2a3-75c1-0aa9-636f-4772d74a723f.htm" />
<HelpTOCNode Title="free Method (void_ptr)" Url="html/c10cea6f-22cd-f84c-c11a-5924ba0b0ee7.htm" />
<HelpTOCNode Title="free Method (void_ptr, size_t)" Url="html/19ccd2e3-05f1-d4f4-79b7-28b4f26e5768.htm" />
</HelpTOCNode>
<HelpTOCNode Title="gmp_asprintf Method " Url="html/fe6e46c3-8464-a080-b5fc-718589320cd5.htm" />
<HelpTOCNode Title="gmp_fprintf Method " Url="html/e3abec5c-9d83-babc-a020-ca4817962a21.htm" />
<HelpTOCNode Title="gmp_fscanf Method " Url="html/50306850-d92d-5038-bbcc-c452cd3c69a9.htm" />
<HelpTOCNode Title="gmp_get_memory_functions Method " Url="html/37510828-012a-9e6a-7916-776acfd8f1f9.htm" />
<HelpTOCNode Title="gmp_printf Method " Url="html/5c2015f3-41d2-7b80-5309-e41ccec0baaf.htm" />
<HelpTOCNode Title="gmp_randclear Method " Url="html/7ef82a61-e43a-78c7-a28f-8f2d0a5f59b1.htm" />
<HelpTOCNode Title="gmp_randinit_default Method " Url="html/89fff39e-9dc4-4d23-9460-301ae7df92d1.htm" />
<HelpTOCNode Title="gmp_randinit_lc_2exp Method " Url="html/21fdbc76-a0de-1f3a-195f-a5ae0cb3d1da.htm" />
<HelpTOCNode Title="gmp_randinit_lc_2exp_size Method " Url="html/f209112e-311a-88cd-becf-33bc3787f91d.htm" />
<HelpTOCNode Title="gmp_randinit_mt Method " Url="html/b3ed0ded-086a-41f1-6051-d08afa338da8.htm" />
<HelpTOCNode Title="gmp_randinit_set Method " Url="html/494fa261-4044-f216-7041-a55d95a26f5b.htm" />
<HelpTOCNode Title="gmp_randseed Method " Url="html/b31d5778-362b-b75f-40cc-4c8280ca889c.htm" />
<HelpTOCNode Title="gmp_randseed_ui Method " Url="html/c5f4e595-de6c-a555-426d-6cb8f429a960.htm" />
<HelpTOCNode Title="gmp_scanf Method " Url="html/880c96b7-378e-3cdb-057e-b6eea1c9e529.htm" />
<HelpTOCNode Title="gmp_set_memory_functions Method " Url="html/3568dd4d-d565-0b12-2da2-2fed2d433257.htm" />
<HelpTOCNode Title="gmp_snprintf Method " Url="html/61686857-e4a0-ad60-1419-2b87a79b06c1.htm" />
<HelpTOCNode Title="gmp_sprintf Method " Url="html/8916c18b-a745-2699-2f0a-035cf62dd051.htm" />
<HelpTOCNode Title="gmp_sscanf Method " Url="html/279d21b9-bd04-522e-0759-d1add6fe6fae.htm" />
<HelpTOCNode Title="gmp_urandomb_ui Method " Url="html/7b541895-53a8-b335-32de-d5b2224ff0f7.htm" />
<HelpTOCNode Title="gmp_urandomm_ui Method " Url="html/020d0663-b84b-54aa-8e2f-645ed532d175.htm" />
<HelpTOCNode Title="gmp_vasprintf Method " Url="html/bd7a38bd-df52-4b0f-36d4-eb539767d89f.htm" />
<HelpTOCNode Title="gmp_vfprintf Method " Url="html/62c5f2f4-2a93-e6d2-b867-23d4f2b98af4.htm" />
<HelpTOCNode Title="gmp_vfscanf Method " Url="html/316be139-2970-161f-ba7c-730f067b5cf3.htm" />
<HelpTOCNode Title="gmp_vprintf Method " Url="html/8031c594-b2b2-fa62-7088-00b6fe92f88e.htm" />
<HelpTOCNode Title="gmp_vscanf Method " Url="html/e5060da5-cafd-67e7-f18f-3a9d3c2aba7d.htm" />
<HelpTOCNode Title="gmp_vsnprintf Method " Url="html/300c388f-ba1c-0ba3-64fd-e7aafb39dcdb.htm" />
<HelpTOCNode Title="gmp_vsprintf Method " Url="html/56e1a610-d238-ab9f-87b5-001764290847.htm" />
<HelpTOCNode Title="gmp_vsscanf Method " Url="html/1a966758-12dc-4da3-cb22-b3b3d788ba02.htm" />
<HelpTOCNode Title="mpf_abs Method " Url="html/17731ba4-bf91-6b9b-737a-a9cc306ba17d.htm" />
<HelpTOCNode Title="mpf_add Method " Url="html/c19999f1-01ee-a3fe-dc4d-2a459e73492d.htm" />
<HelpTOCNode Title="mpf_add_ui Method " Url="html/45a76d5c-c5bf-e7f8-906a-15d290e9a50d.htm" />
<HelpTOCNode Title="mpf_ceil Method " Url="html/9b4a5f6b-3f8e-a957-ae84-303c6897aeb4.htm" />
<HelpTOCNode Title="mpf_clear Method " Url="html/3a2a17ed-a64c-8716-7f65-18c661a5279f.htm" />
<HelpTOCNode Title="mpf_clears Method " Url="html/bfb87570-3b2e-079a-1528-3746424bbdef.htm" />
<HelpTOCNode Title="mpf_cmp Method " Url="html/be9e6a25-83fb-49c2-949a-b8642a8234f5.htm" />
<HelpTOCNode Title="mpf_cmp_d Method " Url="html/4f0f115a-3956-13f7-4d6f-0157936c03bd.htm" />
<HelpTOCNode Title="mpf_cmp_si Method " Url="html/d9d29633-42c7-fb1c-cdee-3b7993f45653.htm" />
<HelpTOCNode Title="mpf_cmp_ui Method " Url="html/5a168ae0-405b-7259-0853-84999876c47a.htm" />
<HelpTOCNode Title="mpf_cmp_z Method " Url="html/5236d7a8-b79f-add8-4898-997e9d6a68bf.htm" />
<HelpTOCNode Title="mpf_div Method " Url="html/4e876639-72f5-7659-f4a9-862639e27e1c.htm" />
<HelpTOCNode Title="mpf_div_2exp Method " Url="html/352401d6-c6d1-29c1-a9f6-e5e0ed46bc86.htm" />
<HelpTOCNode Title="mpf_div_ui Method " Url="html/3985111a-6d13-b418-9c90-422a8e1e5b8b.htm" />
<HelpTOCNode Title="mpf_fits_sint_p Method " Url="html/5ea7691b-2a0f-5f25-290c-54c78e2cf3bd.htm" />
<HelpTOCNode Title="mpf_fits_slong_p Method " Url="html/6c178e2d-a080-13b8-75b0-3fe232b46d75.htm" />
<HelpTOCNode Title="mpf_fits_sshort_p Method " Url="html/142199e1-6aef-83d5-1986-1b1248ddc6e3.htm" />
<HelpTOCNode Title="mpf_fits_uint_p Method " Url="html/201b1b12-bb0c-6a53-c6d5-e75db73f8470.htm" />
<HelpTOCNode Title="mpf_fits_ulong_p Method " Url="html/d1b172bb-9c87-c255-a736-4b8ef1f6a5fe.htm" />
<HelpTOCNode Title="mpf_fits_ushort_p Method " Url="html/ada84e5e-397e-e963-7d50-e260d4a104f7.htm" />
<HelpTOCNode Title="mpf_floor Method " Url="html/f7584918-b77f-3524-eea2-04134a2c3ba6.htm" />
<HelpTOCNode Title="mpf_get_d Method " Url="html/648fa405-45d3-506a-f6be-72642e8a7f32.htm" />
<HelpTOCNode Title="mpf_get_d_2exp Method " Url="html/e1edc21e-74a0-b44c-216b-bad204b5a48a.htm" />
<HelpTOCNode Title="mpf_get_default_prec Method " Url="html/1ca4ec7e-b5d1-3b51-8341-5a345990e62d.htm" />
<HelpTOCNode Title="mpf_get_prec Method " Url="html/96c4a09e-3f83-00ab-30d0-78a82764b0ce.htm" />
<HelpTOCNode Title="mpf_get_si Method " Url="html/d948e832-ee71-628a-6a7b-766138afff62.htm" />
<HelpTOCNode Title="mpf_get_str Method " Url="html/bad56282-fbca-6e3b-03c8-085cff07eed8.htm" />
<HelpTOCNode Title="mpf_get_ui Method " Url="html/aa3fd0ea-a8b6-674b-59ff-b6d4785baed1.htm" />
<HelpTOCNode Title="mpf_init Method " Url="html/0dd846ac-56b6-3ea8-0441-12490f67fbf7.htm" />
<HelpTOCNode Title="mpf_init_set Method " Url="html/17b3dc26-68af-fb0c-9923-36777e8bd87e.htm" />
<HelpTOCNode Title="mpf_init_set_d Method " Url="html/a2c14761-1b23-0de9-3842-c2d4e3d7aac0.htm" />
<HelpTOCNode Title="mpf_init_set_si Method " Url="html/dc1406fd-4ca4-70d3-dc83-bd40b955564a.htm" />
<HelpTOCNode Title="mpf_init_set_str Method " Url="html/4e30a5e0-637b-949e-a627-387a56945f7b.htm" />
<HelpTOCNode Title="mpf_init_set_ui Method " Url="html/8d1b97c9-ef9d-303a-0fbe-e7ece7edf391.htm" />
<HelpTOCNode Title="mpf_init2 Method " Url="html/98083eac-9993-41b2-4943-678785fce712.htm" />
<HelpTOCNode Title="mpf_inits Method " Url="html/018278a0-148f-c898-5bd0-42aae4ae0069.htm" />
<HelpTOCNode Title="mpf_inp_str Method " Url="html/3a24f5bd-0b45-8164-f27b-c2e04e35ab64.htm" />
<HelpTOCNode Title="mpf_integer_p Method " Url="html/11a036ec-5052-7dc4-bdb6-10e5c92f88cc.htm" />
<HelpTOCNode Title="mpf_mul Method " Url="html/309e6a8c-1318-2d30-a058-f119193546a0.htm" />
<HelpTOCNode Title="mpf_mul_2exp Method " Url="html/2041c81e-218b-b514-5a7b-5ee315711bc9.htm" />
<HelpTOCNode Title="mpf_mul_ui Method " Url="html/99a405b5-c051-9905-cf57-7139a0e503cf.htm" />
<HelpTOCNode Title="mpf_neg Method " Url="html/357791cb-951d-5542-ff67-c00ef5e9aadb.htm" />
<HelpTOCNode Title="mpf_out_str Method " Url="html/feafa6f8-9793-d704-31a8-67c2cec0c33e.htm" />
<HelpTOCNode Title="mpf_pow_ui Method " Url="html/96e2fb95-0ac0-3d24-bea9-ee5631f30347.htm" />
<HelpTOCNode Title="mpf_random2 Method " Url="html/cc6e8f51-f396-f6c3-c6e4-9a9aeeaf2a13.htm" />
<HelpTOCNode Title="mpf_reldiff Method " Url="html/f485faa1-3758-8316-f712-42e0fc2058a8.htm" />
<HelpTOCNode Title="mpf_set Method " Url="html/3a025035-e715-0a3d-8d2d-6011430c9463.htm" />
<HelpTOCNode Title="mpf_set_d Method " Url="html/1d0c5734-9f0d-ec6b-c540-4379f832b0ca.htm" />
<HelpTOCNode Title="mpf_set_default_prec Method " Url="html/9e93d02e-f5c7-1a6f-68fe-a33d793a93e2.htm" />
<HelpTOCNode Title="mpf_set_prec Method " Url="html/438e6843-fc7b-4e6f-9ac0-d97a2773b032.htm" />
<HelpTOCNode Title="mpf_set_prec_raw Method " Url="html/b456f637-83f4-9d4f-18c5-052d77fbf981.htm" />
<HelpTOCNode Title="mpf_set_q Method " Url="html/bd669b1e-a941-2e35-7c29-29a5b5ff5e3a.htm" />
<HelpTOCNode Title="mpf_set_si Method " Url="html/f059f8e4-dfc8-79fe-6455-42e227ccbc2e.htm" />
<HelpTOCNode Title="mpf_set_str Method " Url="html/823b356e-0731-c9ca-0b37-660b6eb9ee7c.htm" />
<HelpTOCNode Title="mpf_set_ui Method " Url="html/060aa73e-8c00-0a6b-f569-ad198c4f0d90.htm" />
<HelpTOCNode Title="mpf_set_z Method " Url="html/d60489f8-91f8-ea00-d29c-a52449e712da.htm" />
<HelpTOCNode Title="mpf_sgn Method " Url="html/d229629f-3bba-817b-d9a3-6f00271e1da7.htm" />
<HelpTOCNode Title="mpf_size Method " Url="html/4c81a27a-206c-e5da-44e9-0ac7767b3366.htm" />
<HelpTOCNode Title="mpf_sqrt Method " Url="html/00a7e91d-b046-f5d3-5b51-55868d87e228.htm" />
<HelpTOCNode Title="mpf_sqrt_ui Method " Url="html/44e6038b-2e97-b53d-0d46-ce1fff3522d0.htm" />
<HelpTOCNode Title="mpf_sub Method " Url="html/718e7623-d25b-8a09-2543-745f24cd82c1.htm" />
<HelpTOCNode Title="mpf_sub_ui Method " Url="html/ca339303-b509-db06-c875-3aac3edec5dd.htm" />
<HelpTOCNode Title="mpf_swap Method " Url="html/b77c0292-518a-64d8-4b4e-0dd3c0cb801f.htm" />
<HelpTOCNode Title="mpf_trunc Method " Url="html/3ac2ecd4-f154-de62-9170-b2d28f362a7e.htm" />
<HelpTOCNode Title="mpf_ui_div Method " Url="html/34a39f93-359c-526f-c9ad-cd7558968f1e.htm" />
<HelpTOCNode Title="mpf_ui_sub Method " Url="html/efbe678f-e1f3-b203-eb36-0db03ba11795.htm" />
<HelpTOCNode Title="mpf_urandomb Method " Url="html/5a698221-639e-333b-061b-0aa3f76c38e9.htm" />
<HelpTOCNode Title="mpn_add Method " Url="html/b9df04c4-224e-f2ad-8e90-fbb3b30bd76d.htm" />
<HelpTOCNode Title="mpn_add_1 Method " Url="html/5562b14f-48a4-be75-2eb0-6a129cd0d5ab.htm" />
<HelpTOCNode Title="mpn_add_n Method " Url="html/339edb73-5781-7d73-97b6-9b73451a698f.htm" />
<HelpTOCNode Title="mpn_addmul_1 Method " Url="html/77fdf32b-986d-4df3-3c76-022e3e3fbb98.htm" />
<HelpTOCNode Title="mpn_and_n Method " Url="html/69ffabc9-a19c-6590-d918-fbf0710aff82.htm" />
<HelpTOCNode Title="mpn_andn_n Method " Url="html/b8b6d088-3330-5073-dc17-18ea23b0fc14.htm" />
<HelpTOCNode Title="mpn_cmp Method " Url="html/4fcc5434-e328-6730-f46e-bd0823ec7560.htm" />
<HelpTOCNode Title="mpn_cnd_add_n Method " Url="html/27902901-3a7d-b5b3-d3fc-3900f754bff1.htm" />
<HelpTOCNode Title="mpn_cnd_sub_n Method " Url="html/b82bad6a-f8f0-db53-a6d3-ed6002046257.htm" />
<HelpTOCNode Title="mpn_cnd_swap Method " Url="html/f0985ccc-17da-8a0b-066c-53df9b1921a1.htm" />
<HelpTOCNode Title="mpn_com Method " Url="html/6f0c915a-514a-fce0-957b-50180f4b79a7.htm" />
<HelpTOCNode Title="mpn_copyd Method " Url="html/78443f19-f0c6-4a1f-1eed-a815b734e981.htm" />
<HelpTOCNode Title="mpn_copyi Method " Url="html/00d8413a-b34b-5e89-193c-1bfe522710c5.htm" />
<HelpTOCNode Title="mpn_divexact_1 Method " Url="html/1d6343a5-d42c-c362-714e-e10730e6a6d5.htm" />
<HelpTOCNode Title="mpn_divexact_by3 Method " Url="html/75f2a84e-44f3-b7cc-e6ad-392111d5b9cc.htm" />
<HelpTOCNode Title="mpn_divexact_by3c Method " Url="html/c40ea3de-d1be-146b-fe7a-deff566ca817.htm" />
<HelpTOCNode Title="mpn_divmod_1 Method " Url="html/9074a45b-0d68-cf18-75fe-076e720a9a61.htm" />
<HelpTOCNode Title="mpn_divrem_1 Method " Url="html/f5c3f25d-1ad5-b3be-fc4b-280a62869912.htm" />
<HelpTOCNode Title="mpn_gcd Method " Url="html/24ecd2d5-422f-e538-fd43-94b749652393.htm" />
<HelpTOCNode Title="mpn_gcd_1 Method " Url="html/64373933-f98b-74b4-c10f-3b1a98c410bc.htm" />
<HelpTOCNode Title="mpn_gcdext Method " Url="html/746d102a-5f3e-6142-b02a-63f3cac385ab.htm" />
<HelpTOCNode Title="mpn_get_str Method " Url="html/1e9cacd7-32b3-7f3b-659a-efdb3e064092.htm" />
<HelpTOCNode Title="mpn_hamdist Method " Url="html/caf28774-7b13-0802-858c-a49970d7aa55.htm" />
<HelpTOCNode Title="mpn_ior_n Method " Url="html/f4c54e3b-1c09-d01d-eb28-b7b05cf6fa70.htm" />
<HelpTOCNode Title="mpn_iorn_n Method " Url="html/1b76ffd8-d7f4-5309-3b10-e7e0c418706a.htm" />
<HelpTOCNode Title="mpn_lshift Method " Url="html/b52f3ab3-7ad3-7dde-14a2-83c81840b829.htm" />
<HelpTOCNode Title="mpn_mod_1 Method " Url="html/9aa24cc8-8cf5-4b8a-cd1b-5ded400efa50.htm" />
<HelpTOCNode Title="mpn_mul Method " Url="html/68d3161d-2909-1909-cda7-e87949ee27ce.htm" />
<HelpTOCNode Title="mpn_mul_1 Method " Url="html/b819fb3b-5d3e-ff23-1687-0e71af684bd7.htm" />
<HelpTOCNode Title="mpn_mul_n Method " Url="html/ee321a9a-852a-993e-f602-72ff2af02ff6.htm" />
<HelpTOCNode Title="mpn_nand_n Method " Url="html/a7d1fd40-0415-b4af-1787-706d245ff96e.htm" />
<HelpTOCNode Title="mpn_neg Method " Url="html/9fb96802-e56e-8fd8-cef2-b44870d09a10.htm" />
<HelpTOCNode Title="mpn_nior_n Method " Url="html/c7d8bbe3-23cd-3460-be24-3a3ac3b28cf4.htm" />
<HelpTOCNode Title="mpn_perfect_power_p Method " Url="html/61401484-d06f-ab9e-110d-b46f4d0a9eba.htm" />
<HelpTOCNode Title="mpn_perfect_square_p Method " Url="html/a5dfd9bc-f86b-8a3b-69fc-8d2d5dea30ae.htm" />
<HelpTOCNode Title="mpn_popcount Method " Url="html/3bd9de08-5768-bb79-1e09-2953ae1483aa.htm" />
<HelpTOCNode Title="mpn_random Method " Url="html/6d4f993a-1fd6-9db2-c0a7-0f3926863565.htm" />
<HelpTOCNode Title="mpn_random2 Method " Url="html/06d850ef-82b2-56f1-32ae-2f1724da3d5b.htm" />
<HelpTOCNode Title="mpn_rshift Method " Url="html/bb46ebe4-c002-8769-19ed-136a86e87134.htm" />
<HelpTOCNode Title="mpn_scan0 Method " Url="html/ae66c86a-cc34-81be-2a38-e841e8a36f43.htm" />
<HelpTOCNode Title="mpn_scan1 Method " Url="html/95c5a467-0bfe-337e-f6ca-657cf8c19eb1.htm" />
<HelpTOCNode Title="mpn_sec_add_1 Method " Url="html/1555cd52-98d2-6253-214a-d342a539bfb5.htm" />
<HelpTOCNode Title="mpn_sec_add_1_itch Method " Url="html/87bbc39f-b11a-76d9-f31d-f5dcf365a67d.htm" />
<HelpTOCNode Title="mpn_sec_div_qr Method " Url="html/6f1dca2b-39f4-3acd-71fb-4f1e5a0d04e6.htm" />
<HelpTOCNode Title="mpn_sec_div_qr_itch Method " Url="html/b9e1a8f8-5156-ca69-337b-e67c2fd851f7.htm" />
<HelpTOCNode Title="mpn_sec_div_r Method " Url="html/094ea390-8cc8-bac7-35c3-3616775736de.htm" />
<HelpTOCNode Title="mpn_sec_div_r_itch Method " Url="html/1cefa5f6-adc3-30a6-b3bd-cb6a7543cb00.htm" />
<HelpTOCNode Title="mpn_sec_invert Method " Url="html/62ffb793-b32f-e0dc-a399-f20fe708a803.htm" />
<HelpTOCNode Title="mpn_sec_invert_itch Method " Url="html/ec24a122-714e-5b6f-9872-95fd5fda54ea.htm" />
<HelpTOCNode Title="mpn_sec_mul Method " Url="html/028e92d4-3699-77ff-e8da-9ff4c367f5b3.htm" />
<HelpTOCNode Title="mpn_sec_mul_itch Method " Url="html/b07466c5-6249-332d-e89b-aeb3675970ff.htm" />
<HelpTOCNode Title="mpn_sec_powm Method " Url="html/a38b87c5-c6ac-fa68-6d58-c45793bf933e.htm" />
<HelpTOCNode Title="mpn_sec_powm_itch Method " Url="html/96652cce-b8f1-0b9e-8434-19cf9bb3eb29.htm" />
<HelpTOCNode Title="mpn_sec_sqr Method " Url="html/bfe1e9b5-6fc1-95f2-d5b6-137fe87c071a.htm" />
<HelpTOCNode Title="mpn_sec_sqr_itch Method " Url="html/1ba86b5b-8ace-b6ee-99c5-32a8d7648519.htm" />
<HelpTOCNode Title="mpn_sec_sub_1 Method " Url="html/9137a632-abd2-7963-1991-85e6d753bf13.htm" />
<HelpTOCNode Title="mpn_sec_sub_1_itch Method " Url="html/098c8787-2069-5d1e-a2f9-1f78bdcd60a9.htm" />
<HelpTOCNode Title="mpn_sec_tabselect Method " Url="html/3588cf60-567a-6182-20e8-5e2836498f49.htm" />
<HelpTOCNode Title="mpn_set_str Method " Url="html/9a68645a-d8d6-f4c1-f706-0dc217f9809a.htm" />
<HelpTOCNode Title="mpn_sizeinbase Method " Url="html/fb2d29b4-f7e2-e3d6-6fcb-920f2e86c0d7.htm" />
<HelpTOCNode Title="mpn_sqr Method " Url="html/ff9c2930-ded2-c5b6-46dd-3ff9279cdc5e.htm" />
<HelpTOCNode Title="mpn_sqrtrem Method " Url="html/ee31871c-38bd-fccc-77f5-e76909dd7a79.htm" />
<HelpTOCNode Title="mpn_sub Method " Url="html/87681f32-b766-3ce2-7c08-98b2d32cb5fa.htm" />
<HelpTOCNode Title="mpn_sub_1 Method " Url="html/ae3c6cf7-08a0-54dd-951f-b2fe2112b8b0.htm" />
<HelpTOCNode Title="mpn_sub_n Method " Url="html/b104184e-cf49-dbdb-764a-9dee5cf7b2fd.htm" />
<HelpTOCNode Title="mpn_submul_1 Method " Url="html/95e10fea-31c2-e900-c5b0-f48636e1d76e.htm" />
<HelpTOCNode Title="mpn_tdiv_qr Method " Url="html/9fe90631-f519-1cf3-5a20-701d2bae1d0d.htm" />
<HelpTOCNode Title="mpn_xnor_n Method " Url="html/25d623c3-ee22-4b83-1161-3f98ce698012.htm" />
<HelpTOCNode Title="mpn_xor_n Method " Url="html/0f01fecd-9200-982d-c331-c213f3b960a1.htm" />
<HelpTOCNode Title="mpn_zero Method " Url="html/90a57214-6596-be63-31e7-aa3186252628.htm" />
<HelpTOCNode Title="mpn_zero_p Method " Url="html/2e469258-d5e3-da86-aebe-025b92d7cf73.htm" />
<HelpTOCNode Title="mpq_abs Method " Url="html/1f2250c3-a1b8-db12-19e4-9946e39eb64c.htm" />
<HelpTOCNode Title="mpq_add Method " Url="html/ca6a2024-43ea-fb4e-245e-12e2e01e4ebd.htm" />
<HelpTOCNode Title="mpq_canonicalize Method " Url="html/19d53697-65f1-2df5-62f3-988182af0c88.htm" />
<HelpTOCNode Title="mpq_clear Method " Url="html/b69da354-160b-602a-4cc4-faf7ca423186.htm" />
<HelpTOCNode Title="mpq_clears Method " Url="html/cc2693e9-1cc5-3098-f2f7-bb05c8017f62.htm" />
<HelpTOCNode Title="mpq_cmp Method " Url="html/3f29d5f4-13ae-cec8-ea75-6a76d00d10fc.htm" />
<HelpTOCNode Title="mpq_cmp_si Method " Url="html/43cb2c87-9fab-eb9d-2f7a-140d72af7b15.htm" />
<HelpTOCNode Title="mpq_cmp_ui Method " Url="html/03336561-2bb9-b38f-8adb-506e0fad094b.htm" />
<HelpTOCNode Title="mpq_cmp_z Method " Url="html/bc33b7de-0deb-669e-0bb7-6cd1090f4aea.htm" />
<HelpTOCNode Title="mpq_denref Method " Url="html/2d93abcb-e73f-fe40-a50b-395a0bf6a4fc.htm" />
<HelpTOCNode Title="mpq_div Method " Url="html/433b0777-4514-5b20-7494-f0f2746fe8e5.htm" />
<HelpTOCNode Title="mpq_div_2exp Method " Url="html/8dc5397d-96e4-74dd-cd31-0d05649ea927.htm" />
<HelpTOCNode Title="mpq_equal Method " Url="html/7828ce92-079b-da4d-aab2-1742209287fb.htm" />
<HelpTOCNode Title="mpq_get_d Method " Url="html/f88b40d4-3da9-e2c7-4c4c-1ad868778075.htm" />
<HelpTOCNode Title="mpq_get_den Method " Url="html/ae9e468d-e9ce-db55-1964-433829dfa476.htm" />
<HelpTOCNode Title="mpq_get_num Method " Url="html/4f98333c-76a2-db46-cbba-97785a449450.htm" />
<HelpTOCNode Title="mpq_get_str Method " Url="html/f457878b-c3f5-bfe2-aaa9-7f2179332f57.htm" />
<HelpTOCNode Title="mpq_init Method " Url="html/dbf3d252-fd6d-455f-2ba7-4091845b86a7.htm" />
<HelpTOCNode Title="mpq_inits Method " Url="html/8ab8ea40-9723-f0c8-18f4-9558c73397b9.htm" />
<HelpTOCNode Title="mpq_inp_str Method " Url="html/38d3a9de-bae7-3f44-18e0-38fe450d4cba.htm" />
<HelpTOCNode Title="mpq_inv Method " Url="html/3b01109c-5b01-16d2-edd0-5ac3d5514930.htm" />
<HelpTOCNode Title="mpq_mul Method " Url="html/584834ae-b1f7-d965-2586-f88d5c9b4f67.htm" />
<HelpTOCNode Title="mpq_mul_2exp Method " Url="html/f148f8be-dfbc-fc41-981d-0a99834f01ff.htm" />
<HelpTOCNode Title="mpq_neg Method " Url="html/b6bd5187-99bb-c6b5-d871-b163fa0f7e0e.htm" />
<HelpTOCNode Title="mpq_numref Method " Url="html/a4c2958c-5957-d736-6883-ce7e76b3d7a4.htm" />
<HelpTOCNode Title="mpq_out_str Method " Url="html/e1c059c4-4cd9-9a2b-1178-4b1a60354129.htm" />
<HelpTOCNode Title="mpq_set Method " Url="html/9eac8ea9-0821-09b2-8091-e6638c562c7f.htm" />
<HelpTOCNode Title="mpq_set_d Method " Url="html/1a7c5874-9132-2c43-e407-df1eead74fab.htm" />
<HelpTOCNode Title="mpq_set_den Method " Url="html/52388f4c-575a-9b13-41a6-e7ec2bd0becd.htm" />
<HelpTOCNode Title="mpq_set_f Method " Url="html/f5dc74ec-155b-2a14-3eb5-4610a8509bae.htm" />
<HelpTOCNode Title="mpq_set_num Method " Url="html/6885ad71-c185-1e0c-abc8-4320e12f377a.htm" />
<HelpTOCNode Title="mpq_set_si Method " Url="html/ba898f37-20d0-a5cd-eff1-0663f18220dd.htm" />
<HelpTOCNode Title="mpq_set_str Method " Url="html/e98ec3cf-b539-8024-c401-ecd24bd43662.htm" />
<HelpTOCNode Title="mpq_set_ui Method " Url="html/915a7958-6821-bb64-468f-b0b48b351878.htm" />
<HelpTOCNode Title="mpq_set_z Method " Url="html/84d256a1-cd11-3bf9-3e8c-8a7e1980315d.htm" />
<HelpTOCNode Title="mpq_sgn Method " Url="html/1176cc4e-ffda-2993-1a4a-2e0c7ed24adb.htm" />
<HelpTOCNode Title="mpq_sub Method " Url="html/e7d65cf6-2ee4-c983-62b5-4ad66f1d8599.htm" />
<HelpTOCNode Title="mpq_swap Method " Url="html/11e36fbc-ffc4-46df-50b7-2b07684c1755.htm" />
<HelpTOCNode Title="mpz_2fac_ui Method " Url="html/d479f2da-ecf9-c9d6-5cc7-66eb8b5ba16b.htm" />
<HelpTOCNode Title="mpz_abs Method " Url="html/9761cc8e-6099-7a76-5ea6-d27f617fd5d1.htm" />
<HelpTOCNode Title="mpz_add Method " Url="html/acb6d3d4-70ad-58be-7cb8-9edb997204b3.htm" />
<HelpTOCNode Title="mpz_add_ui Method " Url="html/7327aa92-1ab5-7553-7eee-7b5e3e61322a.htm" />
<HelpTOCNode Title="mpz_addmul Method " Url="html/582a0647-1482-ecd7-cc78-bd2222610e06.htm" />
<HelpTOCNode Title="mpz_addmul_ui Method " Url="html/4e93c4c4-d799-2828-5285-8a3f3ed02ad3.htm" />
<HelpTOCNode Title="mpz_and Method " Url="html/3e5268ed-796b-2880-93a3-8d17143f99b1.htm" />
<HelpTOCNode Title="mpz_bin_ui Method " Url="html/cbbdf666-7c6c-f3f3-1790-b5bb1655af87.htm" />
<HelpTOCNode Title="mpz_bin_uiui Method " Url="html/402dc8d2-32bd-59ad-80f3-4bd2cc000b0d.htm" />
<HelpTOCNode Title="mpz_cdiv_q Method " Url="html/8b1e9c27-7278-6032-80c0-015b93258d96.htm" />
<HelpTOCNode Title="mpz_cdiv_q_2exp Method " Url="html/a4def6d8-f8a5-f76f-4ef0-3e6e7eec23fb.htm" />
<HelpTOCNode Title="mpz_cdiv_q_ui Method " Url="html/05b3707d-5f48-4d76-c42a-566f3179d7f8.htm" />
<HelpTOCNode Title="mpz_cdiv_qr Method " Url="html/7f89c102-d1eb-2dab-0e6e-061893309c4b.htm" />
<HelpTOCNode Title="mpz_cdiv_qr_ui Method " Url="html/7aee9fae-9d14-72be-6d0f-0f9c4a863fe5.htm" />
<HelpTOCNode Title="mpz_cdiv_r Method " Url="html/e8f34851-d0b2-335e-1ea5-f9129062aabf.htm" />
<HelpTOCNode Title="mpz_cdiv_r_2exp Method " Url="html/8320e5d8-1df9-ca26-3054-e4b93cc0f616.htm" />
<HelpTOCNode Title="mpz_cdiv_r_ui Method " Url="html/af797947-8f84-320e-d1cd-ba578b26cef3.htm" />
<HelpTOCNode Title="mpz_cdiv_ui Method " Url="html/290eb509-85df-a0cc-86f8-ac4e6f5d730a.htm" />
<HelpTOCNode Title="mpz_clear Method " Url="html/551f8670-3080-9a92-cd50-58d09cbf77ef.htm" />
<HelpTOCNode Title="mpz_clears Method " Url="html/a909faa8-4939-1ba3-5647-af8836c9a291.htm" />
<HelpTOCNode Title="mpz_clrbit Method " Url="html/8812c658-675a-b564-9159-2383971747b1.htm" />
<HelpTOCNode Title="mpz_cmp Method " Url="html/eea958f4-5951-38f2-05ba-3870cefb3842.htm" />
<HelpTOCNode Title="mpz_cmp_d Method " Url="html/bb37470f-5f40-4f6d-01d9-4e40446782a3.htm" />
<HelpTOCNode Title="mpz_cmp_si Method " Url="html/2e55f6fd-0083-fc85-0d42-65e472376dbe.htm" />
<HelpTOCNode Title="mpz_cmp_ui Method " Url="html/bfe022c5-95d3-45d7-0c6f-97167a9a0af2.htm" />
<HelpTOCNode Title="mpz_cmpabs Method " Url="html/3e06d348-8a15-691d-5889-ab3f1a4c9f73.htm" />
<HelpTOCNode Title="mpz_cmpabs_d Method " Url="html/011efd01-e7f0-47d8-7d1e-77888d96f0d4.htm" />
<HelpTOCNode Title="mpz_cmpabs_ui Method " Url="html/05f897c4-77dc-7735-81ca-65650f61d961.htm" />
<HelpTOCNode Title="mpz_com Method " Url="html/635ddf01-9c52-0d37-202e-c560b895fb7d.htm" />
<HelpTOCNode Title="mpz_combit Method " Url="html/4a959468-7670-9303-a5e7-3f1de8f17a62.htm" />
<HelpTOCNode Title="mpz_congruent_2exp_p Method " Url="html/4b6a07f8-2a61-d1a3-7192-f2907292bf2a.htm" />
<HelpTOCNode Title="mpz_congruent_p Method " Url="html/2ff1eb0a-f399-2ad2-f7d1-3fb51dceac10.htm" />
<HelpTOCNode Title="mpz_congruent_ui_p Method " Url="html/3eae225a-8db3-3b14-d862-03718f3a5548.htm" />
<HelpTOCNode Title="mpz_divexact Method " Url="html/2ddc32dc-4ee3-18e9-dd3d-7e64c3304e1e.htm" />
<HelpTOCNode Title="mpz_divexact_ui Method " Url="html/3ddee65c-a067-79a3-968d-31f3d585db3b.htm" />
<HelpTOCNode Title="mpz_divisible_2exp_p Method " Url="html/4f821e78-facb-4ea2-ab21-62d1f5049e68.htm" />
<HelpTOCNode Title="mpz_divisible_p Method " Url="html/4bafc7fe-d2a8-7cf2-b9b8-c296550b4ef2.htm" />
<HelpTOCNode Title="mpz_divisible_ui_p Method " Url="html/6c026976-a6c9-6f12-6b31-c113166ea236.htm" />
<HelpTOCNode Title="mpz_even_p Method " Url="html/e6012778-c71b-b078-2ef3-9f9db90f1769.htm" />
<HelpTOCNode Title="mpz_export Method " Url="html/c9d371c8-8c16-77a3-2c47-8edae05276c5.htm" />
<HelpTOCNode Title="mpz_fac_ui Method " Url="html/17280f99-d0dc-6714-12c7-be17c97c0cdb.htm" />
<HelpTOCNode Title="mpz_fdiv_q Method " Url="html/b0d00a52-e539-c5f7-7d6d-ab202e72ad98.htm" />
<HelpTOCNode Title="mpz_fdiv_q_2exp Method " Url="html/f56c5489-8c01-a687-fec8-a5f443738701.htm" />
<HelpTOCNode Title="mpz_fdiv_q_ui Method " Url="html/0dcf05e1-ec39-5294-c4d0-d8e0f92642e4.htm" />
<HelpTOCNode Title="mpz_fdiv_qr Method " Url="html/d9ab5220-69aa-8e5d-8d15-375eb27149ad.htm" />
<HelpTOCNode Title="mpz_fdiv_qr_ui Method " Url="html/452a9316-f421-a65c-a9ba-254b201dc431.htm" />
<HelpTOCNode Title="mpz_fdiv_r Method " Url="html/5dfc0ea9-a81f-bda9-356c-034395ba3c9c.htm" />
<HelpTOCNode Title="mpz_fdiv_r_2exp Method " Url="html/b0f120a7-a215-fbff-1138-bac5df8d741c.htm" />
<HelpTOCNode Title="mpz_fdiv_r_ui Method " Url="html/772064e8-3ec1-840e-c79c-78f478321b6c.htm" />
<HelpTOCNode Title="mpz_fdiv_ui Method " Url="html/8435af1d-e5e4-3e55-1024-449ff7b56ad4.htm" />
<HelpTOCNode Title="mpz_fib_ui Method " Url="html/71884691-07d0-7bdf-c761-df9b07723735.htm" />
<HelpTOCNode Title="mpz_fib2_ui Method " Url="html/c0f8ab02-55db-8a6b-705d-6fa700d54545.htm" />
<HelpTOCNode Title="mpz_fits_sint_p Method " Url="html/a066df5a-c312-3b00-6092-6f914c3ee248.htm" />
<HelpTOCNode Title="mpz_fits_slong_p Method " Url="html/cad028df-c3f1-12b6-d8dd-56c4968730e4.htm" />
<HelpTOCNode Title="mpz_fits_sshort_p Method " Url="html/e07f3328-a28c-c75c-10a6-f21d05e6aec0.htm" />
<HelpTOCNode Title="mpz_fits_uint_p Method " Url="html/3ce0cc26-e888-90f8-a517-aad88332eec0.htm" />
<HelpTOCNode Title="mpz_fits_ulong_p Method " Url="html/fb9e7caf-b049-7884-b70c-185053972604.htm" />
<HelpTOCNode Title="mpz_fits_ushort_p Method " Url="html/6b85c6a3-d6c5-d1d2-829a-af000bae687e.htm" />
<HelpTOCNode Title="mpz_gcd Method " Url="html/4e14cfc4-6f8b-14f7-74df-2f4415ce6f1c.htm" />
<HelpTOCNode Title="mpz_gcd_ui Method " Url="html/88b8d333-9c9c-de7d-8131-6d1432c14a0c.htm" />
<HelpTOCNode Title="mpz_gcdext Method " Url="html/fae08c47-86df-9010-1827-a9fa6e48a1af.htm" />
<HelpTOCNode Title="mpz_get_d Method " Url="html/89d8c501-6c12-9104-7e2d-be411f443b62.htm" />
<HelpTOCNode Title="mpz_get_d_2exp Method " Url="html/74e22b4c-fa79-f5f9-b752-da41bd427f37.htm" />
<HelpTOCNode Title="mpz_get_si Method " Url="html/da585eac-be2c-38ea-8be5-90c5be95ae86.htm" />
<HelpTOCNode Title="mpz_get_str Method " Url="html/54c1f778-6fc8-0056-6f25-26f6754645fb.htm" />
<HelpTOCNode Title="mpz_get_ui Method " Url="html/3a92eddc-59f3-b42f-9921-4e1cc5700d60.htm" />
<HelpTOCNode Title="mpz_getlimbn Method " Url="html/1dfbf5da-f4c2-bbab-5708-3b31d40e4f16.htm" />
<HelpTOCNode Title="mpz_hamdist Method " Url="html/4dfb8bd5-8a6f-6919-7aa9-8c060d42b5d7.htm" />
<HelpTOCNode Title="mpz_import Method " Url="html/8c8c1e55-275f-cff8-2152-883a4eaa163c.htm" />
<HelpTOCNode Title="mpz_init Method " Url="html/dc2f13ec-ac21-1196-0a1d-c574578b1f24.htm" />
<HelpTOCNode Title="mpz_init_set Method " Url="html/2c37941c-dee7-0d74-7889-3fa6c20bab6a.htm" />
<HelpTOCNode Title="mpz_init_set_d Method " Url="html/fec3a449-96b9-64b0-f53d-0b5a3856d02d.htm" />
<HelpTOCNode Title="mpz_init_set_si Method " Url="html/9cbc8594-a202-86fd-f4e8-22635ba952b5.htm" />
<HelpTOCNode Title="mpz_init_set_str Method " Url="html/d5af3442-ab5b-08e2-9398-0b6f04506c16.htm" />
<HelpTOCNode Title="mpz_init_set_ui Method " Url="html/7da3b40f-ae2c-63c5-0157-9b51d54cf6cb.htm" />
<HelpTOCNode Title="mpz_init2 Method " Url="html/5cd3a242-93b7-49c5-b9c9-1dca02ed4662.htm" />
<HelpTOCNode Title="mpz_inits Method " Url="html/de0b7cf7-1826-55f3-379d-41a6ef2d0991.htm" />
<HelpTOCNode Title="mpz_inp_raw Method " Url="html/44097b06-123a-4c00-b17f-ab0c70ad78bb.htm" />
<HelpTOCNode Title="mpz_inp_str Method " Url="html/8b8d6ec1-3ae5-e6f3-f030-289abe5002d0.htm" />
<HelpTOCNode Title="mpz_invert Method " Url="html/e3072efb-05a9-947c-5532-6d806c157e4a.htm" />
<HelpTOCNode Title="mpz_ior Method " Url="html/0ccb1bab-4817-1062-242d-41c181cacf77.htm" />
<HelpTOCNode Title="mpz_jacobi Method " Url="html/38be0c24-42ac-e0ea-9e18-e75e3bda2a1e.htm" />
<HelpTOCNode Title="mpz_kronecker Method " Url="html/54ba330f-67d3-fa30-2d5f-0480b7f4659c.htm" />
<HelpTOCNode Title="mpz_kronecker_si Method " Url="html/0252e04b-b8fc-5a06-e1e2-a0cafbb44296.htm" />
<HelpTOCNode Title="mpz_kronecker_ui Method " Url="html/07613c31-7d00-9806-1676-55f8c5a997f8.htm" />
<HelpTOCNode Title="mpz_lcm Method " Url="html/db614763-a13e-6456-d52b-9f567be7e776.htm" />
<HelpTOCNode Title="mpz_lcm_ui Method " Url="html/f60dbcbd-d4f0-edcc-8f88-2de1aa375e6b.htm" />
<HelpTOCNode Title="mpz_legendre Method " Url="html/b5936979-01aa-1cd8-20de-d6386368e234.htm" />
<HelpTOCNode Title="mpz_limbs_finish Method " Url="html/398e3eb8-0f55-086f-a765-0a8b3c9307e0.htm" />
<HelpTOCNode Title="mpz_limbs_modify Method " Url="html/87f5432d-aacb-57b6-b4a7-e4dc803684a4.htm" />
<HelpTOCNode Title="mpz_limbs_read Method " Url="html/4b08344c-f506-a717-4e1d-112cd19f5286.htm" />
<HelpTOCNode Title="mpz_limbs_write Method " Url="html/86ddbf69-57f6-af58-bd13-3eca06123b29.htm" />
<HelpTOCNode Title="mpz_lucnum_ui Method " Url="html/a48d50bf-0432-7feb-cc41-d6bf70f78e58.htm" />
<HelpTOCNode Title="mpz_lucnum2_ui Method " Url="html/0cdaca8f-816e-8c22-f46b-fcf58e9e91d4.htm" />
<HelpTOCNode Title="mpz_mfac_uiui Method " Url="html/b4ff3a9e-3ab5-689f-7a80-b61dad2ea125.htm" />
<HelpTOCNode Title="mpz_millerrabin Method " Url="html/f0bda1a7-4b40-0896-4939-4dc66b256424.htm" />
<HelpTOCNode Title="mpz_mod Method " Url="html/8d141ae9-4a01-bdc9-caf3-8daba3321ac1.htm" />
<HelpTOCNode Title="mpz_mod_ui Method " Url="html/86fd57d1-ccfa-804e-760b-bd8e7ade2176.htm" />
<HelpTOCNode Title="mpz_mul Method " Url="html/3523bf0e-75ec-6286-76a0-4685198e51f6.htm" />
<HelpTOCNode Title="mpz_mul_2exp Method " Url="html/18cd39f5-7c88-f557-3803-8a4a321cfb97.htm" />
<HelpTOCNode Title="mpz_mul_si Method " Url="html/ffd27ee1-e1e3-567f-b3cf-87dec2de2c83.htm" />
<HelpTOCNode Title="mpz_mul_ui Method " Url="html/5fba9944-4437-9b1c-afa0-666d87eafe39.htm" />
<HelpTOCNode Title="mpz_neg Method " Url="html/5a61d62c-a0f0-5e86-b6dd-8ca6414b35ed.htm" />
<HelpTOCNode Title="mpz_nextprime Method " Url="html/88f2d84b-105b-f882-ac55-54a2b6aea39d.htm" />
<HelpTOCNode Title="mpz_odd_p Method " Url="html/6820d6c4-6ee1-53d7-7223-3f654a496ce4.htm" />
<HelpTOCNode Title="mpz_out_raw Method " Url="html/053b54b6-f646-f0aa-ddaf-00c494a6d5ef.htm" />
<HelpTOCNode Title="mpz_out_str Method " Url="html/6f85986d-b6a0-435d-3675-c025ef70413d.htm" />
<HelpTOCNode Title="mpz_perfect_power_p Method " Url="html/d7722641-e3ea-336d-63f3-dc48f786e376.htm" />
<HelpTOCNode Title="mpz_perfect_square_p Method " Url="html/260d6edf-ce02-26f7-d704-ad0d11604e61.htm" />
<HelpTOCNode Title="mpz_popcount Method " Url="html/84bf95e4-d9d0-4ffe-f836-3650342de962.htm" />
<HelpTOCNode Title="mpz_pow_ui Method " Url="html/8e3a525d-9371-fb32-1051-e8e8fe23a63d.htm" />
<HelpTOCNode Title="mpz_powm Method " Url="html/9de702f4-758b-2a4e-1025-ed5e46cc7db2.htm" />
<HelpTOCNode Title="mpz_powm_sec Method " Url="html/93210ab6-2523-3130-044a-80bcf43c181d.htm" />
<HelpTOCNode Title="mpz_powm_ui Method " Url="html/9fd28088-e353-2b5e-03e3-9c2763226ed6.htm" />
<HelpTOCNode Title="mpz_primorial_ui Method " Url="html/985a65cd-9a65-e8b3-580b-626b65662dd6.htm" />
<HelpTOCNode Title="mpz_probab_prime_p Method " Url="html/52ce0428-7c09-f2b9-f517-d3d02521f365.htm" />
<HelpTOCNode Title="mpz_random Method " Url="html/2b0da39e-331c-878e-26c7-bd6d81c7f8e0.htm" />
<HelpTOCNode Title="mpz_random2 Method " Url="html/cd88d27d-fb03-9e74-e353-4f0df7a38a96.htm" />
<HelpTOCNode Title="mpz_realloc2 Method " Url="html/1de9b70a-1d21-8168-e41c-1c259f64091a.htm" />
<HelpTOCNode Title="mpz_remove Method " Url="html/d6721058-8a6f-9b20-2a5f-8ffd83cc2a2e.htm" />
<HelpTOCNode Title="mpz_roinit_n Method " Url="html/5786e0c6-2dde-406f-b86d-3df6757c80c0.htm" />
<HelpTOCNode Title="mpz_root Method " Url="html/279877e1-b8d0-f52c-16ba-b2e38e671437.htm" />
<HelpTOCNode Title="mpz_rootrem Method " Url="html/a637ce7e-54d7-eba9-0c6f-c237f115b621.htm" />
<HelpTOCNode Title="mpz_rrandomb Method " Url="html/4be917d3-47c6-cb58-d768-6276e78f0afb.htm" />
<HelpTOCNode Title="mpz_scan0 Method " Url="html/3e36be2b-14ed-eb7b-0546-af6d49e983fa.htm" />
<HelpTOCNode Title="mpz_scan1 Method " Url="html/480d1d15-b561-ac8f-b12a-f27ba075b3f2.htm" />
<HelpTOCNode Title="mpz_set Method " Url="html/3a4e6141-0771-f9ac-2283-5e9348f86d4a.htm" />
<HelpTOCNode Title="mpz_set_d Method " Url="html/8d6c39e2-22d8-d0ef-219c-dc594e73b2c5.htm" />
<HelpTOCNode Title="mpz_set_f Method " Url="html/9005bf40-4373-e879-9f0a-448b174aad67.htm" />
<HelpTOCNode Title="mpz_set_q Method " Url="html/f6eeca07-edf7-6915-36e4-e8a7a62333d7.htm" />
<HelpTOCNode Title="mpz_set_si Method " Url="html/1ffac718-d814-0556-ea54-dbf1d676e0cc.htm" />
<HelpTOCNode Title="mpz_set_str Method " Url="html/6a3819df-abc1-ceb1-a5c7-87a879977b8c.htm" />
<HelpTOCNode Title="mpz_set_ui Method " Url="html/7daadb71-9f36-2848-86c4-ba1fba25fcfd.htm" />
<HelpTOCNode Title="mpz_setbit Method " Url="html/f0caf821-320b-1a8b-87ff-84fcbdfd5801.htm" />
<HelpTOCNode Title="mpz_sgn Method " Url="html/86b2033c-26c3-3889-9025-b2a638910a86.htm" />
<HelpTOCNode Title="mpz_si_kronecker Method " Url="html/a248732b-c4be-7e9a-4207-0049371764ff.htm" />
<HelpTOCNode Title="mpz_size Method " Url="html/9a169dd9-42b0-ea59-abbe-4efc6b870c75.htm" />
<HelpTOCNode Title="mpz_sizeinbase Method " Url="html/7dfe367e-74d3-e782-860b-2314da9c44cf.htm" />
<HelpTOCNode Title="mpz_sqrt Method " Url="html/1e1204c7-2d33-c9d1-4f4e-c36215f5ebed.htm" />
<HelpTOCNode Title="mpz_sqrtrem Method " Url="html/e802af92-73bf-b138-dc95-a3c57eeefb66.htm" />
<HelpTOCNode Title="mpz_sub Method " Url="html/53702772-53e9-ec51-c3a5-7a1912b4f2b4.htm" />
<HelpTOCNode Title="mpz_sub_ui Method " Url="html/e3e3f2ce-f3d8-5321-37a5-de65b6c2a30d.htm" />
<HelpTOCNode Title="mpz_submul Method " Url="html/ce7d559a-3772-41c0-912f-9ab218f4d98c.htm" />
<HelpTOCNode Title="mpz_submul_ui Method " Url="html/c5a0fa06-536c-6c6f-20c7-fb014ebc6444.htm" />
<HelpTOCNode Title="mpz_swap Method " Url="html/90eada10-67d0-8376-0010-d053e5043b96.htm" />
<HelpTOCNode Title="mpz_tdiv_q Method " Url="html/4c830876-cdf6-9d94-1ceb-24d30f873bc2.htm" />
<HelpTOCNode Title="mpz_tdiv_q_2exp Method " Url="html/746301ec-352c-9bae-ff92-8a2ed31be655.htm" />
<HelpTOCNode Title="mpz_tdiv_q_ui Method " Url="html/67fc54a2-05e7-bc3c-64f4-8c6de48fa6b6.htm" />
<HelpTOCNode Title="mpz_tdiv_qr Method " Url="html/387ec1dd-15b3-4cc9-862a-e3f0a8e2cb78.htm" />
<HelpTOCNode Title="mpz_tdiv_qr_ui Method " Url="html/d5b95352-7b5e-881b-136a-b78fd8e033ff.htm" />
<HelpTOCNode Title="mpz_tdiv_r Method " Url="html/beb982a6-fa8e-6a0f-409a-bce1fddb6002.htm" />
<HelpTOCNode Title="mpz_tdiv_r_2exp Method " Url="html/c8216c67-1e74-82d0-6ca0-f24d07045ca8.htm" />
<HelpTOCNode Title="mpz_tdiv_r_ui Method " Url="html/a58b3e42-f5e9-42d3-e71a-2a6f68dec3a9.htm" />
<HelpTOCNode Title="mpz_tdiv_ui Method " Url="html/eea23315-8275-7472-44b0-94b9a05a6657.htm" />
<HelpTOCNode Title="mpz_tstbit Method " Url="html/20a476ea-9a38-9ef3-1e23-da2b2eba69a9.htm" />
<HelpTOCNode Title="mpz_ui_kronecker Method " Url="html/d9715b1a-6092-83e6-d7f3-6cfbb4adb143.htm" />
<HelpTOCNode Title="mpz_ui_pow_ui Method " Url="html/6101fda5-1230-66a9-5aff-5d8da426e364.htm" />
<HelpTOCNode Title="mpz_ui_sub Method " Url="html/8d80c2f9-de42-f223-595e-108f165d5746.htm" />
<HelpTOCNode Title="mpz_urandomb Method " Url="html/c5fc473c-b8dc-8053-4199-e80d58a05230.htm" />
<HelpTOCNode Title="mpz_urandomm Method " Url="html/981cfca4-f958-045f-84b7-01717fcd88d1.htm" />
<HelpTOCNode Title="mpz_xor Method " Url="html/fd4c285a-e2e1-f8ba-97b3-08d4ae6a2ebf.htm" />
<HelpTOCNode Title="reallocate Method " Url="html/067f64f9-7014-8c6a-3c02-153c1460a1dd.htm" />
<HelpTOCNode Title="ZeroMemory Method " Url="html/e3d53be6-a0ad-fb21-5381-ff688f5984a6.htm" />
</HelpTOCNode>
<HelpTOCNode Id="471e0b27-32cc-4739-91b9-cee3600b8d68" Title="gmp_lib Fields" Url="html/b4507d49-5a58-a25b-6ae3-ac7e599caab1.htm">
<HelpTOCNode Title="gmp_version Field" Url="html/3f1b2832-ff9c-cc4a-3e85-e2ee16acc69b.htm" />
<HelpTOCNode Title="mp_bits_per_limb Field" Url="html/f88c76a8-118a-5cbd-0df1-e30adcacb8ae.htm" />
<HelpTOCNode Title="mp_bytes_per_limb Field" Url="html/47695d57-9a89-48db-97c3-2ed03965d913.htm" />
<HelpTOCNode Title="mp_uint_per_limb Field" Url="html/af9533ce-5e67-245d-1cb3-9efb7772a6c8.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="e1ecf669-5b8d-4d50-872e-9fe6915eaf2b" Title="gmp_randstate_t Class" Url="html/f7e5846d-548d-3bf3-74ac-219fde42a041.htm">
<HelpTOCNode Title="gmp_randstate_t Constructor " Url="html/20a4edb9-f361-6367-9965-64b0f7aeddaa.htm" />
<HelpTOCNode Title="gmp_randstate_t Methods" Url="html/94df18f5-d7f6-b30a-5f00-f168e513840c.htm" />
</HelpTOCNode>
<HelpTOCNode Id="6a7730e1-7794-4e76-8c29-662bd3e53611" Title="mp_base Class" Url="html/8f3c572b-8133-bccc-b838-9d22e3467898.htm">
<HelpTOCNode Title="mp_base Constructor " Url="html/3e385e89-d6d3-27df-ec51-6580f6bea08b.htm" />
<HelpTOCNode Id="0235d514-4119-452b-bf38-e847f79c7d76" Title="mp_base Properties" Url="html/c65a20b0-ddd8-db62-1d34-19bf1a71ce8c.htm">
<HelpTOCNode Title="_mp_d Property " Url="html/db55f1a9-cd4c-b7e9-c831-4391c0497ef7.htm" />
<HelpTOCNode Title="_mp_size Property " Url="html/178d8d44-2485-2972-fe2f-eb9848059e6f.htm" />
</HelpTOCNode>
<HelpTOCNode Title="mp_base Methods" Url="html/dc319ce0-0560-799e-9187-8445d98b802b.htm" />
</HelpTOCNode>
<HelpTOCNode Id="7ba69908-b87b-433d-a79f-7b3065b53713" Title="mp_bitcnt_t Structure" Url="html/1b2b1d64-20c1-7a64-0278-d9ff58ee9cc3.htm">
<HelpTOCNode Title="mp_bitcnt_t Constructor " Url="html/5846cdbc-83b9-0197-aa29-fd226641eb76.htm" />
<HelpTOCNode Id="4c3d86ea-efc3-4456-bf83-078f55e38952" Title="mp_bitcnt_t Methods" Url="html/0968b601-ff25-497d-c2eb-28487c3d29cf.htm">
<HelpTOCNode Id="3e24b962-4277-4d6a-80af-437346fd0141" Title="Equals Method " Url="html/cfedc4a1-b264-82a8-cf48-a6416e4afce7.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/5b4fc57b-2ab5-9b95-6c35-ec9b499a6d59.htm" />
<HelpTOCNode Title="Equals Method (mp_bitcnt_t)" Url="html/306b1c06-9439-c811-b7b9-42777ca691e6.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/540dc183-f6ab-a0bb-d6ef-a08f5a464b78.htm" />
<HelpTOCNode Title="ToString Method " Url="html/0dd7a5d2-ab07-87dc-79d2-d9b361bc0a34.htm" />
</HelpTOCNode>
<HelpTOCNode Id="61c4f14e-a36b-4a6b-a4ca-40bda110e43b" Title="mp_bitcnt_t Operators and Type Conversions" Url="html/bee91f05-75c7-52c6-18ae-eb792710655d.htm">
<HelpTOCNode Title="Equality Operator " Url="html/c0825a57-1ba5-e1d1-3fa9-9c43008c1ada.htm" />
<HelpTOCNode Id="fd17c4b0-d98d-4e4a-b168-9cf65495681a" Title="Explicit Conversion Operators" Url="html/a2b35c8b-a71a-2e93-2f3b-cd5f8dcb51b4.htm">
<HelpTOCNode Title="Explicit Conversion (Int16 to mp_bitcnt_t)" Url="html/29b5075a-d6d3-6fe8-5125-d679317b1022.htm" />
<HelpTOCNode Title="Explicit Conversion (Int32 to mp_bitcnt_t)" Url="html/6ba37de9-82cf-e884-2537-0d8e83b8ffa0.htm" />
<HelpTOCNode Title="Explicit Conversion (Int64 to mp_bitcnt_t)" Url="html/56fbe432-4b26-efff-13e9-242996bfa78d.htm" />
<HelpTOCNode Title="Explicit Conversion (SByte to mp_bitcnt_t)" Url="html/aaf1db64-d29e-3aa5-0a72-6fe2578210de.htm" />
<HelpTOCNode Title="Explicit Conversion (UInt64 to mp_bitcnt_t)" Url="html/22aee6e2-0a8a-0514-baa1-2f6882b60174.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_bitcnt_t to Byte)" Url="html/1d378f21-73e1-43e7-e286-5a6c0cb101ba.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_bitcnt_t to SByte)" Url="html/fe73a139-80df-459c-fb02-d0d9ccdd8bb5.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_bitcnt_t to UInt16)" Url="html/b195041a-f22f-4f68-fba0-58479ec4158e.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_bitcnt_t to Int16)" Url="html/55d30a4b-ca4f-4f4b-208a-026c54586e64.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_bitcnt_t to Int32)" Url="html/ecccb4d7-41db-d565-2551-4c15730c6d2f.htm" />
</HelpTOCNode>
<HelpTOCNode Id="fc9ab045-16f8-425f-9228-5ac7ab334fa1" Title="Implicit Conversion Operators" Url="html/72fbcc09-5765-7f60-3897-57fec21cc9f9.htm">
<HelpTOCNode Title="Implicit Conversion (Byte to mp_bitcnt_t)" Url="html/906e0eef-6efb-c60b-60d8-4827d7d57bf7.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt16 to mp_bitcnt_t)" Url="html/55809d71-2a62-422c-a7e5-955b2b62fe37.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt32 to mp_bitcnt_t)" Url="html/6280cd97-b728-ab06-89e1-7181e2ab72fe.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_bitcnt_t to UInt32)" Url="html/c897167e-f92f-0785-bda4-0f40d89fe35a.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_bitcnt_t to UInt64)" Url="html/6b870324-3daa-70e6-ded7-2757f5755310.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_bitcnt_t to Int64)" Url="html/b9af7417-7e72-7f81-8433-2e231271f9b6.htm" />
</HelpTOCNode>
<HelpTOCNode Title="Inequality Operator " Url="html/8ae70a65-d9d6-0c44-b148-82f39dc474ab.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="82128b6e-f87d-4d4b-97d3-8266df71ec23" Title="mp_exp_t Structure" Url="html/e6a17880-791f-37d4-4942-cf26ce7d4cbf.htm">
<HelpTOCNode Title="mp_exp_t Constructor " Url="html/d4cd9f0b-9f54-1f1d-6a27-a0ce3122249c.htm" />
<HelpTOCNode Id="a00e3115-3a73-4cad-9348-ba90b3a4d6cb" Title="mp_exp_t Methods" Url="html/8968de81-b069-4c5d-e694-8aad8a2c3cdb.htm">
<HelpTOCNode Id="bba4e0bd-1ba1-41f1-bb6f-ff5de7736c00" Title="Equals Method " Url="html/5a3c38b8-5205-bc81-58e8-60b155c0579c.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/b91d6398-e5f7-0ee9-e982-4ec2e009d0bc.htm" />
<HelpTOCNode Title="Equals Method (mp_exp_t)" Url="html/c349463b-04b6-167b-b8f7-9f117789577d.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/1443760d-18a5-f276-ec75-7b8ead9d8332.htm" />
<HelpTOCNode Title="ToString Method " Url="html/cd071eb3-c175-836d-c47a-f9c007b8738d.htm" />
</HelpTOCNode>
<HelpTOCNode Id="b93a4d07-bdd0-4e8b-8c24-7baec672e58e" Title="mp_exp_t Operators and Type Conversions" Url="html/d0d07662-13f1-e033-9619-1c9f89c37939.htm">
<HelpTOCNode Title="Equality Operator " Url="html/4a543b73-f62d-cf04-fa49-22bc93e657e7.htm" />
<HelpTOCNode Id="00058bcb-f7f8-4bdd-aa89-0b5da4909f45" Title="Explicit Conversion Operators" Url="html/021c96a1-51fa-2b2a-4c65-7ae3bb374c33.htm">
<HelpTOCNode Title="Explicit Conversion (Int64 to mp_exp_t)" Url="html/70eabcfd-22ae-e08e-1bc5-54f8e1ccb736.htm" />
<HelpTOCNode Title="Explicit Conversion (UInt32 to mp_exp_t)" Url="html/78fdf4c2-15a1-fdab-23fa-806cdf3dc983.htm" />
<HelpTOCNode Title="Explicit Conversion (UInt64 to mp_exp_t)" Url="html/6b879622-df00-c9b2-deba-307574416ff2.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_exp_t to Byte)" Url="html/a5c30e13-40af-5fb4-97fa-75f4653eccee.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_exp_t to SByte)" Url="html/2c30c503-671c-e6f1-38a8-3a42f51f8019.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_exp_t to UInt16)" Url="html/92ffc71c-a4b3-4367-ba65-25b82d7e5cfd.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_exp_t to Int16)" Url="html/0c44ebce-9678-a295-598a-588046225af2.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_exp_t to UInt32)" Url="html/6b71bf90-ded3-6f2b-f59b-19b7e3442ef4.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_exp_t to UInt64)" Url="html/bb3fdf5b-8b0e-e922-a1bd-cd337a89f971.htm" />
</HelpTOCNode>
<HelpTOCNode Id="d6b41d02-e341-4ba2-91a0-162fd82a1415" Title="Implicit Conversion Operators" Url="html/c7574415-f402-d74d-8dfc-c4ec2f893a5f.htm">
<HelpTOCNode Title="Implicit Conversion (Byte to mp_exp_t)" Url="html/fa401922-089c-d6e0-8ef7-e9013676e9e5.htm" />
<HelpTOCNode Title="Implicit Conversion (Int16 to mp_exp_t)" Url="html/835b1c14-21a0-f806-1953-af0ddf068758.htm" />
<HelpTOCNode Title="Implicit Conversion (Int32 to mp_exp_t)" Url="html/82a3fa70-9dcd-a931-eb3e-18095e458891.htm" />
<HelpTOCNode Title="Implicit Conversion (SByte to mp_exp_t)" Url="html/2f9a1c6d-82f4-6ef2-476a-8231d6b7d497.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt16 to mp_exp_t)" Url="html/94f00d9c-cc2e-8ce7-56e5-f827238651cd.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_exp_t to Int32)" Url="html/015f7dd6-55ab-71d0-316b-71a3f99799c3.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_exp_t to Int64)" Url="html/e7a5fd85-46d5-46ed-b943-3c245fae350a.htm" />
</HelpTOCNode>
<HelpTOCNode Title="Inequality Operator " Url="html/931e55b9-30c1-aa94-c044-0400b5abea60.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="dcf1a9e5-7f75-4e6f-a038-25cee0f9b728" Title="mp_limb_t Structure" Url="html/bf1f694d-f9b2-6413-12e5-ebae603d5b49.htm">
<HelpTOCNode Title="mp_limb_t Constructor " Url="html/89d25f98-71ed-79b0-9b85-7cb9fcbab79d.htm" />
<HelpTOCNode Id="1c80398a-5582-4b6a-827e-f81b0b30b3f9" Title="mp_limb_t Methods" Url="html/1e30b810-66a8-52cc-8501-8bdda18bfaa7.htm">
<HelpTOCNode Id="d9888268-a693-4e72-b83a-2b36351a1ecf" Title="Equals Method " Url="html/f3da8743-4110-ef69-3809-3261d9304977.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/33b840cd-1b41-ad67-8956-b5811ddc6175.htm" />
<HelpTOCNode Title="Equals Method (mp_limb_t)" Url="html/a1075491-112f-885c-7097-2745d8c251a2.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/1bd10056-1935-a793-4930-68ebfaf82cd1.htm" />
<HelpTOCNode Title="ToString Method " Url="html/7ae8e775-5b2d-4ce0-c45b-5afd1b66ac62.htm" />
</HelpTOCNode>
<HelpTOCNode Id="5407e9ae-59b8-4c4a-b468-8c63ecfbd00e" Title="mp_limb_t Operators and Type Conversions" Url="html/88234d39-a3da-db4f-71ff-17d0f2e2c7fe.htm">
<HelpTOCNode Title="Equality Operator " Url="html/2e8177f2-fc95-380b-ef64-a51cf494c686.htm" />
<HelpTOCNode Id="55969973-11f4-4fc1-8654-2ecb1fd2b416" Title="Explicit Conversion Operators" Url="html/e2434db6-d7f3-e7d6-2bd7-04e29ba0a7a8.htm">
<HelpTOCNode Title="Explicit Conversion (Int16 to mp_limb_t)" Url="html/b88446f7-b9cf-5692-d4fe-7b809ef197eb.htm" />
<HelpTOCNode Title="Explicit Conversion (Int32 to mp_limb_t)" Url="html/06428417-fb0b-82c7-4b50-99dfe28c7afb.htm" />
<HelpTOCNode Title="Explicit Conversion (Int64 to mp_limb_t)" Url="html/03a17ed9-19e1-9de3-0ea4-4ff3f63938a6.htm" />
<HelpTOCNode Title="Explicit Conversion (SByte to mp_limb_t)" Url="html/3006d511-ecd7-0e95-44e1-b9effd406cbf.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to Byte)" Url="html/6991a24e-345d-029c-c189-ed263640928b.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to SByte)" Url="html/3cd34dae-2d2e-5efd-cc59-e555d879812a.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to UInt16)" Url="html/9ab62efe-605f-58cf-588c-1e52adcfb373.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to Int16)" Url="html/c3def8a2-dda3-3951-fca6-035e9c7ec894.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to UInt32)" Url="html/f4b3e873-d3fc-637d-d8cb-04cd63c76b6d.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to Int32)" Url="html/72723d8b-579c-0c0f-d5c8-868ae849457e.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_limb_t to Int64)" Url="html/63e2f5c3-b5bb-ebf6-3bcf-682671a0dbc3.htm" />
</HelpTOCNode>
<HelpTOCNode Id="04cc1a04-e9fa-4d45-a694-5674a25a3c7b" Title="Implicit Conversion Operators" Url="html/015a8bc4-a8de-d7c7-3aac-2524de5dfd03.htm">
<HelpTOCNode Title="Implicit Conversion (Byte to mp_limb_t)" Url="html/7dbd9949-90ab-2b31-978d-9fde0a2ba7ee.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt16 to mp_limb_t)" Url="html/4e7a1224-4cf6-269a-82b6-8fdb83429949.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt32 to mp_limb_t)" Url="html/adc5aae1-accd-ed83-fe1b-8910aa034c17.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt64 to mp_limb_t)" Url="html/9b49e0e1-2b6a-8d1a-eb15-0a1a17358384.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_limb_t to UInt64)" Url="html/880536ad-8f64-bc4a-a807-0071061ac720.htm" />
</HelpTOCNode>
<HelpTOCNode Title="Inequality Operator " Url="html/be93bccd-2cad-322c-e211-5523de89b567.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="2f7cd44f-7e45-4ac9-91d2-361414a0ddf1" Title="mp_ptr Class" Url="html/4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">
<HelpTOCNode Id="88429131-808b-4651-af65-4cb1237fef41" Title="mp_ptr Constructor " Url="html/33563f2c-baba-b555-20fb-9def8b70074c.htm">
<HelpTOCNode Title="mp_ptr Constructor (Byte[])" Url="html/be2f5733-8c21-c6e9-c4be-ca5f0b0ebba9.htm" />
<HelpTOCNode Title="mp_ptr Constructor (UInt16[])" Url="html/54ac0eda-b14f-8083-16dc-6c0abe8a5e5e.htm" />
<HelpTOCNode Title="mp_ptr Constructor (UInt32[])" Url="html/cad424b2-4a92-fda9-45dd-243ef9e5f321.htm" />
<HelpTOCNode Title="mp_ptr Constructor (UInt64[])" Url="html/ef5be106-0301-8122-c640-70bda121b879.htm" />
<HelpTOCNode Title="mp_ptr Constructor (mp_size_t)" Url="html/e0c0acc3-41cd-cb7d-68e7-3bf8dc5039d4.htm" />
</HelpTOCNode>
<HelpTOCNode Id="62501956-326a-4df9-b64b-9cf22afafea9" Title="mp_ptr Properties" Url="html/9b1ae76e-d9d8-e72d-9fa6-fe8e2d833d40.htm">
<HelpTOCNode Title="Item Property " Url="html/a7661bd2-2bcb-01c5-9833-5ab6d6305daf.htm" />
<HelpTOCNode Title="Size Property " Url="html/562de56d-c1a8-5f66-59dc-e2886d89bfc3.htm" />
</HelpTOCNode>
<HelpTOCNode Id="5936891e-cceb-4782-ab14-a7e43d8ff6a5" Title="mp_ptr Methods" Url="html/f324e472-a709-9f28-6b3c-ffdeda0376bf.htm">
<HelpTOCNode Title="GetEnumerator Method " Url="html/f9a60366-d1e2-5565-bbc2-63d98d779e27.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="ab54504d-c2a1-4a17-b89d-af63f9d9bd4e" Title="mp_size_t Structure" Url="html/4b58a584-7a0e-b600-18fa-ebd493861eb3.htm">
<HelpTOCNode Title="mp_size_t Constructor " Url="html/be71a625-32c1-841d-0915-f0771323d00a.htm" />
<HelpTOCNode Id="7423d6bf-1b4f-4ddd-abab-da8824f617ce" Title="mp_size_t Methods" Url="html/afc0fd4e-39a7-905a-93b9-8bd291904211.htm">
<HelpTOCNode Id="b7d312fd-8f3d-47a6-b27f-900c8f8bd8a0" Title="Equals Method " Url="html/096397d8-2db8-7eeb-3b75-25ed0bad8379.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/764c23ab-f2fe-b3e4-68a4-4a27fb6dc6b0.htm" />
<HelpTOCNode Title="Equals Method (mp_size_t)" Url="html/b93a08cc-4dfe-0c34-c1ac-25344489f2d3.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/c82e8cd1-5053-7e58-3b57-c20583dcc5e7.htm" />
<HelpTOCNode Title="ToString Method " Url="html/abd28ab6-f7d7-296e-852b-ef28b35a08d8.htm" />
</HelpTOCNode>
<HelpTOCNode Id="0a491346-a0e2-4406-8805-43f6905e7e25" Title="mp_size_t Operators and Type Conversions" Url="html/884aef1a-9faa-b787-ff5e-022615bd41eb.htm">
<HelpTOCNode Title="Equality Operator " Url="html/a6d79a12-4568-8617-30a9-e36698ef5994.htm" />
<HelpTOCNode Id="b869e3a9-f29c-4eb3-8823-7d8b6cbc908c" Title="Explicit Conversion Operators" Url="html/9c49193c-e71d-9d5a-ce64-27446b2d8c1b.htm">
<HelpTOCNode Title="Explicit Conversion (Int64 to mp_size_t)" Url="html/fecd3260-6eb9-5e31-0266-9bb52bf9b038.htm" />
<HelpTOCNode Title="Explicit Conversion (UInt32 to mp_size_t)" Url="html/edf58344-c7ce-6c94-dea2-e07f06eb7987.htm" />
<HelpTOCNode Title="Explicit Conversion (UInt64 to mp_size_t)" Url="html/43436692-e9c9-739f-aa96-be2b775dae62.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_size_t to Byte)" Url="html/6eb39888-e104-5cdd-a22d-c1240ef748e4.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_size_t to SByte)" Url="html/8dc5a181-8213-f87c-bd52-e77624313a9c.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_size_t to UInt16)" Url="html/1babcb9f-d828-81fb-30d5-296cccd21929.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_size_t to Int16)" Url="html/339354f8-0924-d332-2217-0b06b81f5e5a.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_size_t to UInt32)" Url="html/ee84dcdc-769f-5829-0e77-99ea66f0151b.htm" />
<HelpTOCNode Title="Explicit Conversion (mp_size_t to UInt64)" Url="html/969bef9e-e9a3-e671-5378-0767ee7f946b.htm" />
</HelpTOCNode>
<HelpTOCNode Id="bc04fafa-f633-4ec6-a1ac-0c144d196941" Title="Implicit Conversion Operators" Url="html/13c05087-b2db-4751-d548-4fa64e30f663.htm">
<HelpTOCNode Title="Implicit Conversion (Byte to mp_size_t)" Url="html/e2817889-195b-d443-500d-2568ebfefe4f.htm" />
<HelpTOCNode Title="Implicit Conversion (Int16 to mp_size_t)" Url="html/8f9e1df5-6eb0-4f14-3a1f-0d40ab45aac6.htm" />
<HelpTOCNode Title="Implicit Conversion (Int32 to mp_size_t)" Url="html/4d1fd187-6b51-f72c-b150-3cc4eb7ead18.htm" />
<HelpTOCNode Title="Implicit Conversion (SByte to mp_size_t)" Url="html/3bab30e1-4da4-b2cd-ea9c-9f06097052e6.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt16 to mp_size_t)" Url="html/7c9b8744-cc4a-e2c1-659f-6da60e92bb78.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_size_t to Int32)" Url="html/57c5f9bf-43e8-b575-90c8-23c0e366fb2d.htm" />
<HelpTOCNode Title="Implicit Conversion (mp_size_t to Int64)" Url="html/289280eb-add9-3787-a6bf-8e9766849efd.htm" />
</HelpTOCNode>
<HelpTOCNode Title="Inequality Operator " Url="html/d7d60484-ecc2-8e26-1dac-de2617ab1867.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="0bb12fe0-fd02-4dd4-9fa3-2dc0a6ce27b9" Title="mpf_t Class" Url="html/37c88d6c-8d02-2330-ad77-f20fb73d1677.htm">
<HelpTOCNode Title="mpf_t Constructor " Url="html/0e0a10d5-52ab-1821-6fe1-97514e009418.htm" />
<HelpTOCNode Id="8c3b093a-d096-4264-88a5-459d719d77d1" Title="mpf_t Properties" Url="html/44d8440b-0daa-0393-510e-a0ace6d299f7.htm">
<HelpTOCNode Title="_mp_exp Property " Url="html/f63ee104-afaa-e0b8-ff39-f60b9a934ea3.htm" />
<HelpTOCNode Title="_mp_prec Property " Url="html/772c3bd8-b9ec-225d-3d98-e17ae89d4294.htm" />
<HelpTOCNode Title="_mp_size Property " Url="html/9aa3bb30-32b3-b465-af05-9b048bb610f1.htm" />
</HelpTOCNode>
<HelpTOCNode Id="77ceb0a1-46ec-4e58-aa20-9faa86f23c19" Title="mpf_t Methods" Url="html/2583789b-09c3-0f9a-fbf9-4d362bd9129a.htm">
<HelpTOCNode Title="ToIntPtr Method " Url="html/b77413f7-f862-7996-838a-f510fc3f69ed.htm" />
<HelpTOCNode Title="ToString Method " Url="html/77eccd6b-888f-b3a8-0800-ead4af162af0.htm" />
</HelpTOCNode>
<HelpTOCNode Id="af24d92a-2c28-438e-a667-750064d6717c" Title="mpf_t Type Conversions" Url="html/3ca44c9f-677e-d5fa-5414-399843506633.htm">
<HelpTOCNode Title="Implicit Conversion (String to mpf_t)" Url="html/058e477a-0126-b073-ee83-77ed89a58351.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="5d6f4018-5f13-4fe7-869d-27334582edd2" Title="mpq_t Class" Url="html/635f1879-5f85-881e-cca8-3222baf5045a.htm">
<HelpTOCNode Title="mpq_t Constructor " Url="html/2c2936bd-f40b-391b-de4c-e5111654993b.htm" />
<HelpTOCNode Id="bb4888a6-05ce-4e29-82c3-ba6880715cdd" Title="mpq_t Properties" Url="html/0e7e8afb-9c1f-87e4-4f01-0575c8203613.htm">
<HelpTOCNode Title="_mp_den Property " Url="html/fb8c2e17-4a22-899c-77af-6d3bef099fc2.htm" />
<HelpTOCNode Title="_mp_num Property " Url="html/3fad7a3a-76d1-7e19-0ab4-c93a4bf3655e.htm" />
</HelpTOCNode>
<HelpTOCNode Id="e65ddd12-a687-4ba9-a00c-ff19e7630fe9" Title="mpq_t Methods" Url="html/6871c168-60e1-5bd2-5a03-2d60f473d7b8.htm">
<HelpTOCNode Title="ToIntPtr Method " Url="html/ce76ca4d-3aab-d682-1f85-aa95ce7d43a9.htm" />
<HelpTOCNode Title="ToString Method " Url="html/e9fce326-9ff5-0bbc-87d7-53ace305f107.htm" />
</HelpTOCNode>
<HelpTOCNode Id="cd297378-8d43-4d49-8ba6-5824c7b09882" Title="mpq_t Type Conversions" Url="html/25bb755c-4475-9382-5601-dd83fda02afe.htm">
<HelpTOCNode Title="Implicit Conversion (String to mpq_t)" Url="html/5d499247-7cb9-266f-eb4f-78bcf5768aa4.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="f00c8eb2-bb5f-4401-8b2c-6c8bbbef4135" Title="mpz_t Class" Url="html/8beda7fb-bbc4-b56f-fd1f-1459377ecb3b.htm">
<HelpTOCNode Title="mpz_t Constructor " Url="html/0fcbb911-bc5a-1b11-90c5-96babff86526.htm" />
<HelpTOCNode Id="6474af89-c16a-4d08-bcb0-96db63e71faf" Title="mpz_t Properties" Url="html/5f492d5c-72f0-17b4-24a4-e5b58a061ef7.htm">
<HelpTOCNode Title="_mp_alloc Property " Url="html/93206a07-9ee6-f89b-f029-f0e80982c911.htm" />
<HelpTOCNode Title="_mp_size Property " Url="html/15e1db51-a27c-7eee-03dd-5c6457889be1.htm" />
</HelpTOCNode>
<HelpTOCNode Id="f623a44c-83bb-4f87-9437-4ad158a36b19" Title="mpz_t Methods" Url="html/430d894e-57e0-6020-0ad7-40b74cbd969f.htm">
<HelpTOCNode Title="ToIntPtr Method " Url="html/018d9747-3053-df6d-2bb3-5273ad735860.htm" />
<HelpTOCNode Title="ToString Method " Url="html/709eb598-ee38-4031-9dc5-74a73d8f9142.htm" />
</HelpTOCNode>
<HelpTOCNode Id="e02f05a9-fcfb-4bb8-b290-44655e003b45" Title="mpz_t Type Conversions" Url="html/1cc35e31-9ab0-7239-d05b-1e2a426338bc.htm">
<HelpTOCNode Title="Implicit Conversion (String to mpz_t)" Url="html/d07ddfe6-a0d0-51e7-180c-481fe678fc38.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="b4f3adcd-ca0e-49ec-a745-9ab270d8ce09" Title="ptr(T) Class" Url="html/542faa00-d28a-72a2-2dd8-6c6021e683ce.htm">
<HelpTOCNode Id="47e72d64-a3eb-41b0-8139-0cf4333b1aa4" Title="ptr(T) Constructor " Url="html/1b117248-4e1d-a985-2ab6-4bd8e5b3e769.htm">
<HelpTOCNode Title="ptr(T) Constructor " Url="html/8e86c547-280b-afb8-98ea-aebfb3ec04b9.htm" />
<HelpTOCNode Title="ptr(T) Constructor (T)" Url="html/b7987d45-5188-14f6-7ac7-bbe14184971b.htm" />
</HelpTOCNode>
<HelpTOCNode Title="ptr(T) Methods" Url="html/b390b506-1cff-5bd4-fcf5-a135127497dc.htm" />
<HelpTOCNode Id="6747f157-e2c2-46dc-bb58-92af31b1ca2f" Title="ptr(T) Fields" Url="html/50e025ca-c11a-c1db-2233-d11f66776439.htm">
<HelpTOCNode Title="Value Field" Url="html/448dfb4b-f4d7-8db7-3d44-31f3bd032771.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Title="reallocate_function Delegate" Url="html/aa9d21b4-a929-d550-5a65-f9cbcfa7f638.htm" />
<HelpTOCNode Id="2f9a8204-8a26-47b0-a74e-795800543608" Title="size_t Structure" Url="html/d9761bfb-1882-59d2-e89b-c6460141f9a6.htm">
<HelpTOCNode Title="size_t Constructor " Url="html/4a5eee32-b03c-e613-22b1-6b4f54a95362.htm" />
<HelpTOCNode Id="573d0f46-e487-4cf8-a6ae-ac0d821ff9d1" Title="size_t Methods" Url="html/0777a4c0-90d5-95bc-1192-f390bfbcbc43.htm">
<HelpTOCNode Id="45c51c98-4abc-4797-bcfb-c61d36350308" Title="Equals Method " Url="html/255140dc-27a7-cc9d-df9a-dc4d03c9a8e4.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/3c3a57f3-ab98-976d-e470-2b8da8c97b53.htm" />
<HelpTOCNode Title="Equals Method (size_t)" Url="html/b08a01e0-6ae7-c9db-4d46-9fdeadaca5ed.htm" />
</HelpTOCNode>
<HelpTOCNode Title="GetHashCode Method " Url="html/6feeab0d-dc91-818f-ef60-2434ff3a1146.htm" />
<HelpTOCNode Title="ToString Method " Url="html/e465d040-0d35-f8c8-51db-c56b3d14b4c8.htm" />
</HelpTOCNode>
<HelpTOCNode Id="9bb084a1-7146-4c03-a802-ca197378632d" Title="size_t Operators and Type Conversions" Url="html/c27b5f76-606f-b512-9424-8e74cea9f6da.htm">
<HelpTOCNode Title="Equality Operator " Url="html/46b18925-3e4b-f26c-ef9c-ade34e23f518.htm" />
<HelpTOCNode Id="74d242fa-5432-430c-bae6-d279380a7e12" Title="Explicit Conversion Operators" Url="html/1f76425d-66dd-c23e-2032-d6f1f2337813.htm">
<HelpTOCNode Title="Explicit Conversion (Int16 to size_t)" Url="html/8da2a46e-34a6-f8be-270d-32fbf6424d98.htm" />
<HelpTOCNode Title="Explicit Conversion (Int32 to size_t)" Url="html/25c0e500-2d89-f414-530f-a0a53b57766f.htm" />
<HelpTOCNode Title="Explicit Conversion (Int64 to size_t)" Url="html/e9177dc9-2049-a649-3bf2-735ed6927aae.htm" />
<HelpTOCNode Title="Explicit Conversion (SByte to size_t)" Url="html/5c1d434c-5d85-dea7-ac47-09126d92900d.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to Byte)" Url="html/b60d2b4d-e77b-2a6a-bc12-9bba19450de7.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to SByte)" Url="html/44012ded-01f3-9156-80d0-0df7ee0b048c.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to UInt16)" Url="html/784c4122-3a62-f338-0e4a-88b6a69a1e9e.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to Int16)" Url="html/4137f93d-8fb6-8ae8-3961-eeba189925e6.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to UInt32)" Url="html/d00d45f6-e184-7a72-2c0e-e2b0d39a40c7.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to Int32)" Url="html/47fd5e17-2217-5e2f-8d68-440cfcf85179.htm" />
<HelpTOCNode Title="Explicit Conversion (size_t to Int64)" Url="html/fd60a636-df2f-3c60-40c7-b46077830f00.htm" />
</HelpTOCNode>
<HelpTOCNode Id="04d8ed5c-a0bd-46d3-aa25-c6ed41b56c65" Title="Implicit Conversion Operators" Url="html/a35ea6b8-48fa-4e62-bdbd-fee74574cac5.htm">
<HelpTOCNode Title="Implicit Conversion (Byte to size_t)" Url="html/6d0766fc-29bc-75e6-aa00-ed7b80fe586e.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt16 to size_t)" Url="html/18ef1696-938e-0932-1d55-eaced0d92464.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt32 to size_t)" Url="html/e76254b7-0a0e-d726-a1a2-ebc21dab1c96.htm" />
<HelpTOCNode Title="Implicit Conversion (UInt64 to size_t)" Url="html/c9d426b1-7505-f34c-5122-7ccd2571f577.htm" />
<HelpTOCNode Title="Implicit Conversion (size_t to UInt64)" Url="html/4089ae7b-a5ca-3feb-37ce-f5f4e627dde7.htm" />
</HelpTOCNode>
<HelpTOCNode Title="Inequality Operator " Url="html/a68386d1-23de-611a-543f-fbd5600f674a.htm" />
</HelpTOCNode>
</HelpTOCNode>
<HelpTOCNode Id="a725a599-1218-4985-b606-5d317ff15551" Title="void_ptr Structure" Url="html/e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm">
<HelpTOCNode Id="2cad58e4-c1ac-4ae3-96bf-0a660f7d6ee8" Title="void_ptr Methods" Url="html/e267ef2f-54a1-a3f1-441f-0655b542bf55.htm">
<HelpTOCNode Id="3dca7831-1b63-4833-b77f-4818aa726135" Title="Equals Method " Url="html/0521b935-27ad-ca39-ed8a-6c4b4fc51116.htm">
<HelpTOCNode Title="Equals Method (Object)" Url="html/0177c7b6-b5d5-3815-b64a-4f3a7686bf6d.htm" />
<HelpTOCNode Title="Equals Method (void_ptr)" Url="html/c39c5883-0cbc-86ee-d3a6-be3a95f8cadc.htm" />
</HelpTOCNode>
<HelpTOCNode Title="FromIntPtr Method " Url="html/650e9cdb-0392-1173-aba8-9a1d6fc6a694.htm" />
<HelpTOCNode Title="GetHashCode Method " Url="html/04ef14d3-d09c-cfcb-0cea-8984c92612f5.htm" />
<HelpTOCNode Title="ToIntPtr Method " Url="html/3e1375c2-3f44-721d-6ef3-32e49a3d7d3b.htm" />
</HelpTOCNode>
<HelpTOCNode Id="b133fceb-0f30-4239-a10a-db06b3bd7986" Title="void_ptr Operators" Url="html/578ac23c-2986-d809-fa1b-c9a111d0c780.htm">
<HelpTOCNode Title="Equality Operator " Url="html/3d7c5927-d163-5d46-1f0b-5c35ca116b22.htm" />
<HelpTOCNode Title="Inequality Operator " Url="html/bd89f9a0-7e6f-d1e7-46b3-051bfbe290f4.htm" />
</HelpTOCNode>
<HelpTOCNode Id="fce5ed45-8125-45f4-9a1d-b57e959883dd" Title="void_ptr Fields" Url="html/12a4c9d6-02cf-e913-816e-ad530e77722c.htm">
<HelpTOCNode Title="Zero Field" Url="html/3fce2dbc-bac6-d24f-d6d4-84454567b8f5.htm" />
</HelpTOCNode>
</HelpTOCNode>
</HelpTOCNode>
</HelpTOC>

461
docs/docs.projitems 100644
View File

@ -0,0 +1,461 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>71f0daac-bc93-44f3-a717-11eff0bad683</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<Import_RootNamespace>docs</Import_RootNamespace>
</PropertyGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_100.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_101.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_102.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_103.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_104.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_105.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_108.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_109.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_110.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_111.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_112.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_113.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_114.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_115.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_116.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_117.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_118.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_119.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_122.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_97.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_98.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_99.json" />
<Content Include="$(MSBuildThisFileDirectory)fti\FTI_Files.json" />
<Content Include="$(MSBuildThisFileDirectory)html\01082c7f-ec44-4b9b-5945-6854924cc1d7.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\029e6cbc-75ca-7bf2-5de0-d011b6319b13.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\043b2417-65c7-69d1-694f-cae5788b5c4b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\05ad7c9e-c21d-d778-ce80-b159174fac91.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\068a2752-58b5-b5e5-1bc0-2275e5340c0d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\07ebfec5-dae6-e0da-26c5-1cd638956d6e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\07ee1174-3e83-2c19-def8-b57cbb8e0318.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\08da285b-9fe5-0fae-1691-3d458386acb1.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\09be6cfc-9785-eb19-41c0-b320b83c96dd.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\09d34205-152c-52f7-da6b-88f853274382.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0a1146f5-35df-608b-7d0c-7d339095c673.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0a22b84e-d08e-f499-07c2-57be5a0d4c63.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0a22c2c4-0944-e816-2ca0-28476a40e64d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0b24f1b1-79a7-cc5a-8b07-ab65ef10957a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0b58bf79-5c90-69b9-226a-e873b4b10200.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0cdedd6b-d45f-a969-7302-9300582cb495.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\0cdf2098-7b4f-b866-6105-63ad0ea51b0f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\109f57a7-01f2-e981-3c3b-ff90ca006622.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\10f67ea1-cb79-d807-a1f4-7c95a063467f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\115c4320-958a-2665-a02b-ac70420730b8.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1187603c-b539-f60a-a1d4-9a21377d6c16.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\130508ba-3ea4-0931-b5a5-e8f1d1f9d2e5.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\13bd2b24-5fb8-468a-c561-54c4efd60d62.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\15cb1706-245a-2dbf-3122-95a617bde611.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\15e8c068-c9ea-6560-ae93-2d0e8fd93a73.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\162a4e33-30ed-5a5b-fd24-64201e42d859.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\18deeae8-49fb-94b2-9eef-860dacf430c0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\19526fa9-87f5-135e-8312-ccee6cba2fc6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1a3b02ff-3fa0-1708-a2ed-3f26a05f0e5c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1a90c932-b00b-f72a-b192-d2e4a807872b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1b1d105b-5db1-ddfa-34ae-ca82fd932934.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1d35bc9e-341c-ba18-4be1-0afa1b871fbd.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1e01819f-2cdf-61d0-a6e4-9621062fe256.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\1f066703-df27-ddae-0731-603ff0a49017.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\21fdcd68-ecd5-8e3b-a73f-8658fbac0877.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\22507934-dac8-06bb-5ed0-187c08c164ed.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2287ebe8-900f-9117-3826-f0943a169c46.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\229bca91-9179-6011-ffe2-3213d233bbf4.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2469a56a-ade8-2f90-206e-08653bdb5bed.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\24862153-227d-946a-2600-3be1464dd8cb.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\25935206-306f-3053-0a2b-8c16c1f802b6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\27747f9e-415a-e3f7-d776-517987a0b9c0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\278d0c80-e274-4cad-b02b-76fbe7d41f69.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\28c6d33a-8b62-d9f2-f9b8-dcbfacb80252.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2a2f887f-32ac-599d-04ef-317d1f4472ca.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2a7f2ba0-757d-6edd-277d-86bfe711a8e9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2abf6edd-23cb-1a35-94b6-05c0b6579ff5.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2b1e3548-dbcc-0807-fbc6-b6f880127852.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\2fe54e57-afa7-c1dc-05e4-ab6c17b050d2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\30fae81f-a868-a200-013f-40d431fee195.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\311aba57-7ad4-de61-0b32-f2521bff1cd9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3258bbb2-c04f-8492-ffe9-e97cdab7e5f6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\33227641-41a2-2fcf-4952-5af585a59648.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\34f0b786-25db-59a0-161a-2b3bfbcfe221.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\362cf9f2-45c1-4832-ccc3-0f36f849b905.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\37778515-e87b-73dd-157b-48851d62a5a8.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3784f52f-4c61-a6a8-8e09-133a190a97d2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3836b245-69bc-6d0d-2740-39c2c6fa91e6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3bfd92ea-8294-b821-4a34-727e56212eee.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3c0133b9-c134-fb3b-e256-0937bfba6d03.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3c017774-a4e0-6fac-64f0-d5c3ca2f7ef2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3cb1303d-f1dc-2812-f8a7-f9d52b24489f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3d22cec6-45b8-314e-1fed-a04a9c9e27bd.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3e957b79-a9b0-b4fc-4173-bb9b6ebd4239.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\3e982840-a486-4112-6c00-98711293a612.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\419401c2-8dc2-f9c4-9352-792c82297a4b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\43fe91a1-061a-8117-3173-1e1bff05f7f0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\44dd94b5-0398-8948-0f53-536cb4fb0b6a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\46063740-557e-fc12-599a-98b2288e40d6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\47993897-b080-94d1-b143-2cd9b4090f62.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\47e3b7b5-09e8-2316-d639-1eaecf319918.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4a8e39dd-197d-2e33-1088-c3e16b7e5697.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4a9f58cc-7e70-8dd8-e750-f1307901dd08.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4af7b2d6-b610-464c-3552-7e13bbf6b6fa.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4b302cc3-a6a3-24b5-42f0-321be42700d0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4b54c78e-7c52-7c83-1191-3adc1fab6bba.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4ca0ffda-b80d-1214-e779-d9d6d92604e1.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4cf42f98-68e4-61f6-6201-480954dac347.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4dbec1f5-f073-e9e0-fd53-dbc50644fd0d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\4f108ea8-8c00-a657-60e1-c7391f0bc630.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\503c1fe5-23cd-ee1d-73a3-095e8fafe869.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\50ca719a-b8ba-c681-484d-423be5ed60a2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\52182267-a6c1-e645-07e3-33b19920309e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\52f9f93d-35e9-6ef8-9f32-562f6aab7ed0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\531622c1-54c3-aa5e-8745-f5b021084a83.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\54dcae75-e78a-7022-3d75-17c5ecbba30d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\55843ffd-d16c-fb6d-74ff-d067a165947f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\55a1d3dc-7b10-c0e4-4831-5d066f6b0db7.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\56226685-5550-44ff-d057-a2e540c683fb.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\564fe1d3-3fe1-c7dd-0a4f-06b0f8c7a3e6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5687d77b-5e39-010b-2ed0-97a93fe51315.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\569a4954-7ee4-a293-e6f9-e8f95ad4f467.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\58a6adc7-b7e9-6cb5-1c79-d06f2ffec454.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\58b01508-6341-ff55-6e34-e87b04f98795.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\59114374-7937-6c02-1241-4e75aa2ba9a3.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5a71adbe-9031-f63a-2dbc-3913152a3cf9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5b586f15-0e72-3f03-cb90-0819171c2b5c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5d412be2-1ab1-2ba1-6e74-fb6b62267ff2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5d58fbe8-9ef2-3a77-1ae6-45a8b2c8fd3f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5e475f73-9329-44d0-4082-aa133b7ac466.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\5e4e5316-ce5b-ba06-e11b-049374723c9b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\60761ce8-2e1d-c7e9-e794-d478976b2cd4.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\6148548d-f335-8a5a-40bc-c4ecc93ab3e0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\660eaec3-15c1-4bfc-e201-99cf3050de73.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\6d068833-7f04-39e7-0e72-661ede9a8b1e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\6d49afb7-3657-30df-3605-d278be37108c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\6f34cb4b-6cb3-fc07-a047-a25e6474786c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7083f739-a295-446a-13ee-ff2517c0a58a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\708dfc8e-4e34-d8e8-f3f3-089dd4d41a6b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\70ff9d3a-1321-fa75-3116-29394b3e5abc.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\71ed91cb-fffb-4006-c66c-f9b1a4f0825a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\72b41d04-8a70-165f-9203-286652bed90d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\72dd7975-2822-7ec5-ef61-7edb2b53e6a4.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\739e4578-72ad-1614-bb28-620b6b9dc1c0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7402513e-bc8d-dd10-451c-96955af43e8d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\75d36744-64c7-965d-0e28-4c8b5b9204fe.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7793bf95-6be4-4b64-b165-c2e4059861ed.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\77a2c394-18f9-891c-5823-35068e88c42d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\77f88592-e72e-079f-742e-263fd79657d7.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\78369b94-fc72-81d8-dead-04336bcb4001.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7889b7a1-de5d-552c-8085-d7250a030cca.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\78e71a3e-230c-136d-d48f-218241691dba.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\78f8d73f-f2e0-088f-3c53-aa79bf5b7cfc.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\79841db9-8707-caf1-6ea7-c72ca1b2ad47.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7a0f3c6c-c493-d2ac-20b1-4c5f0f55b119.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7a838498-8593-5902-69ad-4cea01584cc9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7b21cd3f-b0c9-4ebb-a4c2-95bffac0a4a1.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7b3caad1-ea46-6b7f-3183-4f24ff8009fc.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7c5e6a6c-aede-e014-a910-af5e488e882e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7cd3da6f-9613-c87b-74cb-4462373e2e03.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7d1f567d-ce1c-e7e4-5195-85b32ea21d42.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7e47d68f-9c14-2a53-0974-08dcf5081569.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7e96603c-e8f9-5a6b-39cc-3714af9b9a48.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\7f6e1c9d-6937-1923-81c7-f0476d9b3051.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\800855f0-7ab9-13fd-102c-6a159bc74eab.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8112aa39-cfaf-00c6-2c0a-159b6fe8430c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\81bef1eb-ddd6-0c95-8c3d-59eaaeaa89a3.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8344e316-4400-e6a0-38f7-91bd82e25bf9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\84dd8bb7-6823-9253-12ba-84bae0c42543.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8650a3f0-e8de-c1a8-8952-b7ef7f77117a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\89daeb80-53fc-37e2-9d38-8746cc9b7167.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8af72b87-8ae8-e9b6-d129-7514678f2082.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8ba13a08-0a40-4c30-1664-37b32dbcb7e7.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8c5c74ea-116a-6c8b-86ea-af7b169a2a2f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8d0c81b7-ac15-24a8-c711-35a6ec69a35c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\8db13669-bc15-0cb0-b677-1d8cabc02b17.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\9233c662-22e4-8504-1955-114954226445.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\929e8469-bbb2-2f8f-b997-7d3d5c868bac.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\938ce334-5267-c3e6-b921-c0c0be366830.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\96674639-15f6-c052-3f79-e0daaeab322e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\967b2e71-53e2-9b38-81aa-9853350684fb.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\97aeff37-aa5e-56d0-a300-3d6e589eb51f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\97c42aac-76b2-2701-4cd9-368cb919349f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\98164d9f-4ac8-5e9c-2666-b2927b29170d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\982c95a5-c524-f8b0-a782-30bb729fe14c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\9a559aad-e3e3-1cf4-a3b4-746a05c8db3f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\9b39f171-539a-59ec-939b-fa54a6932c2c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\9ca421c8-1629-cdba-8408-e56fea071480.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\9ea28573-c032-47ac-9fd8-b964395e853e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a07699a1-22c2-65b5-4ed3-e644b967d62d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a0e3e289-754f-1cf6-3229-a426b842faa6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a13bb18b-acdf-b53f-3ee4-0fffd9c0588b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a29d95a4-7e71-be60-1600-1658800fcc92.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a8dfb353-dc3b-b67c-cdef-3e868543b79e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a91b4ed3-abf2-db4b-5bd7-19827bbd3584.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\a96cc612-9f67-5dc0-695d-588e01881a75.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\aa3749e0-ef2b-214c-1ab6-abbf96d36b63.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\aafc6d56-3b27-c660-ab2c-43f6d1663f53.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\abcd6296-f7be-a8b2-90f2-f5bdabdd0c5e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\abe1db1c-f249-b074-05df-45865809e31b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\ac914458-ddd1-0243-51fc-ef089b721731.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\aee150a0-dc0b-dcca-d2f8-f6ef0e3ffe60.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b248f1de-0f76-0529-6c45-e31f0c1a1271.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b2bf7189-3e43-eec7-b029-e8dc35141537.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b3d05563-21cf-8b8d-764b-36798c4217e0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b414eee1-d878-c234-f0ac-1e0737c1ab40.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b50537aa-22d0-5d4f-4dee-801c90098c1b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b58e82dc-9430-ff5a-8ce1-d3b153a0a8e3.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b6062499-785f-489f-067d-87659b3d661e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b688e28c-7c60-15c9-c7bb-ad73d8d0889c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b72e5f95-5234-7cd6-e80a-4b8a17bb0c69.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b945f8c6-6b5f-d1af-6164-ddae0b77a0fa.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b961c2b4-d229-cefd-3b77-f31ecf6212f6.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\b9d18602-81fb-e825-21af-fe36a4d1068a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\bb2176f1-9c39-a244-de8a-17a4008c7393.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\be41a31f-9a9e-9486-07cc-edc28ba94c79.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\bf0811ab-f437-af20-d9eb-e6238019a6b3.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\bf0fa41b-5311-4af8-627d-f2b5c28ccced.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c0549176-c2e2-0890-a975-c7d44f289cc0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c08aad14-2699-a1fe-de6b-74fed541cd6f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c0eb2df3-06e7-2778-e910-66eeb2626513.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c0fdb2c7-edb7-2a85-4650-53c84b28720f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c15fcd06-0c58-2c98-8f27-35b4b16db558.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c424014d-3baa-b5b5-0f35-a3c52a4d8b8e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c426cae8-a8d8-a590-0faf-61344258f369.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c5d592b8-5bf2-a1c0-2a42-d633a8ea94d2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c7a63396-805f-d2a6-d4c3-84f8e0a939a3.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c84dce22-c4cf-a1a2-9a7a-9db76f45a964.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\c912f653-b2bd-5fae-7b26-26b9fc90c948.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cb1c1ceb-7cbc-eabd-dba3-3a771476fc81.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cb259381-9634-8605-6e56-2802db7eef5d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cb6bd026-00f3-ff91-da17-227e1839383b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cbcf7bdf-c8a6-d694-b8a0-423fcb5c2219.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cbf624e9-5609-6255-9554-45eb84cca5e7.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cd20665b-ff2b-3030-ff52-2841bc4f51db.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cf2714b5-0f28-cc16-1da0-4a4080bda5bc.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\cf440b62-0a01-a14c-9360-7cb74faa2490.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d147e72b-318d-cb72-2a66-022551426a70.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d15bc898-fa86-5bba-9da7-b78c097dc127.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d17d66e6-2826-1fad-ef50-12144610dd1d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d1f0d062-f23e-5038-ec3a-b6a4f5ae89ae.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d33d49ff-bbcd-2288-53fa-023102b21b8d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d34ebb57-1775-6a77-023f-6b75c2383bc1.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d42e95d4-9b29-92a1-d2a7-22d995df0cf1.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d447e44a-0009-3bce-95a1-35e05c85802e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d6dea0ec-9230-8b98-a01c-f8dfdde6909f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d76992e6-a801-ca52-3e5c-698471c0815c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d7a07447-da59-2155-9cef-1ebe8b5c2191.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d8206466-01d5-3a1e-4561-311e247cabf9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d8a9758d-88dd-5f3b-1dd8-1fc63c6a6b0a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d8d0fd03-5874-362d-5926-c114c40fb724.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d92431f0-0493-01ad-0095-d4b22cc0680b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\d9c9ef46-d212-e466-eb0e-9b5d2900855e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\da777f6c-0dc8-ba84-07fc-39edd7c08227.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\db1444b4-4ad8-d630-f567-e3496aaf8d07.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\dcb19612-7926-38a7-9b55-8c0afb639570.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\dce67429-51e7-c53d-1333-e797ef1ddd16.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\dd578c0a-380d-5422-af00-95e28fd47542.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\dd8906be-2def-135d-ab19-505ae20fff49.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\dde96cd4-d037-3186-31c2-c5bb9b7de769.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\df949cdc-08fc-610b-bdcd-85de7472a451.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e0036d91-3ea5-45b9-0392-accc4c144e14.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e2bbfe33-1577-00fc-ef79-012cfaf90398.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e37ff0e7-e094-5b40-4908-44b9d3597830.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e392681a-a491-76eb-101c-6961f31c1080.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e4685ba2-2646-f082-4530-0ba499aeee90.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e61f4189-3ab0-176a-0a35-85ecd15eb692.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e6d56ad4-a7e3-ef57-b76f-c7be32962a3e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e78c4438-eb76-e6c1-ae16-7609a3e260d3.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e8013a07-2ac2-d989-c5ff-e99ad24483df.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e82a2955-4d40-4b2d-33ba-f95003ad2f5f.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\e884e0a2-9381-a275-1869-7c8d6245bf67.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\ea815669-7ffc-0f76-5833-7bb0f245e8ea.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\eb4d669b-c376-59b6-75e9-6f94c877149c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\ec0287f4-418f-d689-cf4d-33374fa94559.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\ec2ffe49-df4d-8b6a-cce7-780926c960a0.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\ed1b1453-137b-9b60-ab80-28ca60c56029.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\edb738a4-7886-4cec-7638-81f9c1568667.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\ee553cbe-dfb3-7dce-afa1-f60611de5def.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\eeb948aa-efd8-2d6e-6832-e8aabd3b9806.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f1416ee2-4301-6e56-7bcc-ffe5873abd6c.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f32db46c-b554-e482-e040-1769ed04bc7d.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f3c9e266-0d9b-1ae9-b0aa-8e33747a90ba.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f48cc0ac-a4e1-a4d6-9378-9ffc83d1de1b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f59a5555-bff7-9057-53ed-aeb05806503e.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f89dfe25-87a3-7a9c-32d5-696611f471f9.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f8dde94f-3050-e86b-31ad-48439693a12a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\f9a72bf0-037d-b0cf-2bda-ad2e2e54b9e4.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fa0cefe8-51cc-2945-0f9c-6a8e81c4b66b.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fa2290c8-ef68-e01f-2179-69d3412a0e68.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\faa7e273-66f5-3173-0250-2ed81e9d9a23.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fb51945a-de8a-553c-61c7-4f306c60fa15.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fd05cc94-3ee3-3657-dfd5-95363772b03a.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fda393ff-fb01-9628-f960-f7e78acf6063.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fdc426cf-2696-bcc3-71de-a3df7dfc0700.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fdc72ee3-25de-4ab8-2b90-1c544cdfdec2.htm" />
<Content Include="$(MSBuildThisFileDirectory)html\fe73559e-6cc4-1253-814f-f04edd2392b9.htm" />
<Content Include="$(MSBuildThisFileDirectory)icons\AlertCaution.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\AlertNote.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\AlertSecurity.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\CFW.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\CodeExample.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\facebook.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\favicon.ico" />
<Content Include="$(MSBuildThisFileDirectory)icons\google.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\Help.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\linkedin.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\mail.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\privclass.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privdelegate.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privenumeration.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privevent.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privextension.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privfield.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privinterface.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privmethod.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privproperty.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\privstructure.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protclass.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protdelegate.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protenumeration.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protevent.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protextension.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protfield.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protinterface.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protmethod.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protoperator.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protproperty.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\protstructure.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubclass.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubdelegate.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubenumeration.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubevent.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubextension.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubfield.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubinterface.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubmethod.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\puboperator.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubproperty.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\pubstructure.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\Search.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\SectionCollapsed.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\SectionExpanded.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\slMobile.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\static.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\TocClose.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\TocCollapsed.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\TocExpanded.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\TocOpen.gif" />
<Content Include="$(MSBuildThisFileDirectory)icons\twitter.png" />
<Content Include="$(MSBuildThisFileDirectory)icons\xna.gif" />
<Content Include="$(MSBuildThisFileDirectory)index.html" />
<Content Include="$(MSBuildThisFileDirectory)search.html" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-cs-CZ.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-de-DE.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-en-US.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-es-ES.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-fr-FR.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-Help1.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-HelpViewer.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-it-IT.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-ja-JP.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-ko-KR.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-pl-PL.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-pt-BR.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-ru-RU.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-tr-TR.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-Website.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-zh-CN.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding-zh-TW.css" />
<Content Include="$(MSBuildThisFileDirectory)styles\branding.css" />
<Content Include="$(MSBuildThisFileDirectory)toc\029e6cbc-75ca-7bf2-5de0-d011b6319b13.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\05ad7c9e-c21d-d778-ce80-b159174fac91.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\09d34205-152c-52f7-da6b-88f853274382.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\0a22b84e-d08e-f499-07c2-57be5a0d4c63.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\0b58bf79-5c90-69b9-226a-e873b4b10200.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\10f67ea1-cb79-d807-a1f4-7c95a063467f.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\1187603c-b539-f60a-a1d4-9a21377d6c16.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\130508ba-3ea4-0931-b5a5-e8f1d1f9d2e5.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\162a4e33-30ed-5a5b-fd24-64201e42d859.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\18deeae8-49fb-94b2-9eef-860dacf430c0.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\19526fa9-87f5-135e-8312-ccee6cba2fc6.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\1a3b02ff-3fa0-1708-a2ed-3f26a05f0e5c.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\24862153-227d-946a-2600-3be1464dd8cb.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\311aba57-7ad4-de61-0b32-f2521bff1cd9.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\34f0b786-25db-59a0-161a-2b3bfbcfe221.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\3836b245-69bc-6d0d-2740-39c2c6fa91e6.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\47e3b7b5-09e8-2316-d639-1eaecf319918.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\4af7b2d6-b610-464c-3552-7e13bbf6b6fa.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\4b54c78e-7c52-7c83-1191-3adc1fab6bba.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\4cf42f98-68e4-61f6-6201-480954dac347.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\503c1fe5-23cd-ee1d-73a3-095e8fafe869.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\52182267-a6c1-e645-07e3-33b19920309e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\54dcae75-e78a-7022-3d75-17c5ecbba30d.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\55843ffd-d16c-fb6d-74ff-d067a165947f.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\55a1d3dc-7b10-c0e4-4831-5d066f6b0db7.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\569a4954-7ee4-a293-e6f9-e8f95ad4f467.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\59114374-7937-6c02-1241-4e75aa2ba9a3.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\5a71adbe-9031-f63a-2dbc-3913152a3cf9.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\708dfc8e-4e34-d8e8-f3f3-089dd4d41a6b.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\70ff9d3a-1321-fa75-3116-29394b3e5abc.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\71ed91cb-fffb-4006-c66c-f9b1a4f0825a.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\72b41d04-8a70-165f-9203-286652bed90d.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\739e4578-72ad-1614-bb28-620b6b9dc1c0.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\7402513e-bc8d-dd10-451c-96955af43e8d.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\7b21cd3f-b0c9-4ebb-a4c2-95bffac0a4a1.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\7c5e6a6c-aede-e014-a910-af5e488e882e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\7d1f567d-ce1c-e7e4-5195-85b32ea21d42.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\7e47d68f-9c14-2a53-0974-08dcf5081569.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\8344e316-4400-e6a0-38f7-91bd82e25bf9.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\84dd8bb7-6823-9253-12ba-84bae0c42543.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\8d0c81b7-ac15-24a8-c711-35a6ec69a35c.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\929e8469-bbb2-2f8f-b997-7d3d5c868bac.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\96674639-15f6-c052-3f79-e0daaeab322e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\abcd6296-f7be-a8b2-90f2-f5bdabdd0c5e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\ac914458-ddd1-0243-51fc-ef089b721731.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\be41a31f-9a9e-9486-07cc-edc28ba94c79.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\c08aad14-2699-a1fe-de6b-74fed541cd6f.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\c0eb2df3-06e7-2778-e910-66eeb2626513.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\c426cae8-a8d8-a590-0faf-61344258f369.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\c84dce22-c4cf-a1a2-9a7a-9db76f45a964.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\cb6bd026-00f3-ff91-da17-227e1839383b.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\cf440b62-0a01-a14c-9360-7cb74faa2490.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\d17d66e6-2826-1fad-ef50-12144610dd1d.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\d447e44a-0009-3bce-95a1-35e05c85802e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\d92431f0-0493-01ad-0095-d4b22cc0680b.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\d9c9ef46-d212-e466-eb0e-9b5d2900855e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\dce67429-51e7-c53d-1333-e797ef1ddd16.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\dd578c0a-380d-5422-af00-95e28fd47542.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\dd8906be-2def-135d-ab19-505ae20fff49.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\e4685ba2-2646-f082-4530-0ba499aeee90.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\e8013a07-2ac2-d989-c5ff-e99ad24483df.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\e82a2955-4d40-4b2d-33ba-f95003ad2f5f.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\ee553cbe-dfb3-7dce-afa1-f60611de5def.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\eeb948aa-efd8-2d6e-6832-e8aabd3b9806.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\f59a5555-bff7-9057-53ed-aeb05806503e.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\f89dfe25-87a3-7a9c-32d5-696611f471f9.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\f8dde94f-3050-e86b-31ad-48439693a12a.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\fdc72ee3-25de-4ab8-2b90-1c544cdfdec2.xml" />
<Content Include="$(MSBuildThisFileDirectory)toc\roottoc.xml" />
<Content Include="$(MSBuildThisFileDirectory)WebKI.xml" />
<Content Include="$(MSBuildThisFileDirectory)WebTOC.xml" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)Gmp.Native.chm" />
<None Include="$(MSBuildThisFileDirectory)LastBuild.log" />
<None Include="$(MSBuildThisFileDirectory)scripts\branding-Website.js" />
<None Include="$(MSBuildThisFileDirectory)scripts\branding.js" />
<None Include="$(MSBuildThisFileDirectory)scripts\clipboard.min.js" />
<None Include="$(MSBuildThisFileDirectory)scripts\jquery-1.11.0.min.js" />
<None Include="$(MSBuildThisFileDirectory)SearchHelp.aspx" />
<None Include="$(MSBuildThisFileDirectory)SearchHelp.inc.php" />
<None Include="$(MSBuildThisFileDirectory)SearchHelp.php" />
<None Include="$(MSBuildThisFileDirectory)Web.Config" />
</ItemGroup>
</Project>

13
docs/docs.shproj 100644
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>39b1e62e-d491-495f-8e90-b7d09b76d8a1</ProjectGuid>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<PropertyGroup />
<Import Project="docs.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"hamming":[5963778,12910597,15335426,28966916],"h55555555":[5111809,18743297,19791873],"h8000000000000000":[35454977],"h40000000":[19529730],"hex":[5046276,27066372,35520513],"h11111111":[9961473],"hc2d24d55":[5898241],"holds":[21233665],"heap":[5701633],"h5555":[5111809,18743297,19791873],"h80":[21823489,40173569],"h435e50d7":[25231361,28573697,40501249],"h22222222":[9961473],"h13":[25231361,28573697,40501249],"h80000000":[35454977],"hfffffffc":[41156609],"hfffffffe":[1114113,2883585,16121857,22740993,25559041,30015489,31195137,32374785,34209793,37945345,38469633,38666241,39714817,40697857,41156609],"hffffffff":[1114115,2162689,2883586,3276802,4325380,5111809,6815746,7012354,9043970,13238274,14286850,16121859,16777218,18743297,19791873,20316162,22740995,25034754,25362434,25559043,26411010,25231361,28573697,28966915,30015491,30998530,31195139,32374786,33751042,34996228,35454979,36044801,37945347,38469635,38666243,38993924,39714819,39780354,40501249,40697859,41156610],"hardware":[18415617,21102593,35192833],"hexadecimal":[8978433,14352385,17235969,22806529,32243713],"hf0f0f0f":[18350082],"hierarchy":[7864321,13434881,15007745,15335425,16842753,21430273,22282241,34603009],"handle":[7929857,8126465,12845057,21823489,29360129,38338561,40173569],"hd79":[25231361,28573697,40501249],"habcd1234":[5832705],"h40":[1245185],"he8":[16056321],"hf0f0f0f0":[1507332,18350082,20905988],"high":[5570561,19791873,36044801],"highest":[33030145,41091073],"higher":[5963777,14155777,15335425,24051713,40632322],"h7ab824fd":[5832705],"h10000":[38141953],"hd4a51000":[16056321],"habcd12347ab824fd":[5832705],"hedcba987":[2883585,32374785],"hffff":[2162689,5111809,18743297,19791873,25231361,28573697,34209793,36044801,40501249],"h555555555555":[18743297],"h44444444":[9961473],"h5555aaaa":[36044801],"host":[21823491,40173570],"happens":[19529729],"h964619c7":[5898242],"h12345678":[2883585,4325377,6815746,16777218,30998530,32374785,33751041,38993921],"human":[34537473],"haaaaaaaa":[36044801],"he2":[1245185],"happen":[10223617,12058625],"h33333333":[9961475],"handled":[5701633,16908289],"h1e240":[1245185],"h1000":[5832706],"h7fffffff":[35454977],"hhc":[4128770,6619138,8323074,14024706,21692418,32833538],"half":[5570561],"hash":[131073,917506,1441793,1703937,1900545,2949122,4063233,4456449,4653058,4915201,6291457,7864321,11141121,13434881,13631489,14680066,15007745,15400961,16842753,17104898,18939905,21430273,21889025,22216706,22282241,23199745,24641537,25624578,31588353,31653889,32571393,34013185,34537473,34603009,35127297,35782657,36896770,40042497]}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"just":[1835009,5832705,8978433,9895937,22478849,34078721,36306945,40173570,40632321,41091073],"jacobi":[851972,1966084,5963782,8650756,15335430,15597572,28377092,29753345,32440324]}

View File

@ -0,0 +1 @@
{"kronecker":[851973,1966085,5963781,15335429,15597573,28377093,32440325],"kind":[12648449,30146561,36503553],"known":[5963778,7340033,11206657,15073281,15335426,16908289],"know":[21823489,27328513],"knut":[5963777,15335425,39124993],"keys":[29884417,39845889],"knuth":[29425665,39124993]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"qxn":[25231366,28573697,40501259],"qualified":[131073,4456449,32571393,35782657],"quotient":[1376258,2293762,5963796,7340033,8192002,11206657,11403270,11862018,12386306,15335444,18743298,19005442,19660802,19791873,20381698,20709378,21954562,25231369,26935298,28573698,32964610,33947650,36044801,36438018,39649282,40501250],"quality":[29884417,39845889],"quite":[29884417,39845889]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"way":[16908289,39256065,40632321,41091074],"write":[1245186,2883585,4325377,5963804,6815745,7667713,8323074,8781826,8978434,9043969,11337730,14024706,14286849,15335452,16121857,16318465,16777217,18350081,18874370,20316161,21168130,21233666,22740993,22806530,25034753,26411009,28573697,30015489,30998529,32374785,33751041,34078722,35454977,38469633,38666241,38993921,39714817,39780353,39976962,40501249,40697857,41156609],"word":[5963778,15335426,21823498,34537474,40173580],"widening":[262145,1179649,3604481,6684673,8847361,9371649,10551297,12582913,13565953,14352385,14614529,15663105,16580609,16646145,17760257,20643841,20840449,21364737,21495809,22544385,23461889,23855105,25100289,26214401,26542081,32243713,33488897,35651585,36175873,36372481,37224449,38862849,40239105],"want":[24444929],"won":[19791873,27328513,36044801],"writing":[1245186,5111809,5963779,8454145,15335427,18874370,19791873,34078722,36044801,39976961],"welcome":[22413313],"white":[5963777,8978435,15335425,17235969,22806529,24444931,35520513],"wanted":[2555905,21626881,29556737,33030145,38141953],"written":[1245189,5111809,5963777,7667713,9043969,11337729,15335425,15728641,15794177,16318465,17039361,18874371,20316161,20512769,21757953,22740993,25034753,27328513,28573697,30015489,33161217,34078723,35454977,39976962,40173571,40501250,40632321,41156609],"writealltext":[8323074,8781826,8978434,14024706,22806530],"words":[15204353,21823493,40173573,41418753]}

View File

@ -0,0 +1 @@
{"xor":[2883586,6815746],"x64":[13500418,21168130,21233666,22413313],"x86":[13500418,21168130,21233666,22413313],"xxxxxxxxxxxxxxxxx":[5046274,27066370]}

View File

@ -0,0 +1 @@
{"ylimb":[5963777,15335425,17956871],"yields":[5963778,15335426,16449537,27590657]}

View File

@ -0,0 +1 @@
{"zero":[393217,983041,1441793,1638401,2097153,2162689,3014658,3080194,3145730,3473409,5046273,5439490,5701634,5832706,5898241,5963823,6356994,6488065,7012362,7405570,7602177,7733250,7929859,8126467,9240578,9568260,9961473,10027009,10354689,10616834,10682369,11010053,11927553,12320770,12845059,13041665,13172737,13369346,13893634,14483457,14745602,15073281,15138818,15335471,15532036,15925252,16056322,16121857,16187394,17235970,17301506,17629186,17956865,18022401,18415617,18612225,18743297,19464193,19529729,19791874,20119557,20250627,20578308,20971521,21102594,21168130,21233666,22478849,21823490,25362435,26411009,26476546,26607617,27000833,25231362,27328515,27656196,27721729,27852801,28114945,28573697,29163521,29294593,30408706,30605314,30867458,31195146,33030148,27066371,33357828,33423362,34209793,34471939,34865154,34930689,34996227,35061766,35192833,35323906,35454977,35520513,35782657,35979268,36044802,36306946,37289986,37355521,37421057,37617665,38076418,38141958,38404098,38600706,38666241,39256066,39387138,39911425,40173574,40501250,40697857,40960002,41091074,41156609,41222148],"zeros":[2097153,5046273,5963780,12648449,15335428,18022401,27328513,30146561,33554435,36503553],"zeroes":[15204353,26869761,41418753],"zeromemory":[5963778,15335426,33554438]}

View File

@ -0,0 +1 @@
{"_mpz_realloc":[5832705,5963777,8454145,13500417,15335425,16187393,21168129,21233665,26476545,39256075],"_ptr":[15007745],"_mp_size":[3080199,3211270,7864322,11599874,14876674,21430274,22282241,23724034,30932993,33030148,34471943,41091073],"_mp_den":[2621441,16842753,34668549],"_mp_num":[2621441,10813445,16842753],"_mp_d":[3080193,7864321,11599873,14876674,21430274,22282241,23724034,30932993,33030156,34471937,41091073],"_wfopen_s":[1245186,8323074,8781826,8978434,11337732,14024706,17039362,18874370,22806530,33161218,34078722,39976961],"_mp_alloc":[14876673,21430273,23724040],"_mp_prec":[7864321,11599873,19464198,33030145],"_mp_exp":[7864321,11599873,34471938,41091077]}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"bit":[917505,1245186,2424834,2949121,3014658,4063233,4653057,5439490,5570562,5636102,5701634,5963805,7864321,9568258,10223632,10289154,11337730,12058640,12124166,12910596,13631489,14680065,14745602,15204353,15335454,15532034,16384002,16908289,17104897,17629186,20774913,22216705,22347782,22413314,22478850,23396354,23658509,24838146,26279949,25624577,27656194,28966914,29032449,29097986,30605314,31653889,31850497,33030145,33357826,34013185,35323905,35979266,36831233,36896769,37552130,38600706,38797314,39256066,39583750,40435713,41222146,41418753],"binary":[1245185,2097153,5963780,12648449,14352385,15335428,17235969,18022401,22806529,23396353,30146561,32243713,35520513,36503553],"behaves":[2424833,5636097,10223617,10289153,12058625,12124161,12910593,16384001,22347777,23396353,38797313,39583745],"block":[1835016,3670018,5963781,6881282,10485762,15335429,15925251,18546691,20316161,25034753,27328515,29360131,30015489,32571394,33554435,34406402,35782659,36306947,37093381,38338563,40173571],"bool":[655364,7798787,8519683,9175044,9764868,10747907,11993091,14221315,19136516,19595267,19857412,20185092,23330819,27131907,27262979,27983875,28049411,28442627,28508163,28639235,28835843,29818883,29949955,30343172,30670851,30801923,31784963,32636932,33685507,33816579,35848195,39321603],"bits":[196610,2490370,3145730,3538945,3735554,3866626,4063234,4259844,5505026,5570562,5701638,5963787,7929858,8060930,8126465,8388610,8912898,9699330,9830402,9895937,10027010,10223617,11665410,11730950,12058625,12451842,12713986,12845058,12910593,13172738,13303810,14483458,15073281,15335436,16908292,18087938,18415618,18612226,19988484,20774916,21561346,23396355,24051714,21823491,24182790,24838148,25427970,25886722,27328514,28114946,29097988,30539778,31850498,32899074,34406401,34537473,34865153,34930690,35323906,35454983,35717121,37552129,37748738,37879810,38928386,39059458,40173570,40435713,40566786,40632324,41156616,41353218],"bytesperlimb":[14417924],"bitwise":[2424835,2883585,4325378,5963793,6815746,10289155,15335441,16777217,18350081,22478849,30998530,32374786,33751042,38797315,38993921],"byref":[10158086,20250626,40173570],"binomial":[5963778,11272195,15335426,29425667],"boolean":[655362,7798786,8519682,9175042,9764866,10747906,11993090,14221314,19136514,19595266,19857410,20185090,23330818,27131906,27262978,27983874,28049410,28442626,28508162,28639234,28835842,29818882,29949954,30343170,30670850,30801922,31784962,32636930,33685506,33816578,35848194,39321602],"bases":[17235970,22478850,22806530,24444930],"based":[5832705,9961473,13500418,21168130,21233666,22413313,29163521],"book":[5963777,15335425,39124993],"bytes":[1245189,1835015,3670017,5046274,5963781,6881281,7471107,7667714,8781827,8978434,11337731,14417921,15335430,15925250,16318466,18874371,22806531,21823494,26869761,27066369,27328514,31653889,32702467,33554434,34078723,34406404,36306946,37093382,39976962,40173572,40435713],"bitsperlimb":[35717124],"bin":[29425666],"base":[1179650,5046283,5963803,8781839,8978440,13303816,15335451,15925259,16449543,17235980,18874378,22478858,22806538,24576021,24444943,26607638,27066379,27328521,27590677,27721750,30867464,34078729,35520521,36306955,39059466,39976969],"byte":[327682,720898,1245186,2752515,4063237,4849670,5046278,5308418,8585217,8847362,9371650,13434881,13631493,16515078,17760262,18153478,18481154,20643846,23068676,23789573,21823495,24248322,24772611,25296902,26542086,26869765,27787268,29491205,30081030,31326211,31653892,32309250,32768002,27066377,33488902,34013189,34537476,34734085,36372486,37486594,38535169,40173576],"beginning":[24444929],"body":[34537473],"bound":[524289],"bugs":[12648449,30146561,36503553],"bit_index":[5636103,5963780,12124166,15335428,22347782,39583750],"borrows":[19791873,36044801],"buf":[5963780,7667719,15335428,15794184,16318471,21757960],"bigger":[1835009,34865153],"build":[22413313],"behave":[22413313],"b1p":[34996230],"borrow":[22740997,25034757,25559045,26411013,31195141,38469637,39714821],"big":[1245185,9895937,18415618,21102593,22478849,31850497,32178177,35192834,36831233,39059457],"behaviour":[35061761],"building":[20316161,22413313,25034753,30015489],"better":[29884417,39845889],"best":[2555905,29556737]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>FILE Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="FILE structure, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Math.Gmp.Native.FILE" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="00586c66-53ac-3fe3-16a4-3ceb2f94620b" /><meta name="guid" content="00586c66-53ac-3fe3-16a4-3ceb2f94620b" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">GMP Native Interface for .NET<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" title="GMP Native Interface for .NET" tocid="roottoc">GMP Native Interface for .NET</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm" title="Math.Gmp.Native" tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="1bcc07bd-8fee-1107-844c-a5ff10e7660c.htm" title="FILE Structure" tocid="1bcc07bd-8fee-1107-844c-a5ff10e7660c">FILE Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="00586c66-53ac-3fe3-16a4-3ceb2f94620b.htm" title="FILE Methods" tocid="00586c66-53ac-3fe3-16a4-3ceb2f94620b">FILE Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="4e0b1b66-de5f-3451-d835-df0116b8c789.htm" title="Equals Method " tocid="4e0b1b66-de5f-3451-d835-df0116b8c789">Equals Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="b6911fef-883d-ec11-c2ad-1ff1ff565601.htm" title="GetHashCode Method " tocid="b6911fef-883d-ec11-c2ad-1ff1ff565601">GetHashCode Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">FILE Methods</td></tr></table><span class="introStyle"></span> <p>The <a href="1bcc07bd-8fee-1107-844c-a5ff10e7660c.htm">FILE</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table class="members" id="methodList"><tr><th class="iconColumn">
 
</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="c35318b5-343e-5f6f-2a46-89cb3019121c.htm">Equals(Object)</a></td><td><div class="summary">
Returns a value indicating whether this instance is equal to a specified object.
</div> (Overrides <a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">ValueType<span id="LST612440A8_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST612440A8_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Equals(Object)</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="a964376d-5264-550c-0dc6-5ce21c48ac93.htm">Equals(FILE)</a></td><td><div class="summary">
Returns a value indicating whether this instance is equal to a specified <a href="1bcc07bd-8fee-1107-844c-a5ff10e7660c.htm">FILE</a> value.
</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="b6911fef-883d-ec11-c2ad-1ff1ff565601.htm">GetHashCode</a></td><td><div class="summary">
Returns the hash code for this instance.
</div> (Overrides <a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">ValueType<span id="LST612440A8_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST612440A8_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetHashCode<span id="LST612440A8_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST612440A8_2?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="1bcc07bd-8fee-1107-844c-a5ff10e7660c.htm">FILE Structure</a></div><div class="seeAlsoStyle"><a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>void_ptr.Equals Method (Object)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Math.Gmp.Native.void_ptr.Equals(System.Object)" /><meta name="Description" content="Returns a value indicating whether this instance is equal to a specified object." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="0177c7b6-b5d5-3815-b64a-4f3a7686bf6d" /><meta name="guid" content="0177c7b6-b5d5-3815-b64a-4f3a7686bf6d" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">GMP Native Interface for .NET<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" title="GMP Native Interface for .NET" tocid="roottoc">GMP Native Interface for .NET</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm" title="Math.Gmp.Native" tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm" title="void_ptr Structure" tocid="e200d734-044d-4cc7-acc7-2333d7cf3c9a">void_ptr Structure</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="e267ef2f-54a1-a3f1-441f-0655b542bf55.htm" title="void_ptr Methods" tocid="e267ef2f-54a1-a3f1-441f-0655b542bf55">void_ptr Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="0521b935-27ad-ca39-ed8a-6c4b4fc51116.htm" title="Equals Method " tocid="0521b935-27ad-ca39-ed8a-6c4b4fc51116">Equals Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="0177c7b6-b5d5-3815-b64a-4f3a7686bf6d.htm" title="Equals Method (Object)" tocid="0177c7b6-b5d5-3815-b64a-4f3a7686bf6d">Equals Method (Object)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="c39c5883-0cbc-86ee-d3a6-be3a95f8cadc.htm" title="Equals Method (void_ptr)" tocid="c39c5883-0cbc-86ee-d3a6-be3a95f8cadc">Equals Method (void_ptr)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">void_ptr<span id="LST2E427CA7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E427CA7_0?cpp=::|nu=.");</script>Equals Method (Object)</td></tr></table><span class="introStyle"></span> <div class="summary">
Returns a value indicating whether this instance is equal to a specified object.
</div><p> </p>
<strong>Namespace:</strong>
 <a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native</a><br />
<strong>Assembly:</strong>
 Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">override</span> <span class="identifier">bool</span> <span class="identifier">Equals</span>(
<span class="identifier">Object</span> <span class="parameter">obj</span>
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overrides</span> <span class="keyword">Function</span> <span class="identifier">Equals</span> (
<span class="parameter">obj</span> <span class="keyword">As</span> <span class="identifier">Object</span>
) <span class="keyword">As</span> <span class="identifier">Boolean</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">virtual</span> <span class="identifier">bool</span> <span class="identifier">Equals</span>(
<span class="identifier">Object</span>^ <span class="parameter">obj</span>
) <span class="keyword">override</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Equals</span> :
<span class="parameter">obj</span> : <span class="identifier">Object</span> <span class="keyword">-&gt;</span> <span class="identifier">bool</span>
<span class="keyword">override</span> <span class="identifier">Equals</span> :
<span class="parameter">obj</span> : <span class="identifier">Object</span> <span class="keyword">-&gt;</span> <span class="identifier">bool</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">obj</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST2E427CA7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E427CA7_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />An object to compare with this instance.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a><br /><span class="code">True</span> if <span class="parameter">obj</span> is an instance of <a href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm">void_ptr</a> and equals the value of this instance; otherwise, <span class="code">False</span>.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm">void_ptr Structure</a></div><div class="seeAlsoStyle"><a href="0521b935-27ad-ca39-ed8a-6c4b4fc51116.htm">Equals Overload</a></div><div class="seeAlsoStyle"><a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>mpz_t.ToIntPtr Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ToIntPtr method" /><meta name="System.Keywords" content="mpz_t.ToIntPtr method" /><meta name="Microsoft.Help.F1" content="Math.Gmp.Native.mpz_t.ToIntPtr" /><meta name="Microsoft.Help.Id" content="M:Math.Gmp.Native.mpz_t.ToIntPtr" /><meta name="Description" content="Gets the unmanaged memory pointer of the multiple precision integer." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="018d9747-3053-df6d-2bb3-5273ad735860" /><meta name="guid" content="018d9747-3053-df6d-2bb3-5273ad735860" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">GMP Native Interface for .NET<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" title="GMP Native Interface for .NET" tocid="roottoc">GMP Native Interface for .NET</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm" title="Math.Gmp.Native" tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="8beda7fb-bbc4-b56f-fd1f-1459377ecb3b.htm" title="mpz_t Class" tocid="8beda7fb-bbc4-b56f-fd1f-1459377ecb3b">mpz_t Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="430d894e-57e0-6020-0ad7-40b74cbd969f.htm" title="mpz_t Methods" tocid="430d894e-57e0-6020-0ad7-40b74cbd969f">mpz_t Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="018d9747-3053-df6d-2bb3-5273ad735860.htm" title="ToIntPtr Method " tocid="018d9747-3053-df6d-2bb3-5273ad735860">ToIntPtr Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="709eb598-ee38-4031-9dc5-74a73d8f9142.htm" title="ToString Method " tocid="709eb598-ee38-4031-9dc5-74a73d8f9142">ToString Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">mpz_t<span id="LST5304F94B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5304F94B_0?cpp=::|nu=.");</script>ToIntPtr Method </td></tr></table><span class="introStyle"></span> <div class="summary">
Gets the unmanaged memory pointer of the multiple precision integer.
</div><p> </p>
<strong>Namespace:</strong>
 <a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native</a><br />
<strong>Assembly:</strong>
 Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IntPtr</span> <span class="identifier">ToIntPtr</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">ToIntPtr</span> <span class="keyword">As</span> <span class="identifier">IntPtr</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="identifier">IntPtr</span> <span class="identifier">ToIntPtr</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ToIntPtr</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IntPtr</span>
</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/5he14kz8" target="_blank">IntPtr</a><br />The unmanaged memory pointer of the multiple precision integer.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="8beda7fb-bbc4-b56f-fd1f-1459377ecb3b.htm">mpz_t Class</a></div><div class="seeAlsoStyle"><a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>void_ptr.GetHashCode Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetHashCode method" /><meta name="System.Keywords" content="void_ptr.GetHashCode method" /><meta name="Microsoft.Help.F1" content="Math.Gmp.Native.void_ptr.GetHashCode" /><meta name="Microsoft.Help.Id" content="M:Math.Gmp.Native.void_ptr.GetHashCode" /><meta name="Description" content="Returns the hash code for this instance." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="04ef14d3-d09c-cfcb-0cea-8984c92612f5" /><meta name="guid" content="04ef14d3-d09c-cfcb-0cea-8984c92612f5" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">GMP Native Interface for .NET<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" title="GMP Native Interface for .NET" tocid="roottoc">GMP Native Interface for .NET</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm" title="Math.Gmp.Native" tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm" title="void_ptr Structure" tocid="e200d734-044d-4cc7-acc7-2333d7cf3c9a">void_ptr Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="e267ef2f-54a1-a3f1-441f-0655b542bf55.htm" title="void_ptr Methods" tocid="e267ef2f-54a1-a3f1-441f-0655b542bf55">void_ptr Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="0521b935-27ad-ca39-ed8a-6c4b4fc51116.htm" title="Equals Method " tocid="0521b935-27ad-ca39-ed8a-6c4b4fc51116">Equals Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="650e9cdb-0392-1173-aba8-9a1d6fc6a694.htm" title="FromIntPtr Method " tocid="650e9cdb-0392-1173-aba8-9a1d6fc6a694">FromIntPtr Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="04ef14d3-d09c-cfcb-0cea-8984c92612f5.htm" title="GetHashCode Method " tocid="04ef14d3-d09c-cfcb-0cea-8984c92612f5">GetHashCode Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="3e1375c2-3f44-721d-6ef3-32e49a3d7d3b.htm" title="ToIntPtr Method " tocid="3e1375c2-3f44-721d-6ef3-32e49a3d7d3b">ToIntPtr Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">void_ptr<span id="LST24EBAC3E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST24EBAC3E_0?cpp=::|nu=.");</script>GetHashCode Method </td></tr></table><span class="introStyle"></span> <div class="summary">
Returns the hash code for this instance.
</div><p> </p>
<strong>Namespace:</strong>
 <a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native</a><br />
<strong>Assembly:</strong>
 Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">override</span> <span class="identifier">int</span> <span class="identifier">GetHashCode</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overrides</span> <span class="keyword">Function</span> <span class="identifier">GetHashCode</span> <span class="keyword">As</span> <span class="identifier">Integer</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">virtual</span> <span class="identifier">int</span> <span class="identifier">GetHashCode</span>() <span class="keyword">override</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">GetHashCode</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">int</span>
<span class="keyword">override</span> <span class="identifier">GetHashCode</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">int</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><br />A 32-bit signed integer hash code.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="e200d734-044d-4cc7-acc7-2333d7cf3c9a.htm">void_ptr Structure</a></div><div class="seeAlsoStyle"><a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>

Some files were not shown because too many files have changed in this diff Show More