Базовая версия библиотеки. Версия 0.2.0-dev

This commit is contained in:
Andrey Pokidov 2024-11-12 01:14:44 +07:00
parent 262a4c04e8
commit 3ba55c7524
31 changed files with 7432 additions and 0 deletions

View file

@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Geometry\Geometry.csproj" />
</ItemGroup>
</Project>

80
GeometryDev/Program.cs Normal file
View file

@ -0,0 +1,80 @@
// See https://aka.ms/new-console-template for more information
using System;
using System.ComponentModel;
using System.Diagnostics;
using Geometry;
public static class Program
{
private static SPVersor[] AllocateVersors(int amount)
{
return new SPVersor[amount];
}
private static SPVersor[] MakeZeroVersors(int amount)
{
SPVersor[] versors = AllocateVersors(amount);
for (int i = 0; i < amount; i++)
{
versors[i] = SPVersor.IDLE;
}
return versors;
}
private static SPVersor[] MakeRandomVersors(int amount)
{
Random randomizer = new Random(Environment.TickCount);
SPVersor[] versors = AllocateVersors(amount);
for (int i = 0; i < amount; i++)
{
versors[i] = new SPVersor(
randomizer.NextSingle(),
randomizer.NextSingle(),
randomizer.NextSingle(),
randomizer.NextSingle()
);
}
return versors;
}
private static void PrintVersor(in SPVersor versor)
{
Console.WriteLine("({0}, {1}, {2}, {3}) / {4:E}", versor.GetScalar(), versor.GetX1(), versor.GetX2(), versor.GetX3(), versor.GetCorrector() - 1.0f);
}
public static int Main()
{
int amount = 1000000;
SPVersor[] versors1 = MakeRandomVersors(amount);
SPVersor[] versors2 = MakeRandomVersors(amount);
SPVersor[] results = MakeZeroVersors(amount);
long start, end;
start = Environment.TickCount64;
for (int j = 0; j < 1000; j++)
{
for (int i = 0; i < amount; i++)
{
SPVersor.Combine(versors1[i], versors2[i], out results[i]);
}
}
end = Environment.TickCount64;
Console.WriteLine("Time: {0}", end - start);
PrintVersor(versors1[10]);
PrintVersor(versors2[10]);
PrintVersor(results[10]);
return 0;
}
}