Releases: flori/more_math
Releases · flori/more_math
v1.11.0
- Added new entropy helper methods:
entropy_probabilities,
entropy_per_symbol,minimum_entropy_per_symbol,
collision_entropy_per_symbol,entropy_total,minimum_entropy_total, and
collision_entropy_totaltolib/more_math/entropy.rb - Replaced the old
entropymethod with an alias toentropy_per_symbol - Updated documentation for
entropy_ratioto clarify thesize:keyword
argument - Removed the
entropy_ratio_minimummethod and its corresponding test cases
from the codebase - Enhanced test coverage in
tests/entropy_test.rbwith new unit tests for the
added helper methods- Updated existing test assertions to use
assert_in_deltafor
floating-point comparisons - Added descriptive comments to the test
setupmethod - Ensured all new methods return correct values for empty, uniform, and
varied symbol strings
- Updated existing test assertions to use
- Corrected example values in
entropy_ratiodocumentation
v1.10.0
- Added new
entropy_maximummethod to calculate theoretical maximum entropy
for a text given an alphabet size - Made
sizeparameter required inentropy_ratioandentropy_ratio_minimum
methods instead of defaulting totext.size - Updated YARD documentation to clarify that
sizeparameter represents
alphabet size - Modified examples to use explicit alphabet sizes for better clarity
- All entropy methods now consistently return values in bits as expected for
Shannon entropy - Updated documentation examples to use simplified method calls without
MoreMath::Entropyprefix - Enhanced
entropy_maximummethod documentation to explain its use in
determining security strength for tokens - Added comprehensive tests for
entropy_maximumfunction covering edge cases
and various alphabet sizes - Improved
entropy_maximummethod signature to return0for invalid
alphabet sizes (≤ 1) and useMath.log2for calculation - Updated existing entropy method documentation to clarify it calculates
entropy in bits - Simplified example code in documentation to use direct method calls instead
of module prefixes
v1.9.0
- Added support for array inputs in entropy calculation methods by checking
text.respond_to?(:chars)and using raw arrays when appropriate - Added
MoreMath::Entropy.entropy_ratio_minimummethod to provide
conservative lower bound accounting for sampling error - Updated
entropy_ratiomethod to usetext.sizeinstead of
text.each_char.sizefor consistency - Added comprehensive tests for new minimum entropy
ratio methods
v1.8.0
- Extended
MoreMath::Functionsmodule withEntropyandLambertmodules
usingextendinstead ofinclude - Added tests for
entropy_ratioandlambert_wmethod inclusion/extension - Updated test execution command to use
bundle exec - Updated gem dependencies and version requirements:
- Updated
rubygemsversion requirement from 4.0.2 to 4.0.3 - Changed
gem_hadardevelopment dependency from version constraint "~>
2.10" to ">= 2.17.0" - Maintained compatibility with Ruby 2.0 and later versions
- Updated
- Added changelog configuration to Rakefile with
filenameset toCHANGES.md - Updated Ruby version from 4.0-rc-alpine to 4.0-alpine
v1.7.0
- Added
MoreMath::Lambertmodule withlambert_wmethod for principal branch - Integrated
MoreMath::LambertintoMoreMath::Functionsmodule - Included comprehensive test suite in
TestLambertWclass - Added YARD documentation with examples and parameter descriptions
- Required
more_math/lambertinmore_math/functions.rb - Supported special cases: W(0)=0, W(∞)=∞, W(-1/e)=-1
- Verified solution property: W(y)·e^(W(y)) = y
- Handled domain error for y < -1/e with NaN return
- Used
MoreMath::NewtonBisectionfor robust numerical root finding - Tests cover values: 0, 1, 100, 0.1, 1000 with expected results
- Tested convergence verification and edge cases
- Updated
bundle updatecommand tobundle update --allin.all_images.yml - Added
ruby:4.0-rc-alpineimage configuration to.all_images.yml - Added
lib/more_math/lambert.rbtos.extra_rdoc_filesands.filesinmore_math.gemspec - Added
tests/lambert_test.rbtos.test_filesinmore_math.gemspec - Updated
s.rubygems_versionfrom 3.6.9 to 4.0.2 inmore_math.gemspec - Updated
s.add_development_dependencyforgem_hadarfrom "> 2.7" to "> 2.10" inmore_math.gemspec - Added
openssl-devto the list of packages installed byapk addin.all_images.yml - Rely on
test_helperrequiringmore_math
v1.6.0
- Replaced detailed feature sections in README with a concise bullet list of
MoreMath capabilities - Added documentation link to GitHub.io and updated installation instructions
to include both RubyGems and Bundler - Improved author and license formatting with proper markdown links
- Added
.github/workflows/static.ymlto automate documentation generation and
deployment using Ruby 3.4 - Updated
Rakefileto register new documentation workflow with GemHadar - Configured workflow to use Ruby 3.4 for documentation builds and deploy
to GitHub Pages on master branch pushes - Added
context_spookas development dependency for YARD documentation - Added
cscope.outto.gitignoreand updatedRakefileto include it in
the ignore list - Added
code_indexerconfiguration to.utilsrcwith a list of gems
including base64, bigdecimal, date, json, mize,
ostruct, rake, stringio, sync, test-unit, and tins - Added
docand.yardocdirectories to gitignore and rake configuration - Updated homepage URL to escape underscore character for proper rendering
- Updated
gem_hadardevelopment dependency from version 2.4 to 2.6 - Modified
package_ignorein Rakefile to explicitly include.githuband
.contextsdirectories instead of using glob pattern*.github/**/* - Enhanced documentation for all methods in MoreMath module
- Added documentation directories
.yardocanddoctoprune_dirsin
utilsrc
v1.5.0
Changes
2025-09-11 v1.5.0
- Set required Ruby version to >= 2.0
- Added development dependencies including
gem_hadar(~> 2.4) andtins(~> 1) - Added runtime dependency on
mize(">= 0") - Set homepage to "https://github.com/flori/more_math"
- Set license to "MIT"
- Added
yaml-devto dockerfile build dependencies - Installed
bundlerandgem_hadargems in dockerfile - Added
fail_fast: trueto CI configuration - Added
.bundleto.gitignorefile - Included
.bundlein Rakefile ignore list - Replaced
Dir.glob('.github/**/*', File::FNM_DOTMATCH)withDir['.github/**/*'] - Updated
tinsdependency version from~>1.0to~>1 - Replaced simplecov setup with
gem_hadar/simplecovrequire and start call