Changes in version 0.2.1

- Added a vignette.

- Added the quantity_index() function to turn functions that calculate price indexes into functions that calculate the corresponding quantity index.

- Now works with R >= 3.5.

Changes in version 0.2.0

- This version doesn't add many new features, but makes a number of improvements and simplifications to the interface and underlying functions. These changes can break old code!

- Many functions are now function factories to make them easier to use. This mostly affects the index_* functions; for example, calculating a geometric Laspeyres index is now done as index_geometric("Laspeyres")(p1, p0, q0), rather than index_geometric(p1, p0, q0 = q0, type = "Laspeyres"). The index_weights(), weights_change(), weights_factor(), mean_generalized(), and logmean_generalized() functions are also now function factories.

- Functions no longer accept logical inputs in place of numeric inputs, nor do they accept infinite exponents.

- The 'M' argument has been removed from the weights_change() functions.

- The 'na.rm' and 'scale' arguments no longer appear in the weight_* functions. Missing values are now always removed, and weights are never scaled.

- weights_change() has been renamed to weights_transmute() to be more descriptive. The weights_x2y() functions have also been removed and replaced with the contributions() functions. This makes it easier to calculate quote contributions.

- Added the mean_extended() function to simplify the implementation of the weights_transmute() function.

- Documentation pages have been consolidated to make them easier to read. There are also many more examples.

Changes in version 0.1.2

- Lots of improvements to the documentation and examples.

- Added the generalized Stuval index with the index_stuval() function.

- Added the weights_update() function for the common case of price-updating weights in an arithmetic index.

- Functions that say the input should be a vector now check if the input is a vector. This prevents non-name attributes from causing problems in the calculations (like dim).

- weights_change() now allows 'M' to be NA/NaN, returning a vector of NAs.

- Error messages are now more informative.
