JJ.Framework.Mathematics 1.5.6877.41334 Prefix Reserved

Install-Package JJ.Framework.Mathematics -Version 1.5.6877.41334
dotnet add package JJ.Framework.Mathematics --version 1.5.6877.41334
<PackageReference Include="JJ.Framework.Mathematics" Version="1.5.6877.41334" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JJ.Framework.Mathematics --version 1.5.6877.41334
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JJ.Framework.Mathematics, 1.5.6877.41334"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install JJ.Framework.Mathematics as a Cake Addin
#addin nuget:?package=JJ.Framework.Mathematics&version=1.5.6877.41334

// Install JJ.Framework.Mathematics as a Cake Tool
#tool nuget:?package=JJ.Framework.Mathematics&version=1.5.6877.41334
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

JJ.Framework.Mathematics

Helpers for calculations.

  • Plotting graphs in text output.
  • Interpolation
  • Base-n numbering systems
  • Special rounding methods
  • Use the Random class more easily
  • Simple geometric calculations
  • Other basic math helpers.

TextPlotter

Plot function output in text mode. Example call:

IList<string> plot = TextPlotter.Plot(
	new[] { 0.0, 0.7, 1.0, 0.7, 0.0, -0.7, -1.0, -0.7, 0.0 }, 
	columnCount: 5, 
	lineCount: 7);

Example output:

      ■■■■■■                       
    ■■      ■■                     
   ■          ■                    
 ■■            ■■                  
■                ■                ■
                  ■■            ■■ 
                    ■          ■   
                     ■■      ■■    
                       ■■■■■■      

(There is also a variation that takes x and y coordinates.)

Interpolator

For (sound) curves.

There are also separate methods for precalculating values once when you start interpolating between two numbers and then doing a faster calculation to derive the points in between.

NumberBases

  • ToBase
    • Converts an int to an n-base number in usually string format.
  • FromBase
    • Converts an n-based number to an int. The input is usually in string format.
  • You could convert from one base to another by first calling FromBase and then ToBase.
  • Several overloads to handle it differently.
  • FromHex / ToHex
  • ToLetterSequence / FromLetterSequence
    • Does spread-sheet-style letter sequences. This is not the same as a base-26 numbering system. After the range A-Z is depleted, the next value is 'AA', which is equivalent to 00, so you basically start counting at 0 again, but you get 26 for free.

Randomizer

  • GetRandomItem
    • Gets a random item out of a collection.

Return a random number out of a range:

  • GetInt32
  • GetDouble
  • GetSingle

Geometry

  • IsInRectangle
  • GetCenter
  • AbsoluteDistance

MathHelper

Misc math helpers.

  • Pow with integers
  • Log with integers
    • It will only return integers, but will prevent rounding errors such as 1000 log 10 = 2.99999999996.
  • IsPowerOf2
  • LogRatio
    • Calculates where x is in between x0 and x1 on a logarithmic scale. 0 means it is on point x0. 1 means it is on pont x1. between 0 and 1 means it is somewhere in between. 0.5 means it is precisely half-way x0 and x1 logarithmically. Note that it can also be outside the bounds 0 and 1 if it is not in between those numbers.
  • RoundToSignificantDigits
  • RoundWithStep
    • Rounds to multiples of step, with an offset. It uses Math.Round as a helper, which supports a wide range of values.
  • RoundWithStepWithInt64Bounds
    • Same as above, but uses a cast to Int64 as a helper, which might be faster than Math.Round, but means you are stuck within the value bounds of long.
  • ScaleLinearly
    • Converts one range of numbers to another, both making a number bigger or smaller and shifting it over.
  • SpeadItems
    • Equally spreads out items over another set of items. For instance the numbers {1,2,3} could be spread over 10 items, the first ones getting 1, the middle ones getting 2 and the last ones being assigned 3.
  • SpreadIntegers
    • Equally spreads out a number of indices over a different number of indices. For instance the numbers {1,2,3} could be spread over 10 items, the first ones getting 1, the middle ones getting 2 and the last ones being assigned 3.
  • SpreadDoubles
    • Equally spreads out a number of points over a range of values.
    • It takes a startValue, endValue and pointCount and returns a double[].

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.5.6877.41334 1,573 10/31/2018
1.4.6873.32669 438 10/26/2018
1.4.6870.37051 433 10/23/2018
1.4.6862.41387 569 10/15/2018
1.3.6689.35854 894 4/25/2018