Current section
Files
Jump to
Current section
Files
CHANGELOG
# Feature Release steps
- tests passing
- mix format
- inline documentation
- top of module documentation
- version bump in mix.exs
- version bump in README.md
- git tag -a v0.x.x -m "v0.x.x - summary"
- git push
- git push --tags
- mix hex.publish
# CHANGELOG
## v0.8.0
### Changes/Refactorizations
### Enhancements
- Chunky.Sequence
- sequences are now marked as finite or infinite (as computable/stored in Squence library)
- sequences can now have initial index/offset other than 0 (like A000593)
- New Functions:
- `is_finite?/1` - Is a sequence finite or infinite is sequence library?
- Chunky.Math
- `factors/1` - All divisors of N
- `sigma/1` - Sigma-1 function of factors of N
- `sigma/2` - Generalized Sigma function
- `pow/2` - Pure integer exponentiation
### New Sequences
- A000593 - Sum of Odd Divisors of N
- A000009 - Number of partitions of n into distinct parts
- A000079 - Powers of 2
- A000203 - Sigma-1 of N
- A001057 through A001060 - sigma2 through sigma5 of N
- A013954 through A013968 - sigma6 through sigma20 of N
## v0.7.0
### Enhancements
- `Chunky.Math` - Extended math for integers and floating point
- `pow/3` - Modular arithmetic exponentiation
- `is_prime?/1` - Primality test for integers
- `prime_factors/1` - Factorize an integer to prime factors
- `Chunky.Sequences` - Create, inspect, manipulate, iterate, and compare finite and infinite value sequences
- New functions:
- `create/3` - Create a new sequence instance
- `available/0` - List all loaded sequences from all loaded applications and modules
- `available/1` - List available sequences from a module
- `has_next?/1` - Check that a sequence has at least one more available value
- `is_available?/2` - Check if a specific sequence is available
- `is_instance/2` - Check if a sequence is an instance of a specific sequence identifier
- `is_instance/3` - Check if a sequence is an instance of a specific sequence identifier
- `get_references/1` - Retrieve reference sources and links for a sequence
- `has_reference?/2 - Check if a sequence has a specific reference source
- `readable_name/1` - Find the human readable name of a sequence
- `next/1` - Retrieve the next sequence value and updated sequence struct as a tuple
- `next!/1` - Retrieve the next sequence as just an updated sequence struct
- `take/2` - Like `Enum.take/2` - retrieve a list of values from a sequence
- `take!/2` - Like `take/2`, but only return the updated sequence struct
- `sequence_for_function/1` - Wrap a function as a sequence - see Developing New Sequences
- `sequence_for_list/1` - Wrap a list as a sequence - see Developing New Sequences
- `map/2` - Apply a function to values in a sequence, and collect the result
- New Sequences:
- `{Basic, :whole_numbers}` - Whole number sequence, starting from `1` or any other digit
- `{Basic, :empty}` - The empty sequence
- `{Basic, :decimal_digits}` - The decimal digits
- `{OEIS, :a000045}` - OEIS - Fibonacci sequence
- `{OEIS, :fibonacci}` - OEIS - alternate name, Fibonacci sequence
- `{OEIS, :keyword_core}` - OEIS - List of core sequences, according to OEIS
- `{OEIS, :a000041}` - OEIS - Partitions of Integers
- Various test sequences
## v0.6.5
### Enhancements
- `Chunky.Fractions`
- added `uniq/2` for finding distinct fractions in a list
- added `sort/2` for sorting value lists
- added `clamp/2` for constraining value lists
## v0.6.4
### Enhancements
- `Chunky.Fraction`
- Most functions now use type coercion to handle any value that can be converted to a fraction via `new/1`
## v0.6.3
### Enhancements
- `Chunky.Fraction`
- `to_float/2` - convert to a float, with optional precision rounding
- `min_of/1` - find the smallest from a list of fractions
- `min_of/2` - find the smallest of two fractions
- `Chunky.Grid`
- `put_all/2` - basic function for putting `{x, y, v}` tuples or `%{x: x, y: y, value: value}` maps into the grid
- `find_index/2` - Find coordinates in grid of a value
## v0.6.2
### Documentation
- `Chunky.Fraction` - Enhancements to documentation. Extended doctests
## v0.6.1
### Enhancements
- `Chunky.Grid`
- `put_at/3` and `put_at/4` - put values into the grid
## v0.6.0
### Enhancements
- `Chunky.Fraction` module for manipulating fractions
- `new/2` - create a new fraction
- `new/1` - create a new fraction from a tuple or integer
- `has_whole?/1` - fractions is greater than 1, and has a whole component
- `is_whole?/1` - does a fraction exactly represent a whole number
- `components/1` - tuple of numerator an denominator
- `get_whole/1` - get reduced whole component of a fraction
- `get_remainder/1` - get remainder of fraction after removing whole components
- `split/1` - combine `get_whole/1` and `get_remainder/1` into one call
- `is_simplified?/1` - is fraction in reduced form?
- `simplify/1` - reduce fraction
- `is_zero?/1` - does fraction represent zero?
- `add/3` - Add two fractions, or a fraction and an integer
- `subtract/3` - Subtract two fractions, or a fraction and an integer
- `String.Chars` - Fractions now work properly with IO functions
- `multiply/3` - Multiply two fractions, or a fraction and an integer
- `reciprocal/2` - Take the reciprocal of a fraction
- `divide/3` - Divide two fractions, or a fraction and an integer
- `normalize/2` - Normalize two fractions to a common denominator
- `is_positive?/1` - Test if a fraction is positive
- `is_negative?/2` - Test if a fraction is negative
- `power/3` - Fractional and integer powers of integers and fractions
- `gt?/2`, `gte?/2`, `lt?/2`, `lte?/2`, and `eq?/2` added for comparison between fractions and fractions and integers
- `normalize_all/1` - normalize a list of fractions and integers, like `normalize/2`
- `sum/2` - sum a list of fractions and integers
- `lcm/1` - find Least Common Multiple from a list of integers
- `Chunky.Grid` module for working with two dimensional data
- `Grid.new/3` - generate a grid from a value or a function
- `Grid.get_at/2` and `Grid.get_at/3` - access cell value by 2d index
- `Grid.valid_coordinate/*` and `Grid.valid_coordinate?/*` - determine if a coordinate is within grid bounds
## v0.5.0
### Enhancements
- `Chunky.combinations_size/2` - pre-calculate the size of a combination using a closed form equation, instead of running the combination
## v0.4.1
### Documentation
- Fixes for embedded `@moduledoc` for better Hexdocs layout
## v0.4.0
### Enhancements
- `Chunky.permutations_size/1` - pre-calculate the size of a permutation using a closed form equation, instead of running the permutation
## v0.3.0
### Enhancements
- Added `Chunky.combinations/2` for nCr unordered set generation
### Documentation
- move all TODO items out of Chunky module
- remove references to incomplete/unimplemented functions
## v0.2.1
### Documentation
- Fix reference to `Chunky.chunk_length/2` in moduledoc
## v0.2.0
### Enhancements
- `Chunky.chunk_length/2` added. Supports `list`, `tuple`, `binary`, and `range` types
### Documentation
- Cleanup of readme and top level documentation
- Hexdocs now have embedded readme data
## v0.1.1
### Documentation
- Expanded documentation for `Chunky.permutations/1`
## v0.1.0
### Enhancements
- `Chunky.permutations/1` added. Supports `list`, `tuple`, `binary`, and `range` types