diff --git a/EvenPerfectBitScanner.Benchmarks/GpuModularArithmeticBenchmarks.cs b/EvenPerfectBitScanner.Benchmarks/GpuModularArithmeticBenchmarks.cs index c4ef16c..9c9f986 100644 --- a/EvenPerfectBitScanner.Benchmarks/GpuModularArithmeticBenchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/GpuModularArithmeticBenchmarks.cs @@ -1,4 +1,3 @@ -using System; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/MersenneDivisorCycleLengthGpuBenchmarks.cs b/EvenPerfectBitScanner.Benchmarks/MersenneDivisorCycleLengthGpuBenchmarks.cs index 73ce540..51556d0 100644 --- a/EvenPerfectBitScanner.Benchmarks/MersenneDivisorCycleLengthGpuBenchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/MersenneDivisorCycleLengthGpuBenchmarks.cs @@ -1,6 +1,5 @@ using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; -using PerfectNumbers.Core; using BenchmarkDotNet.Jobs; namespace EvenPerfectBitScanner.Benchmarks; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod10Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod10Benchmarks.cs index b55a55c..694f69d 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod10Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod10Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod10_8_5_3Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod10_8_5_3Benchmarks.cs index 5547dd2..07cefb8 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod10_8_5_3Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod10_8_5_3Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using PerfectNumbers.Core; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod11Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod11Benchmarks.cs index 7b69195..865d8a2 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod11Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod11Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod128Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod128Benchmarks.cs index c2d0bd1..682b18e 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod128Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod128Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod3Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod3Benchmarks.cs index 32e0513..b029414 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod3Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod3Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod5Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod5Benchmarks.cs index 129532e..a8c8e4e 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod5Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod5Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod6Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod6Benchmarks.cs index 34c64ad..e6b700a 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod6Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod6Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod7Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod7Benchmarks.cs index 5f06178..6f9c6e6 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod7Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod7Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Mod8Benchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Mod8Benchmarks.cs index 45008e1..02fc914 100644 --- a/EvenPerfectBitScanner.Benchmarks/Mod8Benchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Mod8Benchmarks.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/ModBenchmarkCase.cs b/EvenPerfectBitScanner.Benchmarks/ModBenchmarkCase.cs index 1f77f22..c791586 100644 --- a/EvenPerfectBitScanner.Benchmarks/ModBenchmarkCase.cs +++ b/EvenPerfectBitScanner.Benchmarks/ModBenchmarkCase.cs @@ -1,5 +1,3 @@ -using System; - namespace EvenPerfectBitScanner.Benchmarks; public enum ModNumericType diff --git a/EvenPerfectBitScanner.Benchmarks/MontgomeryMultiplyBenchmarks.cs b/EvenPerfectBitScanner.Benchmarks/MontgomeryMultiplyBenchmarks.cs index c38c71a..5ed73e1 100644 --- a/EvenPerfectBitScanner.Benchmarks/MontgomeryMultiplyBenchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/MontgomeryMultiplyBenchmarks.cs @@ -1,4 +1,3 @@ -using System; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/MulMod64Benchmarks.Gpu.cs b/EvenPerfectBitScanner.Benchmarks/MulMod64Benchmarks.Gpu.cs index a7f5d28..e6648da 100644 --- a/EvenPerfectBitScanner.Benchmarks/MulMod64Benchmarks.Gpu.cs +++ b/EvenPerfectBitScanner.Benchmarks/MulMod64Benchmarks.Gpu.cs @@ -1,12 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Linq; using System.Runtime.CompilerServices; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; using ILGPU; using ILGPU.Runtime; -using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; namespace EvenPerfectBitScanner.Benchmarks; diff --git a/EvenPerfectBitScanner.Benchmarks/Pow2ModBenchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Pow2ModBenchmarks.cs index e515ecb..6f51747 100644 --- a/EvenPerfectBitScanner.Benchmarks/Pow2ModBenchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Pow2ModBenchmarks.cs @@ -1,4 +1,3 @@ -using System; using System.Buffers.Binary; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; diff --git a/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedBenchmarkData.cs b/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedBenchmarkData.cs index d4af20d..1f01af9 100644 --- a/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedBenchmarkData.cs +++ b/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedBenchmarkData.cs @@ -1,4 +1,3 @@ -using System; using PerfectNumbers.Core; namespace EvenPerfectBitScanner.Benchmarks; diff --git a/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedKeepMontgomeryGpuBenchmarks.cs b/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedKeepMontgomeryGpuBenchmarks.cs index 38b1d5b..f26a60c 100644 --- a/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedKeepMontgomeryGpuBenchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/Pow2MontgomeryModWindowedKeepMontgomeryGpuBenchmarks.cs @@ -1,4 +1,3 @@ -using System; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; using PerfectNumbers.Core; diff --git a/EvenPerfectBitScanner.Tests/ProgramTests.cs b/EvenPerfectBitScanner.Tests/ProgramTests.cs index 9be802b..d5f0a27 100644 --- a/EvenPerfectBitScanner.Tests/ProgramTests.cs +++ b/EvenPerfectBitScanner.Tests/ProgramTests.cs @@ -3,13 +3,9 @@ using Xunit; using System.Reflection; using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; - -using EvenPerfectBitScanner; using EvenPerfectBitScanner.Candidates; using EvenPerfectBitScanner.Candidates.Transforms; using System.Numerics; -using System.Threading; -using System.Threading.Tasks; namespace EvenPerfectBitScanner.Tests; diff --git a/EvenPerfectBitScanner.Tests/ResultsFileNameTests.cs b/EvenPerfectBitScanner.Tests/ResultsFileNameTests.cs index 04784fc..35110dc 100644 --- a/EvenPerfectBitScanner.Tests/ResultsFileNameTests.cs +++ b/EvenPerfectBitScanner.Tests/ResultsFileNameTests.cs @@ -1,6 +1,3 @@ -using System.Collections.Generic; -using System.IO; -using System.Numerics; using FluentAssertions; using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; diff --git a/EvenPerfectBitScanner/CalculationResultHandler.cs b/EvenPerfectBitScanner/CalculationResultHandler.cs index 8fd875a..47a8cf5 100644 --- a/EvenPerfectBitScanner/CalculationResultHandler.cs +++ b/EvenPerfectBitScanner/CalculationResultHandler.cs @@ -1,8 +1,6 @@ using System.Buffers.Text; -using System.IO; using System.Runtime.CompilerServices; using System.Text; -using System.Threading; using PerfectNumbers.Core; namespace EvenPerfectBitScanner; diff --git a/EvenPerfectBitScanner/Candidates/CalculationTestTime.cs b/EvenPerfectBitScanner/Candidates/CalculationTestTime.cs index 2933924..71d1c2e 100644 --- a/EvenPerfectBitScanner/Candidates/CalculationTestTime.cs +++ b/EvenPerfectBitScanner/Candidates/CalculationTestTime.cs @@ -1,5 +1,4 @@ using System.Globalization; -using System.IO; namespace EvenPerfectBitScanner.Candidates; diff --git a/EvenPerfectBitScanner/Candidates/CandidatesCalculator.cs b/EvenPerfectBitScanner/Candidates/CandidatesCalculator.cs index 352d5d4..676e6f8 100644 --- a/EvenPerfectBitScanner/Candidates/CandidatesCalculator.cs +++ b/EvenPerfectBitScanner/Candidates/CandidatesCalculator.cs @@ -1,5 +1,4 @@ using System.Runtime.CompilerServices; -using System.Threading; using Open.Numeric.Primes; using PerfectNumbers.Core; using EvenPerfectBitScanner.Candidates.Transforms; diff --git a/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddPrimesTransform.cs b/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddPrimesTransform.cs index ad7b0b3..3754af3 100644 --- a/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddPrimesTransform.cs +++ b/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddPrimesTransform.cs @@ -1,6 +1,4 @@ using System.Runtime.CompilerServices; -using System.Threading; -using EvenPerfectBitScanner.Candidates; using Open.Numeric.Primes; namespace EvenPerfectBitScanner.Candidates.Transforms; diff --git a/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddTransform.cs b/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddTransform.cs index 39b1372..5b492b3 100644 --- a/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddTransform.cs +++ b/EvenPerfectBitScanner/Candidates/Transforms/CandidateAddTransform.cs @@ -1,6 +1,4 @@ using System.Runtime.CompilerServices; -using System.Threading; -using EvenPerfectBitScanner.Candidates; namespace EvenPerfectBitScanner.Candidates.Transforms; diff --git a/EvenPerfectBitScanner/Candidates/Transforms/CandidateBitTransform.cs b/EvenPerfectBitScanner/Candidates/Transforms/CandidateBitTransform.cs index 19072bc..7b898e4 100644 --- a/EvenPerfectBitScanner/Candidates/Transforms/CandidateBitTransform.cs +++ b/EvenPerfectBitScanner/Candidates/Transforms/CandidateBitTransform.cs @@ -1,5 +1,4 @@ using System.Runtime.CompilerServices; -using System.Threading; namespace EvenPerfectBitScanner.Candidates.Transforms; diff --git a/EvenPerfectBitScanner/CliArguments.cs b/EvenPerfectBitScanner/CliArguments.cs index 3145ac4..8b64344 100644 --- a/EvenPerfectBitScanner/CliArguments.cs +++ b/EvenPerfectBitScanner/CliArguments.cs @@ -1,6 +1,4 @@ -using System; using System.Globalization; -using System.Numerics; using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; diff --git a/EvenPerfectBitScanner/IO/CalculationResultsFile.cs b/EvenPerfectBitScanner/IO/CalculationResultsFile.cs index 18fbbdb..a6a0b29 100644 --- a/EvenPerfectBitScanner/IO/CalculationResultsFile.cs +++ b/EvenPerfectBitScanner/IO/CalculationResultsFile.cs @@ -1,7 +1,6 @@ using Open.Collections; using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; -using EvenPerfectBitScanner; namespace EvenPerfectBitScanner.IO; diff --git a/EvenPerfectBitScanner/Utf8CliParser.cs b/EvenPerfectBitScanner/Utf8CliParser.cs index 0a54c6d..a2b4cc7 100644 --- a/EvenPerfectBitScanner/Utf8CliParser.cs +++ b/EvenPerfectBitScanner/Utf8CliParser.cs @@ -1,4 +1,3 @@ -using System; using System.Buffers; using System.Buffers.Text; using System.Text; diff --git a/PerfectNumbers.Core.Tests/Gpu/GpuContextPoolTests.cs b/PerfectNumbers.Core.Tests/Gpu/GpuContextPoolTests.cs index 8558b82..44c5778 100644 --- a/PerfectNumbers.Core.Tests/Gpu/GpuContextPoolTests.cs +++ b/PerfectNumbers.Core.Tests/Gpu/GpuContextPoolTests.cs @@ -1,7 +1,3 @@ -using FluentAssertions; -using ILGPU; -using ILGPU.Runtime; -using PerfectNumbers.Core.Gpu; using Xunit; namespace PerfectNumbers.Core.Tests.Gpu; diff --git a/PerfectNumbers.Core.Tests/Gpu/GpuKernelCompilationTests.cs b/PerfectNumbers.Core.Tests/Gpu/GpuKernelCompilationTests.cs index 0bef11d..bc4b36c 100644 --- a/PerfectNumbers.Core.Tests/Gpu/GpuKernelCompilationTests.cs +++ b/PerfectNumbers.Core.Tests/Gpu/GpuKernelCompilationTests.cs @@ -1,5 +1,4 @@ using System.Reflection; -using FluentAssertions; using ILGPU; using ILGPU.Runtime; using PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core.Tests/Gpu/PrimeTesterGpuTests.cs b/PerfectNumbers.Core.Tests/Gpu/PrimeTesterGpuTests.cs index 19a9984..614a91c 100644 --- a/PerfectNumbers.Core.Tests/Gpu/PrimeTesterGpuTests.cs +++ b/PerfectNumbers.Core.Tests/Gpu/PrimeTesterGpuTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core.Gpu; using Xunit; namespace PerfectNumbers.Core.Tests.Gpu; diff --git a/PerfectNumbers.Core.Tests/Gpu/ULongExtensionsGpuTests.cs b/PerfectNumbers.Core.Tests/Gpu/ULongExtensionsGpuTests.cs index 0f9f674..789ab31 100644 --- a/PerfectNumbers.Core.Tests/Gpu/ULongExtensionsGpuTests.cs +++ b/PerfectNumbers.Core.Tests/Gpu/ULongExtensionsGpuTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core; using Xunit; namespace PerfectNumbers.Core.Tests.Gpu; diff --git a/PerfectNumbers.Core.Tests/HeuristicCombinedPrimeTesterTests.cs b/PerfectNumbers.Core.Tests/HeuristicCombinedPrimeTesterTests.cs index 92e6e26..1447ad6 100644 --- a/PerfectNumbers.Core.Tests/HeuristicCombinedPrimeTesterTests.cs +++ b/PerfectNumbers.Core.Tests/HeuristicCombinedPrimeTesterTests.cs @@ -1,7 +1,3 @@ -using System; -using System.Numerics; -using System.Collections.Generic; -using PerfectNumbers.Core; using FluentAssertions; using Xunit; diff --git a/PerfectNumbers.Core.Tests/MersenneNumberIncrementalCpuTesterTests.cs b/PerfectNumbers.Core.Tests/MersenneNumberIncrementalCpuTesterTests.cs index dd7307d..d9e9c80 100644 --- a/PerfectNumbers.Core.Tests/MersenneNumberIncrementalCpuTesterTests.cs +++ b/PerfectNumbers.Core.Tests/MersenneNumberIncrementalCpuTesterTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core; using PerfectNumbers.Core.Cpu; using Xunit; using UInt128 = System.UInt128; diff --git a/PerfectNumbers.Core.Tests/MersenneNumberIncrementalGpuTesterTests.cs b/PerfectNumbers.Core.Tests/MersenneNumberIncrementalGpuTesterTests.cs index b990ece..5d30dda 100644 --- a/PerfectNumbers.Core.Tests/MersenneNumberIncrementalGpuTesterTests.cs +++ b/PerfectNumbers.Core.Tests/MersenneNumberIncrementalGpuTesterTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; using Xunit; using UInt128 = System.UInt128; diff --git a/PerfectNumbers.Core.Tests/MersenneNumberOrderCpuTesterTests.cs b/PerfectNumbers.Core.Tests/MersenneNumberOrderCpuTesterTests.cs index 2d2756d..8ce0e72 100644 --- a/PerfectNumbers.Core.Tests/MersenneNumberOrderCpuTesterTests.cs +++ b/PerfectNumbers.Core.Tests/MersenneNumberOrderCpuTesterTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core; using PerfectNumbers.Core.Cpu; using Xunit; using UInt128 = System.UInt128; diff --git a/PerfectNumbers.Core.Tests/MersenneNumberOrderGpuTesterTests.cs b/PerfectNumbers.Core.Tests/MersenneNumberOrderGpuTesterTests.cs index 108a218..39709a3 100644 --- a/PerfectNumbers.Core.Tests/MersenneNumberOrderGpuTesterTests.cs +++ b/PerfectNumbers.Core.Tests/MersenneNumberOrderGpuTesterTests.cs @@ -1,6 +1,5 @@ using System.Reflection; using FluentAssertions; -using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; using Xunit; using UInt128 = System.UInt128; diff --git a/PerfectNumbers.Core.Tests/MersenneNumberResidueCpuTesterTests.cs b/PerfectNumbers.Core.Tests/MersenneNumberResidueCpuTesterTests.cs index aad010d..de70c9c 100644 --- a/PerfectNumbers.Core.Tests/MersenneNumberResidueCpuTesterTests.cs +++ b/PerfectNumbers.Core.Tests/MersenneNumberResidueCpuTesterTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core; using PerfectNumbers.Core.Cpu; using Xunit; using UInt128 = System.UInt128; diff --git a/PerfectNumbers.Core.Tests/MersenneNumberResidueGpuTesterTests.cs b/PerfectNumbers.Core.Tests/MersenneNumberResidueGpuTesterTests.cs index 6063de1..a550584 100644 --- a/PerfectNumbers.Core.Tests/MersenneNumberResidueGpuTesterTests.cs +++ b/PerfectNumbers.Core.Tests/MersenneNumberResidueGpuTesterTests.cs @@ -1,5 +1,4 @@ using FluentAssertions; -using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; using Xunit; using UInt128 = System.UInt128; diff --git a/PerfectNumbers.Core/Cpu/MersenneNumberDivisorByDivisorCpuTester.cs b/PerfectNumbers.Core/Cpu/MersenneNumberDivisorByDivisorCpuTester.cs index f8cea9e..483d373 100644 --- a/PerfectNumbers.Core/Cpu/MersenneNumberDivisorByDivisorCpuTester.cs +++ b/PerfectNumbers.Core/Cpu/MersenneNumberDivisorByDivisorCpuTester.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; using System.Runtime.CompilerServices; -using PerfectNumbers.Core; using PerfectNumbers.Core.Gpu; using PerfectNumbers.Core.Gpu.Accelerators; diff --git a/PerfectNumbers.Core/DivisorCycleCache.cs b/PerfectNumbers.Core/DivisorCycleCache.cs index 26e7a6b..0947ad4 100644 --- a/PerfectNumbers.Core/DivisorCycleCache.cs +++ b/PerfectNumbers.Core/DivisorCycleCache.cs @@ -1,10 +1,5 @@ -using System.Buffers; -using System.Collections.Concurrent; -using System.Collections.Generic; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using ILGPU; -using ILGPU.Algorithms; using ILGPU.Runtime; using PerfectNumbers.Core.Gpu; using PerfectNumbers.Core.Gpu.Accelerators; diff --git a/PerfectNumbers.Core/DivisorGenerator.cs b/PerfectNumbers.Core/DivisorGenerator.cs index 4cce836..ff4585e 100644 --- a/PerfectNumbers.Core/DivisorGenerator.cs +++ b/PerfectNumbers.Core/DivisorGenerator.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Runtime.CompilerServices; namespace PerfectNumbers.Core; diff --git a/PerfectNumbers.Core/Gpu/Accelerators/PrimeOrderCalculatorAccelerator.cs b/PerfectNumbers.Core/Gpu/Accelerators/PrimeOrderCalculatorAccelerator.cs index f569523..26706f6 100644 --- a/PerfectNumbers.Core/Gpu/Accelerators/PrimeOrderCalculatorAccelerator.cs +++ b/PerfectNumbers.Core/Gpu/Accelerators/PrimeOrderCalculatorAccelerator.cs @@ -97,14 +97,14 @@ public sealed class PrimeOrderCalculatorAccelerator #region Static Tables - public readonly MemoryBuffer1D DevicePrimesLastOne; - public readonly MemoryBuffer1D DevicePrimesLastSeven; - public readonly MemoryBuffer1D DevicePrimesLastThree; - public readonly MemoryBuffer1D DevicePrimesLastNine; - public readonly MemoryBuffer1D DevicePrimesPow2LastOne; - public readonly MemoryBuffer1D DevicePrimesPow2LastSeven; - public readonly MemoryBuffer1D DevicePrimesPow2LastThree; - public readonly MemoryBuffer1D DevicePrimesPow2LastNine; + public readonly ArrayView1D DevicePrimesLastOne; + public readonly ArrayView1D DevicePrimesLastSeven; + public readonly ArrayView1D DevicePrimesLastThree; + public readonly ArrayView1D DevicePrimesLastNine; + public readonly ArrayView1D DevicePrimesPow2LastOne; + public readonly ArrayView1D DevicePrimesPow2LastSeven; + public readonly ArrayView1D DevicePrimesPow2LastThree; + public readonly ArrayView1D DevicePrimesPow2LastNine; #endregion @@ -112,8 +112,8 @@ public sealed class PrimeOrderCalculatorAccelerator public readonly MemoryBuffer1D SpecialMaxResult; public readonly HeuristicCombinedGpuViews DivisorTables; - public readonly MemoryBuffer1D SmallPrimeFactorPrimes; - public readonly MemoryBuffer1D SmallPrimeFactorSquares; + public readonly ArrayView1D SmallPrimeFactorPrimes; + public readonly ArrayView1D SmallPrimeFactorSquares; public readonly Kernel CheckFactorsKernel; public readonly Kernel ConvertToStandardKernel; @@ -128,67 +128,69 @@ public sealed class PrimeOrderCalculatorAccelerator public void EnsureCapacity(int factorsCount, int primeTesterCapacity) { - if (factorsCount > Pow2ModEntriesToTestOnDevice.Length) + Accelerator accelerator = Accelerator; + MemoryBuffer1D, Stride1D.Dense> pow2ModEntriesToTestOnDevice = Pow2ModEntriesToTestOnDevice; + if (pow2ModEntriesToTestOnDevice.Length < factorsCount) { - Accelerator accelerator = Accelerator; - Pow2ModEntriesToTestOnDevice.Dispose(); + pow2ModEntriesToTestOnDevice.Dispose(); Pow2ModEntriesToTestOnDevice = accelerator.Allocate1D>(factorsCount); } - if (primeTesterCapacity > Input.Length) + MemoryBuffer1D input = Input; + if (input.Length < primeTesterCapacity) { - Input.Dispose(); - Input = Accelerator.Allocate1D(primeTesterCapacity); + input.Dispose(); + Input = accelerator.Allocate1D(primeTesterCapacity); } - if (primeTesterCapacity > OutputByte.Length) + MemoryBuffer1D outputByte = OutputByte; + if (outputByte.Length < primeTesterCapacity) { - OutputByte.Dispose(); - OutputByte = Accelerator.Allocate1D(primeTesterCapacity); + outputByte.Dispose(); + OutputByte = accelerator.Allocate1D(primeTesterCapacity); } - if (primeTesterCapacity > OutputInt.Length) + MemoryBuffer1D outputInt = OutputInt; + if (outputInt.Length < primeTesterCapacity) { - OutputInt.Dispose(); - OutputInt = Accelerator.Allocate1D(primeTesterCapacity); + outputInt.Dispose(); + OutputInt = accelerator.Allocate1D(primeTesterCapacity); } } public void EnsureSmallPrimeFactorSlotsCapacity(int newSize) { // Console.WriteLine($"Resizing GPU scratch buffer from pool ({buffer.SmallPrimeFactorPrimeSlots.Length} / {smallPrimeFactorSlotCount}), ({buffer.SpecialMaxFactors.Length}/{specialMaxFactorCapacity})"); - if (OutputUlong.Length < newSize) + var accelerator = Accelerator; + MemoryBuffer1D outputUlong = OutputUlong; + if (outputUlong.Length < newSize) { - OutputUlong.Dispose(); - - var accelerator = Accelerator; + outputUlong.Dispose(); OutputUlong = accelerator.Allocate1D(newSize); } - if (OutputInt.Length < newSize) + MemoryBuffer1D outputInt = OutputInt; + if (outputInt.Length < newSize) { - OutputInt.Dispose(); - - var accelerator = Accelerator; + outputInt.Dispose(); OutputInt = accelerator.Allocate1D(newSize); } } public void EnsureSpecialMaxFactorsCapacity(int newSize) { - if (Input.Length < newSize) + var accelerator = Accelerator; + MemoryBuffer1D input = Input; + if (input.Length < newSize) { - Input.Dispose(); - - var accelerator = Accelerator; + input.Dispose(); Input = accelerator.Allocate1D(newSize); } - if (OutputUlong.Length < newSize) + MemoryBuffer1D outputUlong = OutputUlong; + if (outputUlong.Length < newSize) { - OutputUlong.Dispose(); - - var accelerator = Accelerator; + outputUlong.Dispose(); OutputUlong = accelerator.Allocate1D(newSize); } } @@ -209,55 +211,51 @@ public sealed class PrimeOrderCalculatorAccelerator LastDigitGpuTables lastDigitSharedTables = LastDigitGpuTables.GetStaticTables(acceleratorIndex); - DevicePrimesLastOne = lastDigitSharedTables.DevicePrimesLastOne; - DevicePrimesLastSeven = lastDigitSharedTables.DevicePrimesLastSeven; - DevicePrimesLastThree = lastDigitSharedTables.DevicePrimesLastThree; - DevicePrimesLastNine = lastDigitSharedTables.DevicePrimesLastNine; - DevicePrimesPow2LastOne = lastDigitSharedTables.DevicePrimesPow2LastOne; - DevicePrimesPow2LastSeven = lastDigitSharedTables.DevicePrimesPow2LastSeven; - DevicePrimesPow2LastThree = lastDigitSharedTables.DevicePrimesPow2LastThree; - DevicePrimesPow2LastNine = lastDigitSharedTables.DevicePrimesPow2LastNine; + DevicePrimesLastOne = lastDigitSharedTables.DevicePrimesLastOne.View; + DevicePrimesLastSeven = lastDigitSharedTables.DevicePrimesLastSeven.View; + DevicePrimesLastThree = lastDigitSharedTables.DevicePrimesLastThree.View; + DevicePrimesLastNine = lastDigitSharedTables.DevicePrimesLastNine.View; + DevicePrimesPow2LastOne = lastDigitSharedTables.DevicePrimesPow2LastOne.View; + DevicePrimesPow2LastSeven = lastDigitSharedTables.DevicePrimesPow2LastSeven.View; + DevicePrimesPow2LastThree = lastDigitSharedTables.DevicePrimesPow2LastThree.View; + DevicePrimesPow2LastNine = lastDigitSharedTables.DevicePrimesPow2LastNine.View; - var heuristicSharedTables = HeuristicCombinedGpuTables.GetStaticTables(acceleratorIndex); - - DivisorTables = heuristicSharedTables.CreateViews(); + DivisorTables = HeuristicCombinedGpuTables + .GetStaticTables(acceleratorIndex) + .CreateViews(); var smallPrimeFactorTables = SmallPrimeFactorGpuTables.GetStaticTables(acceleratorIndex); - SmallPrimeFactorPrimes = smallPrimeFactorTables.Primes; - SmallPrimeFactorSquares = smallPrimeFactorTables.Squares; + SmallPrimeFactorPrimes = smallPrimeFactorTables.Primes.View; + SmallPrimeFactorSquares = smallPrimeFactorTables.Squares.View; - var checkFactorsKernel = accelerator.LoadStreamKernel, Stride1D.Dense>, MontgomeryDivisorData, ArrayView1D>(PrimeOrderGpuHeuristics.CheckFactorsKernel); - CheckFactorsKernel = KernelUtil.GetKernel(checkFactorsKernel); + CheckFactorsKernel = KernelUtil.GetKernel(accelerator.LoadStreamKernel, Stride1D.Dense>, MontgomeryDivisorData, ArrayView1D>(PrimeOrderGpuHeuristics.CheckFactorsKernel)); - var convertKernel = accelerator.LoadAutoGroupedStreamKernel, MontgomeryDivisorData, ArrayView1D>(Pow2MontgomeryKernels.Pow2MontgomeryKernelConvertToStandard); - ConvertToStandardKernel = KernelUtil.GetKernel(convertKernel); + ConvertToStandardKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, MontgomeryDivisorData, ArrayView1D>(Pow2MontgomeryKernels.Pow2MontgomeryKernelConvertToStandard)); HeuristicCombinedTrialDivisionKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, ulong, ulong, HeuristicCombinedGpuViews>(PrimeTesterKernels.HeuristicTrialCombinedDivisionKernel)); - var keepKernel = accelerator.LoadAutoGroupedStreamKernel, MontgomeryDivisorData, ArrayView1D>(Pow2MontgomeryKernels.Pow2MontgomeryKernelKeepMontgomery); - KeepMontgomeryKernel = KernelUtil.GetKernel(keepKernel); - - SmallPrimeSieveKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView>(PrimeTesterKernels.SmallPrimeSieveKernel)); + KeepMontgomeryKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, MontgomeryDivisorData, ArrayView1D>(Pow2MontgomeryKernels.Pow2MontgomeryKernelKeepMontgomery)); PollardRhoKernel = KernelUtil.GetKernel(accelerator.LoadStreamKernel, ArrayView1D, ArrayView1D>(Pow2MontgomeryKernels.TryPollardRhoKernel)); - Pow2ModWideKernel = KernelUtil.GetKernel( - accelerator.LoadAutoGroupedStreamKernel, GpuUInt128, ArrayView1D>(PrimeOrderGpuHeuristics.Pow2ModKernelWide)); + Pow2ModWideKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, GpuUInt128, ArrayView1D>(PrimeOrderGpuHeuristics.Pow2ModKernelWide)); SharesFactorKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, ArrayView>(PrimeTesterKernels.SharesFactorKernel)); - SpecialMaxKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, int, MontgomeryDivisorData, ArrayView1D, ArrayView1D>(PrimeOrderGpuHeuristics.EvaluateSpecialMaxCandidatesKernel)); - SmallPrimeFactorKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, ArrayView1D, int, ArrayView1D, ArrayView1D, ArrayView1D, ArrayView1D>(SmallPrimeFactorKernels.SmallPrimeFactorKernelScan)); + + SmallPrimeSieveKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView, ArrayView>(PrimeTesterKernels.SmallPrimeSieveKernel)); + + SpecialMaxKernel = KernelUtil.GetKernel(accelerator.LoadAutoGroupedStreamKernel, int, MontgomeryDivisorData, ArrayView1D, ArrayView1D>(PrimeOrderGpuHeuristics.EvaluateSpecialMaxCandidatesKernel)); } public void Dispose() { Input.Dispose(); - OutputUlong.Dispose(); - Pow2ModEntriesToTestOnDevice.Dispose(); OutputByte.Dispose(); OutputInt.Dispose(); + OutputUlong.Dispose(); + Pow2ModEntriesToTestOnDevice.Dispose(); SmallPrimeFactorCountSlot.Dispose(); SpecialMaxResult.Dispose(); diff --git a/PerfectNumbers.Core/Gpu/ExponentRemainderStepperGpu.cs b/PerfectNumbers.Core/Gpu/ExponentRemainderStepperGpu.cs index 67261da..0f74f40 100644 --- a/PerfectNumbers.Core/Gpu/ExponentRemainderStepperGpu.cs +++ b/PerfectNumbers.Core/Gpu/ExponentRemainderStepperGpu.cs @@ -1,5 +1,4 @@ using System.Runtime.CompilerServices; -using PerfectNumbers.Core; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/GpuPrimeWorkLimiter.cs b/PerfectNumbers.Core/Gpu/GpuPrimeWorkLimiter.cs index 85b397d..2662674 100644 --- a/PerfectNumbers.Core/Gpu/GpuPrimeWorkLimiter.cs +++ b/PerfectNumbers.Core/Gpu/GpuPrimeWorkLimiter.cs @@ -1,6 +1,3 @@ -using System; -using System.Threading; - namespace PerfectNumbers.Core.Gpu; public static class GpuPrimeWorkLimiter diff --git a/PerfectNumbers.Core/Gpu/Kernels/DivisorByDivisorKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/DivisorByDivisorKernels.cs index 42f64b5..e695b05 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/DivisorByDivisorKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/DivisorByDivisorKernels.cs @@ -1,7 +1,4 @@ using ILGPU; -using ILGPU.Algorithms; -using ILGPU.Runtime; -using PerfectNumbers.Core; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/DivisorKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/DivisorKernels.cs index 9c5d80e..51608fc 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/DivisorKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/DivisorKernels.cs @@ -1,6 +1,5 @@ using ILGPU; using ILGPU.Algorithms; -using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/IncrementalKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/IncrementalKernels.cs index 41f001b..c9984a4 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/IncrementalKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/IncrementalKernels.cs @@ -1,5 +1,4 @@ using ILGPU; -using ILGPU.Algorithms; using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/LucasLehmerKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/LucasLehmerKernels.cs index 49eafd0..526e441 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/LucasLehmerKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/LucasLehmerKernels.cs @@ -1,7 +1,5 @@ -using System; using System.Runtime.CompilerServices; using ILGPU; -using ILGPU.Runtime; using UInt128 = System.UInt128; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/NttButterflyKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/NttButterflyKernels.cs index c4c4e5c..7e60e7e 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/NttButterflyKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/NttButterflyKernels.cs @@ -1,5 +1,4 @@ using ILGPU; -using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/NttPointwiseKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/NttPointwiseKernels.cs index 2bb505c..66a6e28 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/NttPointwiseKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/NttPointwiseKernels.cs @@ -1,5 +1,4 @@ using ILGPU; -using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/NttTransformKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/NttTransformKernels.cs index 541d9f1..2740246 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/NttTransformKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/NttTransformKernels.cs @@ -1,5 +1,4 @@ using ILGPU; -using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/OrderKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/OrderKernels.cs index 0762154..3867424 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/OrderKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/OrderKernels.cs @@ -1,5 +1,4 @@ using ILGPU; -using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/Kernels/Pow2ModKernels.cs b/PerfectNumbers.Core/Gpu/Kernels/Pow2ModKernels.cs index 16fe047..5dcd252 100644 --- a/PerfectNumbers.Core/Gpu/Kernels/Pow2ModKernels.cs +++ b/PerfectNumbers.Core/Gpu/Kernels/Pow2ModKernels.cs @@ -1,5 +1,4 @@ using ILGPU; -using ILGPU.Algorithms; using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/MersenneNumberDivisorByDivisorGpuTester.cs b/PerfectNumbers.Core/Gpu/MersenneNumberDivisorByDivisorGpuTester.cs index 146f131..07fb8bd 100644 --- a/PerfectNumbers.Core/Gpu/MersenneNumberDivisorByDivisorGpuTester.cs +++ b/PerfectNumbers.Core/Gpu/MersenneNumberDivisorByDivisorGpuTester.cs @@ -1,11 +1,7 @@ -using PerfectNumbers.Core.Gpu; -using System; using System.Buffers; using System.Collections.Concurrent; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Threading; -using PerfectNumbers.Core; using ILGPU; using ILGPU.Runtime; using PerfectNumbers.Core.Gpu.Accelerators; diff --git a/PerfectNumbers.Core/Gpu/MersenneNumberDivisorGpuTester.cs b/PerfectNumbers.Core/Gpu/MersenneNumberDivisorGpuTester.cs index 6a25fef..73e72ff 100644 --- a/PerfectNumbers.Core/Gpu/MersenneNumberDivisorGpuTester.cs +++ b/PerfectNumbers.Core/Gpu/MersenneNumberDivisorGpuTester.cs @@ -1,6 +1,4 @@ -using System.Collections.Concurrent; using ILGPU; -using ILGPU.Algorithms; using ILGPU.Runtime; namespace PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/Gpu/NttGpuMath.cs b/PerfectNumbers.Core/Gpu/NttGpuMath.cs index b01876f..2898a3d 100644 --- a/PerfectNumbers.Core/Gpu/NttGpuMath.cs +++ b/PerfectNumbers.Core/Gpu/NttGpuMath.cs @@ -1,4 +1,3 @@ -using System.Buffers; using System.Collections.Concurrent; using ILGPU; using ILGPU.Runtime; diff --git a/PerfectNumbers.Core/HeuristicPrimeSieves.cs b/PerfectNumbers.Core/HeuristicPrimeSieves.cs index 43008de..d4d3f04 100644 --- a/PerfectNumbers.Core/HeuristicPrimeSieves.cs +++ b/PerfectNumbers.Core/HeuristicPrimeSieves.cs @@ -1,5 +1,3 @@ -using System; - namespace PerfectNumbers.Core; public static class HeuristicPrimeSieves diff --git a/PerfectNumbers.Core/MersenneDivisorCycles.cs b/PerfectNumbers.Core/MersenneDivisorCycles.cs index 689707f..90530b5 100644 --- a/PerfectNumbers.Core/MersenneDivisorCycles.cs +++ b/PerfectNumbers.Core/MersenneDivisorCycles.cs @@ -1,4 +1,3 @@ -using System.Buffers; using System.Buffers.Binary; using System.Numerics; using System.Runtime.CompilerServices; @@ -7,7 +6,6 @@ using System.Text; using System.Runtime.InteropServices; using PerfectNumbers.Core.Gpu; using ILGPU; -using ILGPU.Algorithms; using ILGPU.Runtime; using PerfectNumbers.Core.Gpu.Accelerators; diff --git a/PerfectNumbers.Core/MersenneNumberDivisorByDivisorTester.cs b/PerfectNumbers.Core/MersenneNumberDivisorByDivisorTester.cs index 58e3ebb..c02f61d 100644 --- a/PerfectNumbers.Core/MersenneNumberDivisorByDivisorTester.cs +++ b/PerfectNumbers.Core/MersenneNumberDivisorByDivisorTester.cs @@ -1,10 +1,7 @@ using System.Buffers; -using System.Threading; -using System.Threading.Tasks; using System.Globalization; using System.Runtime.InteropServices; using PerfectNumbers.Core.Gpu.Accelerators; -using PerfectNumbers.Core.Gpu; namespace PerfectNumbers.Core; diff --git a/PerfectNumbers.Core/MersennePrimeFactorTester.cs b/PerfectNumbers.Core/MersennePrimeFactorTester.cs index 19ae607..2393e2b 100644 --- a/PerfectNumbers.Core/MersennePrimeFactorTester.cs +++ b/PerfectNumbers.Core/MersennePrimeFactorTester.cs @@ -2,7 +2,6 @@ using System.Collections.Concurrent; using System.Runtime.CompilerServices; using System.Numerics; using UInt128 = System.UInt128; -using ILGPU; using System.Buffers; using PerfectNumbers.Core.Cpu; diff --git a/PerfectNumbers.Core/PerfectNumberConstants.cs b/PerfectNumbers.Core/PerfectNumberConstants.cs index 6eae9c8..2fe0eb7 100644 --- a/PerfectNumbers.Core/PerfectNumberConstants.cs +++ b/PerfectNumbers.Core/PerfectNumberConstants.cs @@ -1,5 +1,3 @@ -using PerfectNumbers.Core.Gpu; - namespace PerfectNumbers.Core; public static class PerfectNumberConstants diff --git a/PerfectNumbers.Core/PooledValueStringBuilder.cs b/PerfectNumbers.Core/PooledValueStringBuilder.cs index 0917d00..b173b22 100644 --- a/PerfectNumbers.Core/PooledValueStringBuilder.cs +++ b/PerfectNumbers.Core/PooledValueStringBuilder.cs @@ -1,4 +1,3 @@ -using System; using System.Globalization; using System.Runtime.CompilerServices; diff --git a/PerfectNumbers.Core/PrimeOrderCalculator.Cpu.cs b/PerfectNumbers.Core/PrimeOrderCalculator.Cpu.cs index d0a352a..9194f40 100644 --- a/PerfectNumbers.Core/PrimeOrderCalculator.Cpu.cs +++ b/PerfectNumbers.Core/PrimeOrderCalculator.Cpu.cs @@ -3,7 +3,6 @@ using System.Diagnostics; using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using ILGPU; using PerfectNumbers.Core.Cpu; using PerfectNumbers.Core.Gpu; using PerfectNumbers.Core.Gpu.Accelerators; diff --git a/PerfectNumbers.Core/PrimeOrderCalculator.Gpu.cs b/PerfectNumbers.Core/PrimeOrderCalculator.Gpu.cs index d98b8e0..08c1b1e 100644 --- a/PerfectNumbers.Core/PrimeOrderCalculator.Gpu.cs +++ b/PerfectNumbers.Core/PrimeOrderCalculator.Gpu.cs @@ -1,4 +1,3 @@ -using System.Runtime.InteropServices; using ILGPU; using ILGPU.Runtime; using PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/PrimeTester.cs b/PerfectNumbers.Core/PrimeTester.cs index e5a939b..09ff8c2 100644 --- a/PerfectNumbers.Core/PrimeTester.cs +++ b/PerfectNumbers.Core/PrimeTester.cs @@ -1,9 +1,7 @@ -using System.Buffers; using System.Numerics; using System.Runtime.CompilerServices; using ILGPU; using ILGPU.Runtime; -using PerfectNumbers.Core.Gpu; using PerfectNumbers.Core.Gpu.Accelerators; namespace PerfectNumbers.Core; @@ -110,14 +108,14 @@ public sealed class PrimeTester stream, 1, inputView, - gpu.DevicePrimesLastOne.View, - gpu.DevicePrimesLastSeven.View, - gpu.DevicePrimesLastThree.View, - gpu.DevicePrimesLastNine.View, - gpu.DevicePrimesPow2LastOne.View, - gpu.DevicePrimesPow2LastSeven.View, - gpu.DevicePrimesPow2LastThree.View, - gpu.DevicePrimesPow2LastNine.View, + gpu.DevicePrimesLastOne, + gpu.DevicePrimesLastSeven, + gpu.DevicePrimesLastThree, + gpu.DevicePrimesLastNine, + gpu.DevicePrimesPow2LastOne, + gpu.DevicePrimesPow2LastSeven, + gpu.DevicePrimesPow2LastThree, + gpu.DevicePrimesPow2LastNine, outputView); outputView.CopyToCPU(stream, ref flag, 1); @@ -150,14 +148,14 @@ public sealed class PrimeTester stream, 1, inputView, - gpu.DevicePrimesLastOne.View, - gpu.DevicePrimesLastSeven.View, - gpu.DevicePrimesLastThree.View, - gpu.DevicePrimesLastNine.View, - gpu.DevicePrimesPow2LastOne.View, - gpu.DevicePrimesPow2LastSeven.View, - gpu.DevicePrimesPow2LastThree.View, - gpu.DevicePrimesPow2LastNine.View, + gpu.DevicePrimesLastOne, + gpu.DevicePrimesLastSeven, + gpu.DevicePrimesLastThree, + gpu.DevicePrimesLastNine, + gpu.DevicePrimesPow2LastOne, + gpu.DevicePrimesPow2LastSeven, + gpu.DevicePrimesPow2LastThree, + gpu.DevicePrimesPow2LastNine, outputView); outputView.CopyToCPU(stream, ref flag, 1); @@ -198,7 +196,6 @@ public sealed class PrimeTester // GpuPrimeWorkLimiter.Acquire(); var gpu = PrimeOrderCalculatorAccelerator.Rent(GpuBatchSize); int acceleratorIndex = gpu.AcceleratorIndex; - var accelerator = gpu.Accelerator; var kernel = gpu.SmallPrimeSieveKernel!; int totalLength = values.Length; int batchSize = GpuBatchSize; @@ -222,14 +219,14 @@ public sealed class PrimeTester stream, count, inputView, - gpu.DevicePrimesLastOne.View, - gpu.DevicePrimesLastSeven.View, - gpu.DevicePrimesLastThree.View, - gpu.DevicePrimesLastNine.View, - gpu.DevicePrimesPow2LastOne.View, - gpu.DevicePrimesPow2LastSeven.View, - gpu.DevicePrimesPow2LastThree.View, - gpu.DevicePrimesPow2LastNine.View, + gpu.DevicePrimesLastOne, + gpu.DevicePrimesLastSeven, + gpu.DevicePrimesLastThree, + gpu.DevicePrimesLastNine, + gpu.DevicePrimesPow2LastOne, + gpu.DevicePrimesPow2LastSeven, + gpu.DevicePrimesPow2LastThree, + gpu.DevicePrimesPow2LastNine, outputView); var resultSlice = results.Slice(pos, count); diff --git a/PerfectNumbers.Core/TaskThreadPool.cs b/PerfectNumbers.Core/TaskThreadPool.cs index 6dd7079..aee115a 100644 --- a/PerfectNumbers.Core/TaskThreadPool.cs +++ b/PerfectNumbers.Core/TaskThreadPool.cs @@ -1,8 +1,4 @@ -using System; using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; namespace PerfectNumbers.Core; diff --git a/PerfectNumbers.Core/TextFileWriter.cs b/PerfectNumbers.Core/TextFileWriter.cs index 08061a9..8d241d3 100644 --- a/PerfectNumbers.Core/TextFileWriter.cs +++ b/PerfectNumbers.Core/TextFileWriter.cs @@ -1,4 +1,3 @@ -using System; using System.Text; namespace PerfectNumbers.Core; diff --git a/PerfectNumbers.Core/ThreadStaticPools.cs b/PerfectNumbers.Core/ThreadStaticPools.cs index 194bb3e..0c22a03 100644 --- a/PerfectNumbers.Core/ThreadStaticPools.cs +++ b/PerfectNumbers.Core/ThreadStaticPools.cs @@ -1,5 +1,4 @@ using System.Buffers; -using System.Collections.Generic; using System.Runtime.CompilerServices; using PerfectNumbers.Core.Cpu; using PerfectNumbers.Core.Gpu; diff --git a/PerfectNumbers.Core/UInt128Extensions.cs b/PerfectNumbers.Core/UInt128Extensions.cs index 973bec6..3e420e2 100644 --- a/PerfectNumbers.Core/UInt128Extensions.cs +++ b/PerfectNumbers.Core/UInt128Extensions.cs @@ -1,6 +1,5 @@ using System.Numerics; using System.Runtime.CompilerServices; -using System.Threading; using PerfectNumbers.Core.Gpu; namespace PerfectNumbers.Core; diff --git a/PerfectNumbers.Core/ULongExtensions.Cpu.cs b/PerfectNumbers.Core/ULongExtensions.Cpu.cs index 5be09dc..f0e70c5 100644 --- a/PerfectNumbers.Core/ULongExtensions.Cpu.cs +++ b/PerfectNumbers.Core/ULongExtensions.Cpu.cs @@ -1,4 +1,3 @@ -using System; using System.Numerics; using System.Runtime.CompilerServices; diff --git a/PerfectNumbers.Core/ULongExtensions.Gpu.cs b/PerfectNumbers.Core/ULongExtensions.Gpu.cs index 835fea6..14dd54b 100644 --- a/PerfectNumbers.Core/ULongExtensions.Gpu.cs +++ b/PerfectNumbers.Core/ULongExtensions.Gpu.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections.Concurrent; using System.Runtime.CompilerServices; using ILGPU.Algorithms; -using ILGPU.Runtime; using PerfectNumbers.Core.Gpu; using PerfectNumbers.Core.Gpu.Accelerators; diff --git a/PerfectNumbers.Core/ULongExtensions.cs b/PerfectNumbers.Core/ULongExtensions.cs index bfdcb3e..64e87f2 100644 --- a/PerfectNumbers.Core/ULongExtensions.cs +++ b/PerfectNumbers.Core/ULongExtensions.cs @@ -1,6 +1,5 @@ using System.Numerics; using System.Runtime.CompilerServices; -using ILGPU.Algorithms; namespace PerfectNumbers.Core; diff --git a/PerfectNumbers.Core/UnboundedTaskScheduler.cs b/PerfectNumbers.Core/UnboundedTaskScheduler.cs index b552fa9..3597d88 100644 --- a/PerfectNumbers.Core/UnboundedTaskScheduler.cs +++ b/PerfectNumbers.Core/UnboundedTaskScheduler.cs @@ -1,7 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - namespace PerfectNumbers.Core; public sealed class UnboundedTaskScheduler : TaskScheduler