# 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.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