Gapotchenko.FX.Numerics
2024.1.3
Prefix Reserved
dotnet add package Gapotchenko.FX.Numerics --version 2024.1.3
NuGet\Install-Package Gapotchenko.FX.Numerics -Version 2024.1.3
<PackageReference Include="Gapotchenko.FX.Numerics" Version="2024.1.3" />
paket add Gapotchenko.FX.Numerics --version 2024.1.3
#r "nuget: Gapotchenko.FX.Numerics, 2024.1.3"
// Install Gapotchenko.FX.Numerics as a Cake Addin #addin nuget:?package=Gapotchenko.FX.Numerics&version=2024.1.3 // Install Gapotchenko.FX.Numerics as a Cake Tool #tool nuget:?package=Gapotchenko.FX.Numerics&version=2024.1.3
Overview
The module provides hardware-accelerated operations for numeric data types.
BitOperations Class
BitOperations
class 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
BitOperations.Log2
method calculates the integer base 2 logarithm of a specified number.
Log2(0)
returns an undefined value since such operation is undefined.
The behavior corresponds to BSR
instruction from Intel x86 instruction set.
PopCount
BitOperations.PopCount
method 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
BitOperations.RotateLeft
method rotates the specified value left by the specified number of bits.
The behavior corresponds to ROL
instruction from Intel x86 instruction set.
RotateRight
BitOperations.RotateRight
method rotates the specified value right by the specified number of bits.
The behavior corresponds to ROR
instruction from Intel x86 instruction set.
BitOperationsEx Class
BitOperationsEx
class provides an extended set of bit-twidling operations that are not in mainstream .NET yet.
Reverse
BitOperationsEx.Reverse
method reverses the order of bits in a specified value and returns a result.
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.
Commonly Used Types
Gapotchenko.FX.Numerics.BitOperations
Other Modules
Let's continue with a look at some other modules provided by Gapotchenko.FX:
- Gapotchenko.FX
- Gapotchenko.FX.AppModel.Information
- Gapotchenko.FX.Collections
- Gapotchenko.FX.Console
- Gapotchenko.FX.Data
- Gapotchenko.FX.Diagnostics
- Gapotchenko.FX.IO
- Gapotchenko.FX.Linq
- Gapotchenko.FX.Math
- Gapotchenko.FX.Memory
- ➴ Gapotchenko.FX.Numerics ✱
- Gapotchenko.FX.Reflection.Loader ✱
- Gapotchenko.FX.Runtime.InteropServices ✱
- Gapotchenko.FX.Security.Cryptography
- Gapotchenko.FX.Text
- Gapotchenko.FX.Threading
- Gapotchenko.FX.Tuples
Symbol ✱ denotes an advanced module.
Or take a look at the full list of modules.
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 is compatible. 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. net9.0 is compatible. |
.NET Core | netcoreapp2.0 was computed. 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 | net461 is compatible. 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.1
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
.NETCoreApp 3.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
.NETFramework 4.6.1
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
.NETFramework 4.7.1
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
.NETFramework 4.7.2
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
.NETStandard 2.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
.NETStandard 2.1
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
net5.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
net6.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
net7.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
net8.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
-
net9.0
- Gapotchenko.FX (>= 2024.1.3)
- Gapotchenko.FX.Runtime.CompilerServices.Intrinsics (>= 2024.1.3)
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 | 253 | 11/10/2024 |
2022.2.7 | 5,768 | 5/1/2022 |
2022.2.5 | 1,523 | 5/1/2022 |
2022.1.4 | 1,492 | 4/6/2022 |
2021.2.21 | 819 | 1/21/2022 |
2021.2.20 | 734 | 1/17/2022 |
2021.1.5 | 612 | 7/6/2021 |
2020.2.2-beta | 433 | 11/21/2020 |
2020.1.15 | 733 | 11/5/2020 |
2020.1.9-beta | 488 | 7/14/2020 |
2020.1.8-beta | 468 | 7/14/2020 |
2020.1.7-beta | 511 | 7/14/2020 |
2020.1.1-beta | 548 | 2/11/2020 |
2019.3.7 | 774 | 11/4/2019 |
2019.2.20 | 803 | 8/13/2019 |