Math.Matthey 3.0.0

dotnet add package Math.Matthey --version 3.0.0                
NuGet\Install-Package Math.Matthey -Version 3.0.0                
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="Math.Matthey" Version="3.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Math.Matthey --version 3.0.0                
#r "nuget: Math.Matthey, 3.0.0"                
#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 Math.Matthey as a Cake Addin
#addin nuget:?package=Math.Matthey&version=3.0.0

// Install Math.Matthey as a Cake Tool
#tool nuget:?package=Math.Matthey&version=3.0.0                

Math

A collection of mathematical function and data structures written in C#.

(c) 2016-2024 Thierry Matthey - MIT license

Base

  • Floating point comparison and epsilon
  • Conversion radian-degree, date time to seconds

Solver

  • Analytical solution of linear, quadratic, cubic and quartic polynomial equations
  • Numerical general polynomial equation root solver
  • General root solver with either bisection or secant method
  • First and second order regression with optional weight

Functions

  • Qudratic root
  • Cubic root
  • Quartic root
  • Fast sin evaluation [-PI/2, -PI/2]
  • Normalize angle
  • Nomerical stable sin-cos evaluation
  • Factorial; ulong (n ⇐ 20) and double
  • Fibonacci; ulong (n ⇐ 93), double and Binet
  • Greatest common divisor (GDC)
  • IsPrime; no cache; ~3s for max long / 10

Statistics

  • Arithmetic mean and variance, optional weighted
  • Averageing / mean of angles
  • Centered moving averageing, optional weighted

Geometry

  • Convex hull 2D (Jarvis march & Andrew's monotone chain; point reduction algorithm)
  • Minimal bounding circle 2D
  • Minimal bounding circle on sphere 3D
  • Perpendicular (segment / line ) distance (2D & 3D)
  • Trajectory Hausdorff Distance (2D & 3D)
  • Filter of significant points based on Minimum Description Length Principle (2D & 3D)
  • k-d tree search for vector & segment (2D & 3D)

Data structures

  • BoundingBox
  • BoundingRect
  • Circle2D
  • Circle3D
  • CubicBezier2D
  • CubicBezier3D
  • Color
  • Polar3D
  • Polynomial
    • Division by real roots (linear root), and imaginary and conjugated (quadratic root)
    • Evaluation of polynomial and its derivative and integral
  • Segment2D
  • Segment3D
  • Sparse array
  • Vector2D
  • Vector3D

GPS

  • GpsPoint
  • GpsTrack
  • Flatten to local 2D; single object and collection
  • Smoothing of holes (missing GPS signal, same position) by reducing variance
  • Geodesy
    • Haversine distance
  • GridLookup / NeighbourDistanceCalculator : Finding neighbors of two GPS tracks in O(N)
  • Intersection / overlapping (overestimating) of two GPS tracks
    • grid / lookup table based - fastest and pretty precise depending on given resolution
    • minimal rectangular bounding box
    • minimal circle on sphere - slow on 1st call to calculate min circle

Clustering

  • DBScan vector / segment for 2D / 3D
  • TraClus (Trajectory Clustering: A Partition-and-Group Framework) for 2D and 3D
  • Finding trajectory neighborhoods for 2D and 3D
  • GPS segment clustering; finding common segments for locally collocated GPS tracks or globally

Gfx

  • PNG, PPM and PGM bitmap writer
  • Simple bitmap
  • Line draw - Bresenham and anti-aliasing (Xiaolin Wu's line algorithm)
  • Point plot (anti-aliasing)
  • Heatmap for arbitrary set of GPS tracks with color schemes

Applications / examples

  • GPS cluster
  • GPS heatmap
  • GPS activity
  • HR index
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Math.Matthey:

Package Downloads
Math.Matthey.Tools.TrackReaders

A collection of GPS track readers suporting GPX, TCX and KML. Source can either be a string, file or directory.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.0 232 5/9/2024
2.5.0 1,808 6/17/2021
2.4.0 713 6/9/2021
2.3.2 1,390 7/31/2019
2.3.1 2,171 3/31/2019
2.3.0 1,066 3/30/2019
2.2.2 1,947 9/24/2018
2.2.1 1,211 9/24/2018
2.2.0 1,271 7/22/2018
2.1.0 1,525 12/29/2017
2.0.0 1,557 8/5/2017
1.0.6 1,399 11/30/2016

Support of route for GPX