VSOP2013.NET 1.2.1

dotnet add package VSOP2013.NET --version 1.2.1
NuGet\Install-Package VSOP2013.NET -Version 1.2.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VSOP2013.NET" Version="1.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add VSOP2013.NET --version 1.2.1
#r "nuget: VSOP2013.NET, 1.2.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install VSOP2013.NET as a Cake Addin
#addin nuget:?package=VSOP2013.NET&version=1.2.1

// Install VSOP2013.NET as a Cake Tool
#tool nuget:?package=VSOP2013.NET&version=1.2.1

VSOP2013 .NET

NuGet package NuGet package

What's this?

VSOP was developed and is maintained (updated with the latest data) by the scientists at the Bureau des Longitudes in Paris.

VSOP2013,another version of VSOP, computed the positions of the planets directly at any moment, as well as their orbital elements with improved accuracy.

Original VSOP2013 Solution was write by FORTRAN 77 . It's too old to use.

This repo is not just programming language translation, it's refactoring of VSOP2013.

This thing is totally useless for myself. But I think someone might need this algorithm in the future.

VSOP2013 is much much slower than VSOP87. But it's more accurate than 87?

I use multi-thread and precalculation technique to accelerate iteration speed.

I promise it will be much faster than origin algorithm.

This is the best VSOP2013 library ever.

Demo

Performance

<br>Performance Test

Note: .NET 8 occurs performance regression due to RyuJIT bugs. Detail Here

Features

  1. Use VSOPResult class to manage calculate results.
  2. Use VSOPTime class to manage time. <br>Easy to convert time by calling VSOPTime.UTC, VSOPTime.TAI, VSOPTime.TDB
  3. Very high performance per solution
  4. Useful Utility class. Convert Elliptic coordinates to cartesian and spherical
  5. Async Api included.
  6. precalculation on <b>φ</b> in terms, which gives 20%+ speed up of calculation.
  7. Use [MessagePack](https://github.com/neuecc/MessagePack-CSharp#lz4-compression"MessagePack for C#") for binary serialize. <br>Initialization time becomes less than 10% of previous version.
  8. Brotli compression on source data. ~300Mb → ~50MB.
  9. Optional Native Side library accelerate. (Only on Windows)

<br>

Documentation

Gitbook

Enviroment Require

.NET 6/7/8 Runtime

Windows 10 64bit with AVX2 for native accelerate

Reference

[MessagePack](https://github.com/neuecc/MessagePack-CSharp#lz4-compression"MessagePack for C#")

<br>

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.1 394 5/4/2024
1.2.0 378 4/23/2024