80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
using StgSharp;
|
|
using System;
|
|
using System.Diagnostics;
|
|
|
|
internal class Program
|
|
{
|
|
private unsafe static void Main(string[] args)
|
|
{
|
|
/*
|
|
int cc = 3;
|
|
Console.WriteLine(cc/2);
|
|
/**/
|
|
|
|
/*
|
|
float test = StgSharp.Math.Calc.ATan(-1f,-1f);
|
|
Console.WriteLine(test);
|
|
/**/
|
|
|
|
/*
|
|
// 测速
|
|
for (int cycle = 0; cycle < 100; cycle++)
|
|
{
|
|
float time = 1000000;
|
|
float a = 114514;
|
|
System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
|
|
stopwatch.Start(); // 开始监视代码运行时间
|
|
for (float i = 2; i < time; i++)
|
|
{
|
|
a = StgSharp.Math.ATan(i);
|
|
}
|
|
stopwatch.Stop(); // 停止监视
|
|
TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间
|
|
double milliseconds = timespan.TotalMilliseconds; // 总毫秒数
|
|
Console.WriteLine($"{milliseconds},{a}");
|
|
|
|
|
|
System.Diagnostics.Stopwatch stopwatch1 = new Stopwatch();
|
|
double b = 114514;
|
|
double time2 = time;
|
|
stopwatch1.Start();
|
|
for (float i = 2; i < time2; i++)
|
|
{
|
|
b = System.MathF.Atan(i);
|
|
}
|
|
stopwatch1.Stop();
|
|
timespan = stopwatch1.Elapsed;
|
|
double milliseconds2 = timespan.TotalMilliseconds;
|
|
Console.WriteLine($"{milliseconds2},{b}");
|
|
Console.WriteLine("");
|
|
}
|
|
/**/
|
|
|
|
|
|
/*
|
|
//精度测试
|
|
double accuracy = 0;
|
|
for (float i = -200f; i < 200f; i += 0.01f)
|
|
{
|
|
|
|
double r1 = StgSharp.Math.ATan(i);
|
|
double r2 = 180*System.Math.Atan(i)/3.1415926;
|
|
double ac = ( System.Math.Max(r1,r2)- System.Math.Min(r1, r2) ) / r2;
|
|
if (ac>accuracy)
|
|
{
|
|
accuracy = ac;
|
|
Console.WriteLine(i);
|
|
Console.WriteLine(ac);
|
|
Console.WriteLine(r1);
|
|
Console.WriteLine(r2);
|
|
Console.WriteLine("");
|
|
}
|
|
}
|
|
Console.WriteLine(accuracy);
|
|
/**/
|
|
|
|
|
|
}
|
|
}
|
|
|