Skip to content

Releases: hmito/hmLib

v4_05_01

12 Aug 09:39

Choose a tag to compare

  • 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

12 Aug 09:29

Choose a tag to compare

  • 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

14 Apr 07:01

Choose a tag to compare

  • Add lattice and torus_lattice in lattices.hpp

v4_04_01

07 Nov 08:59

Choose a tag to compare

  • 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

08 Aug 17:27

Choose a tag to compare

  • 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
  • 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

30 Mar 20:56

Choose a tag to compare

  • 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

22 Feb 16:16

Choose a tag to compare

  • 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

22 Feb 16:06

Choose a tag to compare

  • Add type_traits.hpp, which is helper head for the std::type_traiys.

v4_03_02

18 Aug 12:27

Choose a tag to compare

  • 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

v4_03_01

18 Aug 12:22

Choose a tag to compare

  • Add circular.hpp, which is a circular container.