Gapotchenko.FX.Numerics
2022.1.4
Prefix Reserved
See the version list below for details.
dotnet add package Gapotchenko.FX.Numerics --version 2022.1.4
NuGet\Install-Package Gapotchenko.FX.Numerics -Version 2022.1.4
<PackageReference Include="Gapotchenko.FX.Numerics" Version="2022.1.4" />
paket add Gapotchenko.FX.Numerics --version 2022.1.4
#r "nuget: Gapotchenko.FX.Numerics, 2022.1.4"
// Install Gapotchenko.FX.Numerics as a Cake Addin #addin nuget:?package=Gapotchenko.FX.Numerics&version=2022.1.4 // Install Gapotchenko.FX.Numerics as a Cake Tool #tool nuget:?package=Gapotchenko.FX.Numerics&version=2022.1.4
Overview
Gapothenko.FX.Numerics
module provides hardware-accelerated operations for numeric data types.
BitOperations
BitOperations
class from Gapothenko.FX.Numerics
module provides bit manipulation operations for unsigned integer values of 32 and 64 bit lengths.
The main consumers of hardware-accelerated bit operations are path-finding and cryptographic algorithms.
BitOperations
class is a polyfill to the future as it first appeared in .NET Core 3.0.
Log2
Calculates the integer base 2 logarithm of a specified number.
By convention, Log2(0)
returns 0
since such operation is undefined.
The behavior corresponds to BSR
instruction from Intel x86 instruction set.
PopCount
Calculates the bit population count for a specified value.
The result corresponds to the number of bits set to 1
.
The behavior corresponds to POPCNT
instruction from Intel x86 instruction set.
RotateLeft
Rotates the specified value left by the specified number of bits.
The behavior corresponds to ROL
instruction from Intel x86 instruction set.
RotateRight
Rotates the specified value right by the specified number of bits.
The behavior corresponds to ROR
instruction from Intel x86 instruction set.
BitOperationsEx
BitOperationsEx
provides an extended set of bit-twidling operations that are not in .NET mainstream yet.
Reverse
Reverses the order of bits in a specified value. The least significant bit gets swapped with the most significant bit, and so on for all remaining bits of the number. For example:
BitOperationsEx.Reverse((byte)0b10100001) = 0b10000101
Hardware Acceleration
Gapothenko.FX.Numerics
automatically employs hardware acceleration on conforming CPUs and architectures.
If hardware acceleration is not available for a particular operation then a highly-optimized software fallback implementation is used instead.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 is compatible. netcoreapp2.1 is compatible. netcoreapp2.2 was computed. netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 is compatible. net472 is compatible. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 2.0
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETCoreApp 2.1
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETCoreApp 3.0
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETFramework 4.6
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETFramework 4.7.1
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETFramework 4.7.2
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETStandard 2.0
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
.NETStandard 2.1
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
net5.0
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
net6.0
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
-
net7.0
- Gapotchenko.FX (>= 2022.1.4)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2022.1.4)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Gapotchenko.FX.Numerics:
Package | Downloads |
---|---|
Gapotchenko.FX.Profiles.Core
Represents the Core profile of Gapotchenko.FX. |
|
Gapotchenko.FX.Data.Integrity.Checksum.Crc8
Provides CRC-8 checksum algorithms. |
|
Gapotchenko.FX.Data.Integrity.Checksum.Crc16
Provides CRC-16 checksum algorithms. |
|
Gapotchenko.FX.Data.Integrity.Checksum.Crc32
Provides CRC-32 checksum algorithms. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2024.1.3 | 221 | 11/10/2024 |
2022.2.7 | 5,498 | 5/1/2022 |
2022.2.5 | 1,519 | 5/1/2022 |
2022.1.4 | 1,488 | 4/6/2022 |
2021.2.21 | 815 | 1/21/2022 |
2021.2.20 | 730 | 1/17/2022 |
2021.1.5 | 606 | 7/6/2021 |
2020.2.2-beta | 431 | 11/21/2020 |
2020.1.15 | 727 | 11/5/2020 |
2020.1.9-beta | 486 | 7/14/2020 |
2020.1.8-beta | 466 | 7/14/2020 |
2020.1.7-beta | 509 | 7/14/2020 |
2020.1.1-beta | 546 | 2/11/2020 |
2019.3.7 | 768 | 11/4/2019 |
2019.2.20 | 797 | 8/13/2019 |