Changelog

Ralf Stephan edited this page Jun 24, 2018 · 63 revisions

pynac-0.7.22 (2018-Jun-24)

  • 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

pynac-0.7.21 (2018-Jun-06)

  • add missing file
  • matching fixes
  • provide working versions of quo_rem and rational decomposition
  • information for packagers

pynac-0.7.20 (2018-May-29)

  • 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

pynac-0.7.19 (2018-Apr-08)

  • fix exp(c*f(x)) simplification
  • fix cases(...).subs(...)
  • function::info for min/max_symbolic; see Sage #21945
  • performance and readability improvements

pynac-0.7.18 (2018-Mar-27)

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

pynac-0.7.17 (2018-Feb-26)

  • 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

pynac-0.7.16 (2018-Feb-06)

  • Python interface / Py3 fixes and improvements (thx Erik Bray, Sage #24561)
  • atan2 fixes (Sage #24604)
  • beta fixes
  • fix atanh/acoth(real) and polylog (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

pynac-0.7.15 (2018-Jan-09)

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

pynac-0.7.14 (2017-Dec-06)

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

pynac-0.7.13 (2017-Nov-21)

  • 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

pynac-0.7.12 (2017-Oct-01)

  • 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

pynac-0.7.11 (2017-Sep-10)

  • 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), if t integer
  • cases function; see Sage #20191
  • use Singular for expansion of mul above certain threshold
  • improvements with using libtool in configure
  • remove unused code

pynac-0.7.10 (2017-Aug-09)

  • fix segmentation fault with coefficients(); see Sage #23545
  • fix compile error --with-giac=yes
  • fix tgamma/lgamma return types
  • internal LONG numeric; general speedup

pynac-0.7.9 (2017-Jun-24)

  • 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_coefficients
  • fast internal in-place arithmetic operators
  • obsolete some internal usages of Python

pynac-0.7.8 (2017-Jun-03)

  • 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

pynac-0.7.7 (2017-May-10)

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

pynac-0.7.6 (2017-Apr-20)

  • fix test failure with debug version of Singular
  • heaviside and unit_step equivalent to Sage's versions (Sage #10070)
  • always return unsigned infinity with zeta(1.0) (Sage #19439)
  • return symbolic NaN in asin/acos (Sage #22823)
  • unconditionally use Singular for resultants (Sage #22364)
  • add ex::free_symbols() and interface it (Sage #20179)
  • Appell F1 improvements

pynac-0.7.5 (2017-Feb-12)

  • Gosper algorithm improvements
  • pynac.pc was missing giac

pynac-0.7.4 (2017-Jan-20)

  • 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

pynac-0.7.3 (2017-Jan-04)

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

pynac-0.7.2 (2016-Dec-06)

  • 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

pynac-0.7.1 (2016-Nov-24)

  • 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-0.7.0 (2016-Nov-05)

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

pynac-0.6.91 (2016-Oct-02)

  • 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-numeric a
  • update AUTHORS

pynac-0.6.9 (2016-Aug-30)

  • 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

pynac-0.6.8 (2016-Jul-17)

  • 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_() in GinacFunctions
  • provide Pynac version of Maxima's ex.coefficients() (Sage #20455)
  • some fixes ported from GiNaC

pynac-0.6.7 (2016-Jun-08)

  • fix trig function arg reflection (Sage #20752)
  • fix compile without giac
  • fix giac detection

pynac-0.6.6 (2016-Jun-01)

  • 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

pynac-0.6.5 (Apr 20, 2016)

  • 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

pynac-0.6.4 (Mar 5, 2016)

  • 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

pynac-0.6.3 (Feb 29, 2016)

  • 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

pynac-0.6.2 (Feb 22, 2016)

  • fix bugs in zeta series and powers of series
  • performance: GiNaC functions for sec/csc/asec/acsc

pynac-0.6.1 (Jan 23, 2016)

  • Stieltjes constant function
  • zeta expansion at 1 using stieltjes() (thanks Benjamin Hackl)
  • fix hashing of infinities
  • fix exp and atan of oo
  • fix pseries print order
  • speedups and fixes from GiNaC

pynac-0.6.0 (Jan 2, 2016)

  • backward-incompatible interface change

pynac-0.5.4 (Jan 1, 2016)

  • 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 for Pi and I before trying to divide
  • performance: much less canonicalizations of GMP rationals
  • performance: cache pseries coeff accesses in pseries::mul_series
  • performance: GinacFunctions for cot/acot
  • C++11: add override where possible

pynac-0.5.3 (Dec 18, 2015)

  • fix gmp linking and .pc file

pynac-0.5.2 (Nov 27, 2015)/pynac-0.5.1 (Nov 25, 2015)

  • bugfix release

pynac-0.5.0 (Oct 16, 2015)

  • libgmp bigints and bigrats instead of ZZ and QQ 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 and undecidable 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

pynac-0.3.9.5 (Sep 13, 2015)

  • revert math. logic changes for now (they are still in master)
  • fix regression with rational multiples of pi
  • fix dbgprinttree() of functions
  • performance fixes

pynac-0.4.3 (Jul 31, 2015)

  • better decisions through more info flags and logic
  • return not implemented and undecidable 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 and possymbol

pynac-0.3.9.3 (Jul 31, 2015)

  • fix regression in arithmetic with positive characteristic ring elements
  • better decisions through more info flags and logic
  • return not implemented and undecidable for some decisions
  • fix performance issue with real/imag of powers
  • more rational multiples of pi as argument to sin,cos,tan expanded

pynac-0.4.2 (Jul 11, 2015)

  • 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

pynac-0.3.9.2 (Jul 11, 2015)

  • 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

pynac-0.4.1 (Jun 10, 2015)

  • 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

pynac-0.4.0 (May 28, 2015)

  • requires >=gcc-4.6 or equivalent with -std=c++11
  • C++11:
  • manual switch from auto_ptr to unique_ptr
  • applied clang-modernize to use auto, nullptr, range-based loops, pass-by-value via move

pynac-0.3.9 (May 28, 2015)

  • fix Python includes

pynac-0.3.8 (May 18, 2015)

  • several abs() additions and fixes
  • pynac now compiles with Python3 headers too
  • from GiNaC: power::expand() (x*p)^c -> x^c * p^c, if p>0
  • merge numeric and Number_T classes

pynac-0.3.7 (May 04, 2015)

  • 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

pynac-0.3.6 (April 30, 2015)

  • treat muls and powers only with integer +/- one as special
  • 0^0 is no longer an error
  • latest version of AX_PYTHON_DEVEL macro

pynac-0.3.5 (April 17, 2015)

  • revert GiNaC commit interfering with Pynac print order
  • fix code that produced warnings

pynac-0.3.3 (April 11, 2015)

  • 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

pynac-0.3.2 (March 20, 2014)

  • memory leaks fixed
  • framework for explicit template instantiation
  • implement function::subs() callback into Python
  • merging branch evalf_dict

pynac-0.3.1 (September 29, 2013)

  • 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

pynac-0.3.0 (May 10, 2013)

  • Fix ordering used to print symbolic expressions Sage issue #9880

pynac-0.2.6 (November 20, 2012)

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

pynac-0.2.5 (July 9, 2012)

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

pynac-0.2.4 (May 15, 2012)

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

pynac-0.2.3 (May 31, 2011)

  • Remove extra braces printed when typesetting mul objects.
  • Fix mul::conjugate().
  • Fix tests for custom evaluation functions defined in Python to use bitwise and.

pynac-0.2.2 (May 9, 2011)

  • 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

pynac-0.2.1 (September 12, 2010)

  • 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

pynac-0.2.0 (May 5, 2010)

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

pynac-0.1.12 (April 12, 2010)

  • Apply upstream patches to fix “division by zero” error on atan2(-pi,0).
  • Apply upstream patches to fix incorrect use of STL iterators.

pynac-0.1.11 (January 19, 2010)

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

pynac-0.1.10 (November 22, 2009)

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

pynac-0.1.10.a0 (November 19, 2009)

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

pynac-0.1.9 (September 22, 2009)

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

pynac-0.1.9.p0 (September 24, 2009)

  • Put parenthesis around exp when printing powers.

pynac-0.1.8.p2 (August 1, 2009)

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

pynac-0.1.8.p0 (June 14, 2009)

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

pynac-0.1.8 (June 4, 2009)

  • Add error handling for py_get_constant.
  • Simplify exp(a)*exp(b) -> exp(a+b)
  • Revert previous changes to symbol::calchash

pynac-0.1.7 (May 18, 2009)

  • Many fixes needed to make Pynac work as the default system for symbolic manipulation in Sage.

pynac-0.1.6 (May 6th, 2009)

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

pynac-0.1.5 (April 13th, 2009)

  • Change printing of pi (Pi -> pi)
  • Delay evaluation of special functions until .evalf() is called
  • Add precision parameter to .evalf()

pynac-0.1.4 (April 11th, 2009)

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

pynac-0.1.3 (February 26th, 2009)

  • Fix serious bug in expairseq::compare_same_type which resulted in wrong simplifications.
  • Remove dependencies on lex, yacc, and dlopen.

pynac-0.1.2 (January 30th, 2009)

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

pynac-0.1.1.p0 (January 20th, 2009)

  • add OSX 64 bit build support

pynac-0.1.1 (October 15th, 2008)

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

pynac-0.1.p0 (September 20th, 2008)

  • 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

pynac-0.1 (August 8th, 2008)

  • 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”
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.