This repository was archived by the owner on Sep 26, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 26
Changelog
Matthias Köppe edited this page Aug 23, 2021
·
68 revisions
- Only use builtin for smull_overflow if supported by the compiler (Matthias Koeppe)
- trac 31585 32-bit overflow (Dave Witte Morris)
- Fix pynac.pc.in (Julien Puydt)
- Fix mpq and mpz pythonhash (Markus Wageringel, Sage 28219)
- Fix compilation error with GMP long long limbs (Eric M Bray, Sage 27713)
- fix behaviour under Python 3 (Jeroen Demeyer)
-
rational_power_parts()
fix (Isuru Fernando) -
numeric::ratlog()
fix (Eric M Bray, Sage 25948) - matching improvements / fixes
- fix matching
- fix rational decomposition
- fix power inconsistency
- internal fix of another power inconsistency (Sage 25639)
-
(x^a)^b --> x^(ab)
IF x real, a odd integer, ab integer - add ex::treesize() as complexity metric
- add missing file
- matching fixes
- provide working versions of quo_rem and rational decomposition
- information for packagers
- implement commutative matching; fix GiNaC's matching deficiencies (Sage #25168)
- substitute patternless if no wildcards present
- remove some compiler warnings
- update AX_CXX_COMPILE_STDCXX.m4
- fix
exp(c*f(x))
simplification - fix
cases(...).subs(...)
-
function::info
formin/max_symbolic
; see Sage #21945 - performance and readability improvements
- correct
sinh/cosh/tanh
return type (Sage #24299) -
atan2
fixes - potential memleaks fixed
- fixes in Giac interface
-
subs
can now substitute numeric terms (Sage #23964)
- fix memleak in in-place PyObject numerics; see Sage 24745
- Python interface / Py3 fixes and improvements (thx Erik Bray, Sage #24561, #24752)
- fix internal
asin
/acos
of complex balls - draw factors out of add^rational; see Sage 24768
-
exp(f(x))
,exp(c*f(x))
, f inv. hyperbolic simplifications - always extend trig/hyperbolic functions to complex domain (Sage #24428)
- extensive code readability improvements
- Python interface / Py3 fixes and improvements (thx Erik Bray, Sage #24561)
-
atan2
fixes (Sage #24604) -
beta
fixes - fix
atanh/acoth(real)
andpolylog
(Sage #24299) - immediate atanh/acoth --> log simplifications (Sage #24658)
-
legendre_P
(Sage #24553) -
chebyshev_T/U
(Sage #16812) - speedup in special polynomial creation
- remove clang-check error
- remove many clang-tidy warnings
- remove unused code
- added CONTRIBUTING.md
- fix mpz conversion (Sage #24418)
- fix
infinity.info()
,function.info()
,power.info(negative)
- fix
symbol.real/imag_part()
- fix bug showing with nonnumeric rationals
- fix Pyth
on import from
sage.rings
- rational symbol domain (Sage #24368)
- implement
constant.is_nonzero()
(Sage #18630) - fully implement
info(even)
(Sage #24351) - fully implement
info(nonzero)
- fully implement
info(rational)
- fix subs regression (Sage #24262)
- improve inexact numerics (Sage #24299, #24317)
- (x^-a)^-b --> (x^a)^b, with a,b numeric > 0
- fix mul of infinities (Sage #24327)
- implement has_function() (Sage #24283)
- use arb for inverse trig/hyperbolic funs
- internally rename tgamma to gamma (affects print order)
- fix ex.coefficients() bugs (Sage #23545, #24147)
- fix interface to Singular GCD (Sage #23845)
- fix compiler warnings
- asin/atan enhancements (Sage #24211)
- set_of_all() function (Sage #24176)
- upgrade ax_cxx_compile_stdcxx_11.m4
- symbol replacements should inherit flags; care for exp() (Sage #23861)
- check series and polynomials for exponent overflow (Sage #12589)
- fixes and improvements to Singular conversion
- make factor() as capable as Maxima's (Sage #23835)
- immediate exp(x)^y simplifications
- immediate log of small powers simplifications (Sage #23224)
- make degree functions return numeric
- fix coeff() problem with fraction as argument (Sage #19996)
- fix: useries wasn't adapted to long numeric changes
- include last-minute fix from Sage #23325
- hold context; see Sage #10035
- immediate simplification of trig function with argument of form I*x
- immediate simplification of hyperbolic function with argument of form I*x
-
(x*y^(m/n)*z)^(r/s) ---> y^t*(x*z)^(r/s)
, ift
integer - cases function; see Sage #20191
- use Singular for expansion of mul above certain threshold
- improvements with using libtool in configure
- remove unused code
- fix segmentation fault with coefficients(); see Sage #23545
- fix compile error --with-giac=yes
- fix tgamma/lgamma return types
- internal LONG numeric; general speedup
- remove static PyObjects; (Sage #23134)
- (real^m)^(1/n) --> abs(real)^(m/n), m even, m/n integer; see Sage #14305
- fix
add::conjugate()
; see Sage #23135 - fix
is_real(zeta(real))
- negative symbolic domain from assume(sym<0); see Sage #21973
- add missing calls to
set_domain
in symbol constructors; see Sage #23138 - implement
add.info(negative)
- exact comparison of
overall_coefficient
s - fast internal in-place arithmetic operators
- obsolete some internal usages of Python
- fix series bug (Sage #22733)
- fix polylog return type for some arguments (Sage #18386)
- fix Python3 compile (thanks François)
- fix symbol.set_domain(); fix power.is_real() (Sage #23093)
- add limit function to functions with bound symbols (part of Sage #20179)
- numeric power speedup and cleanup
- optimizations in usage of Sage Python functions
- optimizations in Python C API usage
- source cleanup using clang checks; removes some compile warnings
- fix regression in Singular interface (known bug in Sage #22838)
- fix series problems (Sage #22959)
- fix dilog/polylog numerics (Sage #18386, #19906)
- avoid Python errors when comparing complex in richcmp
- general handling of evalf of one-arg functions (obsoletes py_sin etc)
- fix test failure with debug version of Singular
-
heaviside
andunit_step
equivalent to Sage's versions (Sage #10070) - always return unsigned infinity with
zeta(1.0)
(Sage #19439) - return symbolic
NaN
inasin
/acos
(Sage #22823) - unconditionally use Singular for resultants (Sage #22364)
- add
ex::free_symbols()
and interface it (Sage #20179) - Appell F1 improvements
- Gosper algorithm improvements
- pynac.pc was missing giac
- improve domain logic (Sage #18883, #22026)
- improve derivatives of
conjugate
,real
,imag
,abs
(Sage #22209) - precision was lost with some useries
- replace crationality with exactness when deciding when to evalf (fixes Sage #22142)
- fix giac support (Sage #21885)
- expose to_gamma() and gamma_normalize() to Sage (Sage #22174)
- improve gamma normalization in Gosper summation
- performance improvements
- Gosper algorithm (see Sage #22090 for details)
- fixes to Singular interface
- internal expression factorization
- internal integer factorization (into longs) via Flint and divisors
- internal integer factorial and binomial via GMP
- make all info requests on NaN return false,
- fix dilog problems (Sage #19906)
- fix Singular GCD interface
- fix is_real(positive^positive) (Sage #21940)
- better error message with evalf of some orthogonal polys
- improve pkg-config usage
- add libfactory interface; unconditionally replace GiNaC GCD with Singular (Giac still optional); this fixes Sage #10284; it means that Singular is now another Pynac dependency
- fix zeta expansion around 1 (behackl)
- fix Giac GCD doctest fail
- fix NaN unpickling (uncovered in Sage #20939)
- fix Flint underlinking (fbissey)
- add internal rising/falling factorial
- Pynac now depends on Flint
- fast univariate series expansion using Flint (Sage #14878)
- fix gamma(QQbar(1/2)) problem
- gegenbauer(n,a,x) fixes and enhancements (Sage #21639)
- fix hermite derivative wrt index (Sage #21618)
- compiles with clang
- fix
cot(float)
bug; (Sage #21365) - NaN constant; return NaN with atan2(0,0) (Sage #21614)
- numeric log fixes
- prevent some overflow exceptions in
cot/csc
- two-argument log (log to base)
- Support
gegenbauer(n,a,x)
with non-numerica
- update AUTHORS
- fix bug affecting Cygwin compile (Sage #21265)
- combine some numerics in nested powers; (Sage #21360)
- fix and clean up
ex::coefficients()
(Sage #20455) -
expand()
denominators too (Sage #21302) - make
ex::combine_fractions()
recursive (Sage #20858) - more
normal()
options (Sage #21335) - Appell F1 function skeleton
- updates from GiNaC
- fix polylog evalf (Sage #18368)
- better beta_evalf() (Sage #15196)
- fix bug in cancelling of fractions (Sage #19775, #20843)
- fix some positive/nonnegative bugs
- do not ignore
_print_latex_()
inGinacFunction
s - provide Pynac version of Maxima's
ex.coefficients()
(Sage #20455) - some fixes ported from GiNaC
- fix trig function arg reflection (Sage #20752)
- fix compile without giac
- fix giac detection
- fix Hermite/Gegenbauer evalf
- fix Py3 compile
- fix clang compile errors
- install pynac-config.h instead of config.h to prevent duplicate defines
- fix internal binomial of noninteger
- optionally use giac for GCD
- fix for:
assume(x>0)
sets integer flag - fix Maxima crashes by implementing fast Hermite and Gegenbauer polynomials in Pynac
- some fixes to handling of elements of rings with positive characteristics
- Python 3 build fix
- automatic trigonometric and log simplifications
- direct call of Sage's
hypergeometric::_evalf_
to compute pFq
- fix positive+integer assumption conflicts
- from GiNaC: [bugfix] fix elusive bug in quo, rem,...
- from GiNaC: [bugfix] fix sqrfree(poly) for zero polynomials in disguise.
- more trigonometric simplifications
- always expand function arguments
- performance: GiNaC functions for
coth/sech/csch/acoth/asech/acsch
- AUTHORS updated
- fix
Re/Im(tanh)
; see Sage ticket 20098 - sin/cos/tan of numeric: reduce mod
2*pi
- exp of numeric: reduce mod
2*pi*I
- performance: speed up sin/cos/tan/cot/coth evaluation
- fix bugs in zeta series and powers of series
- performance: GiNaC functions for sec/csc/asec/acsc
- Stieltjes constant function
-
zeta
expansion at 1 usingstieltjes()
(thanks Benjamin Hackl) - fix hashing of infinities
- fix
exp
andatan
ofoo
- fix
pseries
print order - speedups and fixes from GiNaC
- backward-incompatible interface change
- fix expansion of
abs(power)
- fix a wrong function option with
zeta/zeta2
- fix wrong formula for
tan(...).imag()
- fix
mpq_pythonhash
- change hash type to
int64_t
- expand
exp(m/n*pi*I)
with trig functions if they can be expanded - start changing libtool version with each release
- performance: in
exp_eval
check forPi
andI
before trying to divide - performance: much less canonicalizations of GMP rationals
- performance: cache pseries coeff accesses in
pseries::mul_series
- performance:
GinacFunction
s forcot/acot
- C++11: add
override
where possible
- fix gmp linking and .pc file
- bugfix release
- libgmp
bigint
s andbigrat
s instead ofZZ
andQQ
Python objects - assumptions/domains can influence Pynac computation (changes versus 0.3.9.5 following)
- C++11 results in better code readability
- better decisions through more info flags and logic
- return
not implemented
andundecidable
for some decisions - add inexact flag for possible expansions / FP simplifications
-
abs()
expansion function::info()
- from GiNaC: Fix
pow(+(...),2).expand()
- remove some unused files and other cleanup; add missing autoconf macro;
- some older memleaks closed
- revert math. logic changes for now (they are still in master)
- fix regression with rational multiples of pi
- fix
dbgprinttree()
of functions - performance fixes
- better decisions through more info flags and logic
- return
not implemented
andundecidable
for some decisions - fix performance issue with
real
/imag
of powers - more rational multiples of pi as argument to
sin
,cos
,tan
expanded - remove
realsymbol
andpossymbol
- fix regression in arithmetic with positive characteristic ring elements
- better decisions through more info flags and logic
- return
not implemented
andundecidable
for some decisions - fix performance issue with
real
/imag
of powers - more rational multiples of pi as argument to
sin
,cos
,tan
expanded
- better arithmetic with positive characteristic ring elements
- fix
is_zero
bug, affecting comparisons - better nonnumeric comparisons with infinity
- add integer domain, propagate to symbol info
- add inexact flag for possible expansions / FP simplifications
- better arithmetic with positive characteristic ring elements
- fix
is_zero
bug, affecting comparisons - better nonnumeric comparisons with infinity
- add integer domain, propagate to symbol info
-
abs()
expansion function::info()
- from GiNaC: Fix
pow(+(...),2).expand()
- remove some unused files and other cleanup; add missing autoconf macro;
- C++11:
- more auto instead of iterator declarations
- get usage of smart pointers right
- more range-based loop modernization
- requires >=gcc-4.6 or equivalent with
-std=c++11
- C++11:
- manual switch from
auto_ptr
tounique_ptr
- applied clang-modernize to use
auto
,nullptr
, range-based loops, pass-by-value viamove
- fix Python includes
- several
abs()
additions and fixes - pynac now compiles with Python3 headers too
- from GiNaC:
power::expand()
(x*p)^c
->x^c * p^c
, ifp
>0 - merge
numeric
andNumber_T
classes
- unhandled print order comparisons now call generic code instead of throwing exceptions
- fix bug in adds with simplified numerics
- check if infinity direction is numeric before comparing to zero
- treat muls and powers only with integer +/- one as special
-
0^0
is no longer an error - latest version of AX_PYTHON_DEVEL macro
- revert GiNaC commit interfering with Pynac print order
- fix code that produced warnings
- fixed the series expansion of zeta(s) around 1
- print_latex of wildcards
- clear the libtool versioning scheme
- sync with current GiNaC as much as possible
- memory leaks fixed
- framework for explicit template instantiation
- implement function::subs() callback into Python
- merging branch evalf_dict
- Implement Pynac->Python callback for function::subs() Sage issue #14800
- Change argument of evalf to an arbitrary dict Sage issue #12289
- Use \cdot to separate coefficient from following digit in latex mul output Sage issue #13356
- Fix ordering used to print symbolic expressions Sage issue #9880
- Fix infinite loop in content normalization of add objects within mul::eval (Pynac issue #12) (Sage issue #13609)
- Fix fallout from infinities rewrite where expairseq eagerly simplified infinity objects in its contructor. (Pynac issue #14) (Sage issue #13587)
- Fix printing of parenthesis around exponents of power objects. (Reported and fixed by Sebastien Gouezel.)
- Build system improvements by Julien Puydt.
- Less verbose output during build.
- Fix detection of Python.
- Do not include release version in library name.
- Fix infinite loop in power::eval.
- Evaluate psi1 numerically if argument is not crational.
- Infinities rewrite by Volker Braun.
- beta() remains symbolic if both arguments are crational.
- Fix unarchiving of symbolic functions defined at runtime without any custom methods.
- Use PyObject_Cmp to compare numerics wrapping Python objects.
- Make atan2(0,0) throw error. (Sage Trac #11423)
- correctly handle complex numbers in numeric::info(nonnegative).
- Add method to ex for counting number of symbols in an expression.
- Remove extra braces printed when typesetting mul objects.
- Fix mul::conjugate().
- Fix tests for custom evaluation functions defined in Python to use bitwise and.
- Merge patches from upstream with the following:
- Sage issue #9981 where (5-e^x).substitute(x=log(x)) gave 5-log(x)
- Sage issue #9947 where add.eval() did not canonicalize expression properly
- Sage issue #8943, series expansion can handle some trivial singularities now
- conjugate functions for sinh, cosh and tanh
- bunch of fixes for msvc compiler
- Print rational functions and mul objects better.
- Include patches from GiNaC to fix memory leaks in power::eval and improve conjugation of special functions.
- Allow disabling automatic evaluation in add and mul constructors.
- zeta(1) now returns UnsignedInfinity.
- Fix csgn function to conform to the original GiNaC specification.
- Do not generate function.{h,cpp} automatically.
- Fix latex typesetting of rational functions. #9314
- Add support for GCC 4.5.0.
- Move Sage interface functions to a function table, to add Cygwin support.
- Add autoconf macros to detect Python.
- Import GiNaC patch to make binomial(n,0) -> 1.
- Remove extra parenthesis when typesetting rational fractions.
- Apply upstream patches to fix “division by zero” error on atan2(-pi,0).
- Apply upstream patches to fix incorrect use of STL iterators.
- Fix unarchiving overloaded functions.
- Move numeric evaluation of log higher in eval.
- Fix serious bug in printing where coefficients were printed with -, but not negated.
- Change typesetting of rational functions to separate the numerator and denominator of the coefficient as well.
- Speed up real_part() by removing calls to is_real().
- Allow overriding builtin function custom methods from python.
- Allow setting domain and latex_name of symbols.
- Improve deduction capabilities of info() for arithmetic classes.
- Minor changes to auto* files to make them work with libtool-2.
- Fix hash collisions for fderivatives yet again.
- Fix segfault when mul tries to simplify powers of exp.
- Latex typesetting of nested powers print valid latex code.
- Latex typesetting of add and mul uses \left( and \right).
- Pass parent instead of precision to custom evalf methods.
- Pass function instance to custom methods of functions.
- Change typesetting to match Sage conventions.
- Handle exceptions while autoevaluating exp.
- Only simplify exp(a)^b -> exp(a*b) when b is an integer.
- Fix latex printing of log to \log (was \ln).
- Fix hash collision for fderivatives.
- Fix comparison of fderivatives and functions.
- Allow numeric approximation of functions on inexact input again.
- Change printing of lgamma to log_gamma and \log \Gamma.
- Put parenthesis around exp when printing powers.
- Fix latex typesetting of conjugate(), real_part() and imag_part().
- When calculating hash of fderivative use paramset to avoid collisions.
- Add support for infinity to functions defined in inifcns_trans.cpp.
- Add parameter to disable application of chain rule while differentiating symbolic functions.
- Fix serious bug in comparison of mul and pow objects.
- Conjugates of symbolic functions no longer just apply conjugate to the arguments.
- Latex printing of exp now works correctly.
- Better error handling for calls to python printing functions.
- polylog prints as Li to match Sage.
- Add error handling for py_get_constant.
- Simplify exp(a)*exp(b) -> exp(a+b)
- Revert previous changes to symbol::calchash
- Many fixes needed to make Pynac work as the default system for symbolic manipulation in Sage.
- Fix error handling in Number_T::hash().
- Add support for archiving numeric and function objects.
- Fix comparison bug in mul.
- Fix gcc warnings about conversion of strings to char*.
- Change exp to not prints exponents of 1.
- Add power method to exp so that (e^x)^y -> e^(x*y).
- Change printing of pi (Pi -> pi)
- Delay evaluation of special functions until .evalf() is called
- Add precision parameter to .evalf()
- Add support for arithmetic with infinity.
- Use python repr function for printing numeric objects.
- Print paranthesis in latex mode with \left and \right.
- Call python for latex names of symbols.
- Support calling user specified python functions to print function instances.
- Call python for printing function and fderivative.
- Fix serious bug in expairseq::compare_same_type which resulted in wrong simplifications.
- Remove dependencies on lex, yacc, and dlopen.
- factorial now prints as factorial(n), not n!.
- Change comparison functions to make higher degree terms print first.
- functions (and fderivatives) now print after other types.
- Add latex printing for binomials.
- exp is now printed as e^x.
- Change the way rational functions are printed to match Sage.
- add OSX 64 bit build support
- Allow python functions to provide custom evaluation, derivative, series expansion, etc. functionality of symbolic functions
- Change names of more files to prevent clashing with a ginac installation.
- Fix several bugs when working with modular coefficients.
- Change library name, include file location to reflect the package name and not conflict with ginac
- Change library version numbers to reflect package version
- Fix build problems where autoheader was run
- Summary of changes from GiNaC:
- GiNaC::numeric was replaced completely to rely on Python and Sage types instead of CLN.
- Use Pari via Sage to compute numerical values for special functions.
- Printing order is consistent between different runs.
- Inverse trig functions print with “arc” instead of “a”