= pynac =

== Description ==

A modified version of GiNaC that replaces the dependency on CLN by Python.

== License ==

GPL V2+

== SPKG Maintainers ==

 * Burcin Erocal - burcin <AT> spam.erocal.org

== Upstream Contact ==

 * Burcin Erocal -  burcin <AT> spam.erocal.org
 * William Stein -  wstein <AT> spam.gmail.com
 * Mike Hansen   - mhansen <AT> spam.gmail.com

== Dependencies ==

Python

== Special Update/Build Instructions ==

If build fails trying to run autoheader, run

   autoreconf -i --force

in the src directory.

== Changelog ==

=== pynac-0.3.0 (Burcin Erocal, 27 May 2013) ===
 * Trac #9880: update to version 0.3.0
 * Fix comparison functions so that they provide a SWO

=== pynac-0.2.6 (Jean-Pierre Flori, 21 November 2012) ===
 * Trac #13729: update to version 0.2.6.
 * Trac #13609: normalization of content in GF(2^k) leads to infinite loop.
 * Trac #13587: invalid cancellation of infinities.
 * Trac #13262: printing of parenthesis around exponent of power objects.

=== pynac-0.2.5 (Jean-Pierre Flori, 31 July 2012) ===
 * Trac #13316: update to version 0.2.5.
 * Trac #13107: fix division by Python longs.

=== pynac-0.2.4 (Jean-Pierre Flori, 23 May 2012) ===
 * Trac #12950: Include patches to fix:
  * Trac #11155: abs(pi + I) -> pi + I
  * Trac #11423: atan2(0,0) should be undefined
  * Trac #11919: pickling of user defined symbolic functions without custom
                methods
  * Trac #12303: beta function should remain symbolic for exact inputs
  * Use Python when comparing Python objects wrapped in numerics
  * Complete rewrite of the code handling various types of infinities
 * Remove upstream revision control within the src directory
 * Add .hgignore file to exclude src directory

=== pynac-0.2.3.p1 (Jeroen Demeyer, 13 February 2012) ===
 * Trac #12501: touch src/config.h.in to prevent autoheader from running.

=== pynac-0.2.3.p0 (Simon King, December 10, 2011) ===
 * #12131: Use --libdir, to make the package work on openSUSE.

=== pynac-0.2.3 (Burcin Erocal, May 31, 2011) ===
 * Fix tests for custom evaluation functions defined in Python to use
   bitwise and (Sage issue #9240)
 * Remove extra {} printed when typesetting mul objects
 * Merge patches from upstream:
  * Sage issue #10964: fix conjugates of mul objects with rational exponents
  * Sage issue #11352: fix is_polynomial()

=== pynac-0.2.2 (Burcin Erocal, 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 (Burcin Erocal, 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.

=== pynac-0.2.0.p5 (David Kirkby, July 16, 2010) ===
 * #7861 Export CC="$CC -m64" and CXX="$CXX -m64" if
   SAGE64 is set to "yes". This is because setting
   CFLAGS and CXXFLAGS to include the -m64 option was
   not sufficient to get this to build properly as 64-bit
   on Solaris 10 or OpenSolaris.

=== pynac-0.2.0.p4 (Burcin Erocal, July 11, 2010) ===
 * Fix latex typesetting of rational functions. #9314

=== pynac-0.2.0.p3 (William Stein, June 4, 2010) ===
 * Change to src/ for trac 9135.

=== pynac-0.2.0.p2 (William Stein and Mike Hansen, June 3, 2010) ===
 * autoreconf and merge in trac 9086

=== pynac-0.2.0 (Burcin Erocal, 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 (Burcin Erocal, April 2, 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 (Burcin Erocal, 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 (Burcin Erocal, 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 (Burcin Erocal, 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.p0 (Burcin Erocal, September 24, 2009) ===
 * Put parenthesis around exp when printing powers.

=== pynac-0.1.9 (Burcin Erocal, 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.8.p2 (Burcin Erocal, 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.p1 (Mike Hansen, June 19, 2009) ===
 * Updated build path to work with Python 2.6.

=== pynac-0.1.8.p0 (Burcin Erocal, June 14, 2009) ===
 * Fix serios bug in comparison of mul and pow objects.
 * Conjugates of symbolic functions no longer just apply conjutage 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 (Burcin Erocal, 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.p0 (William Stein, June 1, 2009) ===
 * Fix typo in spkg-install found by Mariah Lenox.

=== pynac-0.1.7 (Mike Hansen, et al. May 18, 2009) ===
 * Many fixes needed to make Pynac work as the default system for
   symbolic manipulation in Sage.

=== pynac-0.1.6 (Burcin Erocal, 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 (Burcin Erocal, 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 (Burcin Erocal, 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 (Burcin Erocal, 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 (Burcin Erocal, 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 (Michael Abshoff, January 20th, 2009) ===
 * add OSX 64 bit build support

=== pynac-0.1.1 (Burcin Erocal, 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 (Burcin Erocal, Michael Abshoff, 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 (William Stein) ===

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"

