Releases: chen-qingyu/pyincpp
Releases · chen-qingyu/pyincpp
v2.5.2
v2.5.1
Fixed
- Fix
Tuple::operator!=()
for empty tuple. - Fix
Tuple::operator==()
for different element types.
v2.5.0
Misc
- Change license: GPL-3.0 -> MIT.
- Update docs.
- Refine code.
v2.4.1
Fixed
- Fix
operator>>(std::istream& is, Complex& complex)
: correctly parsing input3j
.
Misc
- Refine comments.
- Refine code: use
std::hypot()
for complex. - Refine docs.
v2.4.0
Feature
- Add class
Complex
. - Add method
Fraction::numerator()/denominator()
.
Misc
- More compact code.
v2.3.0
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()
toInt::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
v2.1.0
v2.0.0
BREAKING CHANGE
Version 2.0.0
- Rename
Map
->Dict
,Integer
->Int
,String
->Str
, consistent with the Python name. - Optimize as much as possible using standard library templates and algorithms.
- Refactor with C++20.
- Use Rust doc-comments style for conciseness.
- More functionality, cleaner code, faster speed.
v1.6.1
- Fix bug in
List::operator>>=()/<<=()
. - Remove
String::set()/get()
. - Optimize performance.
- Simplify dependencies.
This is the last version that uses custom data structures and requires C++17.