Skip to content

Releases: chen-qingyu/pyincpp

v2.5.2

05 Oct 11:27
Compare
Choose a tag to compare

Feature

  • Add method Fraction::gcd/lcm().

Fixed

  • Fix all gcd/lcm(): return non-negative number.

Misc

  • Refine docs.
  • Refine code.
  • More tests.

v2.5.1

17 Aug 20:23
Compare
Choose a tag to compare

Fixed

  • Fix Tuple::operator!=() for empty tuple.
  • Fix Tuple::operator==() for different element types.

v2.5.0

17 Aug 20:11
Compare
Choose a tag to compare

Misc

  • Change license: GPL-3.0 -> MIT.
  • Update docs.
  • Refine code.

v2.4.1

22 Jun 00:00
Compare
Choose a tag to compare

Fixed

  • Fix operator>>(std::istream& is, Complex& complex): correctly parsing input 3j.

Misc

  • Refine comments.
  • Refine code: use std::hypot() for complex.
  • Refine docs.

v2.4.0

23 May 04:06
Compare
Choose a tag to compare

Feature

  • Add class Complex.
  • Add method Fraction::numerator()/denominator().

Misc

  • More compact code.

v2.3.0

17 May 07:06
Compare
Choose a tag to compare

Feature

  • Add static method Int::random().
  • Add static method Int::log().
  • Add method Int::is_prime().
  • Add method Int::next_prime().
  • Make all immutable types hashable.

Performance

  • Optimized basic operations and many functions for Int.

Fixed

  • Fix Int::pow(): (-1)^(-1) => -1

Change

  • Move gcd()/lcm() to Int::gcd()/lcm().
  • Make Int::sqrt(), Int::pow() static.

Misc

  • Add benchmark pyincpp_int_vs_other_int.
  • Refactored benchmark std_vs_pyincpp.
  • More tests.
  • More docs.
  • Make all filename lowercase.
  • Use g++ -std=c++20 -Wall -Wextra -Wold-style-cast -Wpedantic tested and eliminated all warnings.
  • Make some old compilers happy.

v2.2.0

13 May 02:02
Compare
Choose a tag to compare
  1. More and regular tests.
  2. Add extend() for containers.
  3. Use input_iterator concepts to constrain iterators.
  4. The performance of Int has greatly improved.
  5. More detailed comments.

bench
cmp

v2.1.0

02 May 14:43
Compare
Choose a tag to compare

Manually "cherry-pick"ed with pyinrs:

  1. update readme: more history and refine
  2. add test_demo
  3. add check for Deque::push
  4. add Dict::pop
  5. support input for Fraction
  6. refine code structure
  7. refine class comments with pyinrs
  8. add Set::pop
  9. fix comment for Set::min

v2.0.0

28 Apr 01:42
Compare
Choose a tag to compare

BREAKING CHANGE

Version 2.0.0

  1. Rename Map->Dict, Integer->Int, String->Str, consistent with the Python name.
  2. Optimize as much as possible using standard library templates and algorithms.
  3. Refactor with C++20.
  4. Use Rust doc-comments style for conciseness.
  5. More functionality, cleaner code, faster speed.

v1.6.1

26 Apr 17:17
Compare
Choose a tag to compare
  1. Fix bug in List::operator>>=()/<<=().
  2. Remove String::set()/get().
  3. Optimize performance.
  4. Simplify dependencies.

This is the last version that uses custom data structures and requires C++17.