Releases: hmito/hmLib
Releases · hmito/hmLib
v4_05_01
- Add new functions in tuple, e.g., tuple_reduce tuple_apply_at and tuple_for_each.
- Update algorithm::sample
- shuffle_sampler is replaced by random_removal_sampler and roulette_removal_sampler.
- interface is changed; now reset function and operator() has same interface between samplers.
- Add clone_ptrproxy; which behave like pointer but have copied value as member.
- Fix: hmLib_throw cannot be called in release mode.
- Add new iterators
- range: uniform range interface made from pair of iterators.
- transform_iterator: functional change of iterator value.
- zip_iterator: packing multiple iterators/containers.
- Update lattice library for unifying interface of lattice, sublattice and torus_lattice.
- Add math/histgoram for creating histgram data from value set.
- Add is_iterator/is_const_iterator in type_traits.
- varray's order is now checked from larger index element.
v4_05_00
- Update algorithm library
- Add keep_if algorithm, which return an object keepind index/iterator which satisfy a certain condition defined by given functor.
- clamp is now bit faster by removing check min<max. new function "median" is same with old clamp.
- Add geometry library for solving segments, points and other geometrical calculations.
- eucledian, rectangle and position are replaced by geometry.
- Modernize old libraries
- circular, color, debug_stream, gate have similar interface with std libraries now.
- Add file_utility, which provide functions for managing directory/file path problems between Linux, Mac and Windows.
- Add new iterators.
- index_access_iterator: access to container/iterator by another iterator which return index.
- inserter, whose member type reflect original container.
- integer_iterator: is an iterator-interface proxy for integral.
- overflow_iterator: output_iterator with limit of length, but not throw out_of_range exception.
- Add math library.
- axis: provide container-like interface for axis.
- factorial: factorial function.
- minima&root: wrapper library for boost/math/minima&root.
- constants: provide mathematical constant values/
- Fix: many bugs in lattice library.
- Remove array_queue and type; too old and not-necessary file.
v4_04_02
v4_04_01
- Fix following bugs
- lattice: some functions used functions in hmLib::algorithm namespace after they are moved to hmLib namespace.
- exceptions: fail to read hmLib_config file.
- algorithm: uniform_int is now replaced by uniform_int_distribution. typename is missed.
- random: template keyword is missed in random_bit engines.
v4_04_00
- hmLib library source files are now under the hmLib/ instead of hmLib/hmLib/.
- Add optimize.hpp for optimizing value type of state.
- Following search functions are now available.
- hill climbing search
- simulated annealing search
- brute force search
- Following search functions are now available.
- Update algorithm.hpp
- Add transform_min/max_element for seaching iterator whose transformed value is maximum/minimum.
- Add widest_equal_range function for searching most large number elements.
- Some algorithm functions are now under hmLib namespace instead of hmLib::algorithm.
- Add factorial function in math.hpp
- coodinates.hpp is now only-header file.
- Remove debugout from debugstream.hpp. debugstream.hpp is now only-header file.
- C-style containers are now moved to ccontainer directory.
- Fix many bugs in lattices.
v4_03_05
- Add lattice_view and torus_lattice_view in lattices.hpp
- These classes can be used as a view of other container class.
- By giving the range of objects and size of lattices, the access with lattice style can be used.
- Two access way.
- iterator: Range view of given lattice_view.
- locator: point style accessor to the element within the lattice.
- Remove chain.hpp. boost::intrusive_container can be used for same purpose.
- Fix: file name typo in sequence/progress.hpp
v4_03_04
- Add enumerator.hpp.
- enumerator is the wrapper classes of iterators with smaller overhead than any_iterator and any_range.
- algorthems or other user functions which want to use as the member function of enumertor should be defined by the template parameter.
- Add chain.hpp.
- chain is the container class like list whose members have to derived from the chain_base class.
- sequence.hpp have now its own folder.
- Add resource.hpp
- unique_resource can use any resource like unique_ptr, but the deleter should be defined as the template argument.
- Add xorshift.hpp and pair_normal_distribution.hpp in random namespace.
- xorshift is the fast random engine using xorshift algorithm.
- Add pair_normal_distribution create the random value pair with defined correlation.
- Add partial_accumulate in algorithm/numeric.hpp.
- Add license as MIT.
v4_03_03
v4_03_02
- Add odeint.hpp, which contains many helper class/function for boost::numeric::odeint.
- breakable integrater which can stop the integration if a defined condition is satisfied.
- range_stepper, which can marge different uncontinuous dynamics depending on the state and time, e.g. existence of parameter range limits.
- default useful observers
- iterator_observer
- stream_observer
- container_observer