August 21, 2007 -------------- Release notes for Sage 2.8.2 The goal of this release was to squash as many known bugs from our bug tracker as possible. Only a very limited number of features have been added and to some extend the portability of Sage to Solaris has been improved. While we haven't crossed the finish line for Solaris yet we have gotten very close. Unfortunately some of the fixes caused problems on other architectures, so we will revisit those problems in the future, hopefully for 2.9 The total number of tickets closed was 47. Considering that now there are about 217 tickets open (of which many are enhancements and not defects) Sage's Bug Day 1 can be considered a tremendous success. Participation was lively (in total 10 people showed up) and the whole session went on for about 16 hours. Some of the people even got together in IRC the next day to sort out some of the leftovers. We still think that certain aspects of the way we planned and handled the bug day can be improved upon (as always) and plan to do Sage's Bug Day 2 on September 7th 2007 starting at 10 am Pacific time. The results from Sage's Bug Day 1 are as follows: algebraic geometry 4/4 basic arithmetic 12/12 interfaces 5/6 linear algebra 3/3 modular forms 2/2 notebook 5/7 number theory 2/2 packages 7/11 user interface 7/7 x/y denotes that x out of y bugs in that category were fixed. For the details check out http://www.sagemath.org:9002/sage_trac/milestone/sage-2.8.2 and http://www.sagemath.org:9001/bug1/Results 2.8.1: ----- These are the release notes for sage-2.8.1, though there never was an official release. The reason it was never officially released was that 2.8.1 was the basis of the first Sage Bug Squashing day that is about to be wrapped up. The main goal of this release was to get Sage to compile cleanly on a wider range of platforms, and fix any build-system bugs we discovered along the way: * Linux on Itanium * Linux on PPC 64 * Solaris on Sparc and Opteron This involved a whole lot of massaging spkg-install scripts and build options. William Stein did the port for Linux on Itanium and PPC 64 while William Stein, Michael Abshoff, Didier Deshommes and Kate Minola did work on the Solaris port. They were helped by Martin Albrecht to sort out some Singular and libSingular build issues. Robert Bradshaw coded up a patch to sort out some issues with Cython on *BSD based systems. While the Itanium port of Sage is now fully working and supported neither the Linux on PPC not the Solaris on Sparc/Opteron port made it to the finish line. While the Linux on PPC is close there are still some issues left with Solaris, but great progress has been made there. Detailed changes: * w stein, m abshoff: add stdint.h to local/include/ to work around missing defines in Solaris * r bradshaw: fix coercion code to compile on *BSD, fix Cython to warn about _[A-Z] PyObjects. [not applied yet.] * w stein: Make sure that the system-wide gmp doesn't get picked up. * w stein, d deshommes, m abshoff: linbox build fixes, lround workaround, build against gsl blas on solaris * w stein, k minola: gfortran binary on Solaris, add SAGE_FORTRAN environment variable. * w stein: make f2c use gcc instead of cc on Solaris * w stein: pari build fixes on Solaris and Itanium * w stein: fix problem with matplotlib when linking in the wrong libz in /usr/local/lib * w stein: new mpfi package * w stein, m abshoff, m. albrecht: many fixes to the singular package to make it build on Solaris * w stein, m abshoff, d deshomees: stdint.h fix for Solaris * w stein: update gmp package, so that the resulting gmp is much more portable (and possible resolve some other bugs -- old version was building with certain patches preapplied). Many of the fixes were a joint effort be several people, some fixes were discovered twice, i.e. Didier Deshommes had made suggestions on fixes for Sage 2.5.x on Nexenta which were unfortunately rediscovered. We will discuss how to deal with that problem in the report about the first Sage Bug Squashing day. Cheers, Michael Abshoff Sun Aug 12 14:10:37 2007 ------------------------ 2.8: * juan m bello rivas: fix so clisp can be built in the background. * m albrecht, c pernet: new version of givaro that fixes some bugs. (gcc-4.2 support) * m abshoff, c pernet, w stein: new version of linbox that fixes some bugs. (gcc-4.2 support) * d kohel, g nebe, et al.: Genus computation for quadratic forms (not really made public yet but it is there in quadratic_forms/genus). * e kirkman, r miller: graph database improvements (which are generally useful). * s howe, r miller: bruhat intervals * j mohler: programming guide improvement * b moretti: cayley graphs * w stein: upgraded sympy to version 0.5.1, whose main features included much optimization * w stein: implement computing half_integer_weight_modform_basis function for computing a basis for half-integral modular forms of given weight, level, and character. Thu Aug 2 21:18:23 2007 ------------------------ 2.7.3: * r bradshaw: bug fixes * j bober: vastly optimized number_of_partitions * c citro: bug fixes and optimization of computing Eisenstein series. * d kohel: bug fixes; improved free modules * w stein: upgraded to jsmath-3.4c * w stein: many misc bug fixes; speed up bell_number * j walker: notebook bug fixes, etc. Sat Jul 28 21:47:59 2007 ------------------------ 2.7.2: * m albrecht (refereed by r bradshaw): some tiny bug fixes * s behnel, w stein: cython-0.9.6 replaces sagex; this is a merge of lxml-pyrex and sagex. * j bobber, b hart, w stein, et al.: fast computation of number_of_partitions * w stein, j walker: misc little bug fixes * w stein: added "sage -min" option to start sage without defining global vars * w stein: some modular forms improvements and bug fixes Tue Jul 24 16:41:34 2007 ------------------------ 2.7.1: * m albrecht: misc arithmetic fixes and improvements * r bradshaw: matrix subdivisions * r bradshaw: lots of p-adic and series optimizations * r bradshaw: implementation of the new coercion model (massive amount of work) * j kantor and w stein: switch from fortran to g95 and update many build scripts * d kohel (ref w stein): improvements to Jacobians and point sets * e kirkman and r miller: graph genus module; speed and bugfix and documentation improvements to NICE * j schmidt: group theory bug fixes * w stein & d deshommes: putting all spkg's under revision control; reorganize package structure * w stein: upgrade to pari-2.3.2 * w stein: upgrade to ZODB-3.7.0 * c wuthrich: supersingular p-adic birch and swinnerton-dyer code Thu Jul 19 21:45:41 2007 ------------------------ 2.7: * m albrecht: a huge patch of fast multivariate poly arithmetic code, etc. * r bradshaw: enhancements to sagex; merge with official pyrex. * d harvey: generic convolution function * d joyner (refereed by n alexander): large permutation group improvements patch. * j kantor: excellent fortran support (e.g., %fortran in the notebook) * j kantor and w stein: new standard SAGE packages -- blas: fortran low level linear algebra cvxopt: convex optimization, linear programming, sparse linear algebra f2c: fortran to c conversion program gfortran: binaries lapack: fortran high-level linear algebra library scipy: latest svn version * r miller, e kirkman, t boothby: substantial bug fixes and improvements to graph theory code. * w stein: upgrade to latest svn version of scipy (much easier to build, etc.) * w stein with b moretti, y qiang, a clemesha, d ramier, t clemans, and t boothby: rewrite of the SAGE notebook; use twisted; more robust security model, etc. * w stein: removed Mark Watkins's EC completely from SAGE. * w stein: upgraded to mercurial-0.9.4 * w stein: included sympy-0.4.2 standard with SAGE (do "import sympy") * g tornaria: improvements to the SAGE base coercion code and free modules * c wuthrich: p-adic BSD bounds Sat Jun 2 22:37:01 2007 ------------------------ 2.6 * m albrecht: greatly improve handling of term orders; commutative algebra bugfixes * m albrecht, w stein, and j kantor: added a "backslash solve operator" like in Octave/Matlab. * t boothby (ref by r bradshaw): major optimization of univariate polynomial evaluation * r bradshaw: massively speed up point enumeration on curves over finite fields; hyperelliptic curve point counting; sqrt improvements; 2-descent over number fields (via Denis Simon's program) * c citro: greatly optimized computing q-exp of eisenstein series E_k and sigma. * n dunfield: sagex section of tutorial improvements * d harvey: bug fix in alternating group g kobold found; speed up delta_qexp * d joyner (refereed by n alexander): improvements to rubik's cube and linear codes * d kohel: fixes for basic Jacobian curve arithmetic. * r miller: elliptic curve congruence graph * b moretti (refereed by n alexecan): fibonaci_sequence and fibonaci_xrange * y qiang: substantial update to dsage. * y qiang and w stein: add gnutls and dependencies and removed openSSL (and pyopenssl) from SAGE. * d simon: new version of his pari 2-descent program * w stein: upgrade ipython to version 0.8.1 * w stein: removed predefines from "from sage.all import *". * w stein: sagex improvements; added a few page to beginning of tutorial * m van den bergh: fix echelon / ZZ bug that t gegenberg reported. * c witty: square-free decomposition over ZZ (wrapping NTL); an ntl optimization Tue May 22 14:29:58 2007 ------------------------ 2.5.3: * m albrecht: misc bugfixes * r bradshaw (and k kedlaya): finished implementing fast all sqrt's mod N. bug fixes involving p-adics * b moretti (and b harris): numerical_approx method for calculus objects * y qiang: fix to expect interface output * w stein (and b barker): fix to save_session / load_session command * w stein (+ all linbox developers): include svn 2007-05-21 version of linbox in SAGE; this has c pernet's *very* fast charpoly / QQ and ZZ algorithm. * w stein: lots and lots of build fixes to get closer to supporting SAGE on solaris. * w stein: notebook -- optimizations to make it feel much snappier (!?) Sun May 20 10:05:31 2007 ------------------------ 2.5.2: * r bradshaw: new SageX package -- many optimizations, improvements, etc. * j cremona: install doc improvement * d harvey and w stein: updated ntl and switched to using an optimized build: building takes longer, but the result is much much better * e kirkman: new sqllite graph database functionality * w stein: misc bug fixes * m vandenbergh (refereed by w stein): greatly improved functionality for multivariate polynomials over number fields; bug fixes * c witty: improvements to algebraic reals (minpoly, etc.) Sat May 19 09:49:49 2007 ------------------------ 2.5.1: * m albrecht: massively speed up multivariate polynomial arithmetic over QQ and GF(p) * d roe (refereed by r bradshaw): massively speed up the p-adics * d harvey: massively speed up computation of matrix of frobenius for hyperelliptic curves. * m abshoff: build improvements * n alexander: bug fixes * n dunfield: added "orbits" to permutation groups * j kantor: bug fixes * y qiang: dsage improvements * w stein: some little bug fixes * j walker: bug fix Tue May 8 20:29:40 2007 ------------------------ 2.5: * new packages: - flintqs - ipython-0.8.0 (w stein) - maxima-5.12.0 (w stein) - python-2.5.1 (y qiang) -- important bug fixes - tachyon3d-0.98beta (w stein) * m abshoff: cputime bugfix for cygwin; *many* build fixes and improvements * m albrecht: major new singular library mode interface for SAGE which provides the world's fastest polynomial arithmetic to SAGE (not yet enabled by default!); *many* build fixes and improvements * r bradshaw: tons of polynomial and power series optimizations; Coleman p-adic integration; Kedlaya for genus > 1 * t clemans: source browser bugfix * p de napoli:fix some bugs in rationals and integers * d deshomme: (refereed by r bradshaw and w stein) very good support for Hida's quad-double field RQDF. * w hart: quadratic sieve update (SAGE's qsieve command): "It is MUCH faster, especially for large factorizations, on account of having implemented the large prime variant. it will factor an 81 digit number in under 30 minutes. It is miles ahead of LiDIA, MAGMA and Pari, etc." Another example: n = next_prime(2^110)*next_prime(2^120) has these times on 32-bit 2Ghz linux: qsieve (107s), PARI (223s), Magma 2.13 (336s). * d harvey: improvements, bug fixes. * d kohel: quaternion algebra improvements * r miller: graph theory bug fixes * k minola: tmp file clean bugfix; misc build fixes. * k minola, d joyner: updated the conway polynomial table * y qiang: important dsage bug fixes; improved unit testing. * w stein and b moretti: major new symbolic calculus functionality * w stein: rewrite of SAGE/maxima interface. * c witty: (refereed by n alexander) a new algebraic reals field (Qbar meet RR!). mpfr improvements Thu Apr 12 23:08:01 2007 ------------------------ 2.4.2: * r bradshaw: very very fast sagex new implementation of graph plotting code. * t boothby: added compression of javascript so notebook loads more quickly. * r miller: optimization to graph automorphism code * k minola and m albrecht: build fixes to linbox and sage_c_lib. * y qiang: transitioned dsage to use sqlite; many minor bugfixes * w stein: wrote a MuPAD interface for SAGE. * w stein: added restore and reset commands to SAGE, to (mostly) reset the state of SAGE and all interfaces very very quickly without having to quit and restart SAGE. * w stein: p-adic L-series (numerous improvements) * c witty (referee by r bradshaw): improvements to floating point <---> rational conversions. Tue Mar 27 09:21:10 2007 ------------------------ 2.4.1: * j mohler: sped up number field arithmetic by a factor of 10 or so. * r bradshaw (with input from k kedlaya and d harvey): tons and tons of stuff, culminating in Coleman integration * d roe: hugely updated p-adics Sun Mar 25 18:13:00 2007 ------------------------ 2.4: * m albrecht: c-library wrapper for linbox that is separate from main sage library. * m albrecht and g bard: implementation of the method of 4 russians, i.e., fast dense echelon form and matrix multiplication over GF(2). * n alexander: misc; docstring-related things; lots of refereeing * b antieau: updates to programming guide * j bober (refereed by n alexander): improvement to random_prime, lcm, and gcd * t boothby and w stein: *syntax highlighting* in the notebook, use div when input cell not in focus; notebook bugfixes; marker in title when notebook is running. * r bradshaw: rationals from a tuple * b granger: updated package: numpy and libpng * m hansen: improvement to how sets work (symmetric difference, etc.) * d harvey: optimized [n] on formal group; misc speedups and bugfixes * d joyner: updated sage constructions guide.; improved piecewise functions * r miller (refereed by r bradshaw): graph plotting improvements, digraphs * r miller: open source 'nauty' -- the first every open source implementation of Brendan McKay's isomorphism algorithm * j mohler (refereed by m albrecht): poly iter, misc.; move ntl wrapper to separate library * c citro, d roe, j balakrishan: misc stuff at arizona winter school * w stein: full text search of docs and source (use search_src and search_doc); best from the notebook. * w stein: first version of new modular abelian varieties package * w stein: extensive improvements to modular forms package * w stein: a new field, the ContinuedFractionField(), or CFF for short. * w stein: lots and lots of misc bugfixes and new doctests * w stein and a clemesha: moin moin wiki now uses twisted by default (for new moin moin installs) Tue Mar 6 12:06:34 2007 ------------------------ 2.3: * inclusion and integration into SAGE of IML -- Integer Matrix Library; this allows for computing nullspaces. E.g., if A is a 300x301 matrix with 32-bit integer entries it finds the kernel (a single vector) in about 1-2 seconds. * David Roe et al.: a completely new implementation of p-adics * W Stein, Clement P, Soroosh Y, and Martin A.: lots of optimization work on linear algebra over QQ and GF(p); new optimized compiled sparse linear algebra over QQ and ZZ. Speedups to multimodular, rational reconstruction, etc. * W. Stein: lots of optimization of modular symbols computation. * Carl Witty: many many improvements to how floating point arithmetic works in SAGE. * David Harvey: improvements to p-adics heights code Tue Feb 27 07:37:47 2007 ------------------------ 2.2: * package upgrades: -- bzip2: upgrade from 1.0.3 to 1.0.4 -- GSL: upgraded from 1.8 to 1.9 -- SageX (Robert Bradshaw): Major update to SageX, including conditional expressions, massively optimized list indexing, etc. -- IPython: upgrade to svn version for 2007-02-26 -- matplotlib: upgrade to 0.90.0 -- moin moin wiki: upgrade to 1.5.7 -- gd: upgrade to 2.0.34 -- libpng: upgrade to 1.2.16 * software / patches: -- carl witty: improvements to mpfi interface; extra pari functions -- robert miller: code related to tachyon3d and plotting graphs. -- bruin: rational enum -- deshommess: n-th root -- hansen: permgroup -- harvey: faster ntl interface -- kantor: numpy/sage improvements -- miller: implement raytraced 3d plotting for networks -- witty: new mpfi code Fri Feb 9 00:57:45 2007 ------------------------ 2.1: * william stein -- elliptic curve p-adic L-functions * didier deshommes -- quad double real field * david harvey -- substantial update to p-adic height code. * david kohel -- misc bugfixes * stein, pernet, albrecht -- inclusion of linbox in SAGE, which vastly improves echelon, minpoly, charpoly in certain cases (over ZZ, QQ, GF(p)). This is turned off on linux/windows in some cases because of bugs that will be worked out later. Sat Feb 3 12:22:53 2007 ------------------------ 2.0.1: * include ipython1 (parallel ipython) Sun Jan 28 ------------------------ 2.0: * released after much polishing and bug fixing. Sat Jan 27 00:08:26 2007 ------------------------ 1.9: * dorian raymer (and alex) -- click the "Documentation" link in the upper right of the notebook for interactive SAGE notebook browsing of the full SAGE documentation! * carl witty -- mpfi updates * robert bradshaw -- fixed subtle bug in sagex; matrix arithmetic. * stein -- notebook: stylistic changes; tons of doctests; sagex'd integer_ring; sparse power and laurent series. * ifti b -- improve programming guide * yi qiang -- dsage improvements Wed Jan 24 16:49:31 2007 ------------------------ 1.8.2: * sagex polynomials * mpfi -- optimized compiled implementation * reference manual -- expanded coverage. Tue Jan 23 19:53:55 2007 ------------------------ 1.8.1: * many small improvements to distributed SAGE: it's now braindead to setup distributed SAGE and try it out! Just type dsage? to get going. * More graph theory (labels, tutorial) * update to real matrices. * nearly 10 misc bug fixes * optimization of sage startup (should be > twice as fast as in 1.8) Mon Jan 22 14:09:24 2007 ------------------------ 1.8: * Added sqlite. Mon Jan 22 13:20:22 2007 ------------------------ 1.8: * New sage-cleaner: Greatly improved cleanup of tmp and killing of orphaned processes. * lots of updates to David Cowls crypto package. Wed Jan 17 18:55:33 2007 ------------------------ 1.8: * sagex-- Robert Bradshaw added support for list comprehension and +=, -=, etc. to SageX. Mon Jan 15 14:58:42 2007 ------------------------ 1.7: * moinmoin -- updated to ver 1.5.6; add jsmath support by default; now is a standard component of sAGE Sun Jan 14 02:51:45 2007 ------------------------ 1.7: * openssl * pyopenssl * palp -- lattice and reflexive polytopes. Sat Jan 13 13:12:47 2007 ------------------------ 1.7: * Yi Qiang and Alex Clemesha: Added twistedweb2 Fri Jan 12 15:08:09 2007 ------------------------ 1.7: * fix lots of little bugs listed in trac * optional package: upgraded trac package (which includes sqllite and clearsilver); for a long time this package couldn't build on python 2.5, i.e., sage >= 1.4. Thu Jan 11 22:53:00 2007 ------------------------ 1.6: * Twisted-2.5.0 * Stein: several bugfixes * Moretti: first version of calculus module (not official yet -- try with from sage.calculus import *) * Kantor: ode solver improvements; dense matrices over real floats * Stein and Boothby: Misc notebook and tachyon improvements, e.g., robots.txt; huge output link * Andrey Novoseltsev: Fixed some bugs in Sequences that * Get SAGE to build on cygwin * upgrade ecm * Joel Mohler, William Stein: faster arbitrary precision complex numbers Fri Jan 5 11:01:31 2007 ------------------------ 1.5.3 * upgraded to maxima-5.11.0 * upgraded to numpy-1.0.1 * upgraded to mercurial-0.9.3 * partially ported SAGE to Cygwin (!) -- all but ecm build automatically now: what remains: maxima interface issues Sun Dec 31 22:21:28 2006 ------------------------ 1.5.2: * added a sudoku command Fri Dec 1 12:10:19 2006 ------------------------ 1.5.0: * MPFR 2.2.1 Sat Nov 25 16:54:05 2006 ------------------------ 1.5.0: * NUMPY -- included Numpy 1.0 (removed Numeric) * WEAVE -- included scipy's weave Sat Nov 25 10:41:56 2006 ------------------------ 1.5.0: * GAP 4.4.9. * Notebook facelift and robustness improvements * version 0.87.7 of matplotlib. * T. Boothby: Include libgd (fast graphics C library) and a Python interface (gdmodule) * Kate Minola's readline bugfix -- so SAGE now supports Itanium. * Jason Martin's GMP-for-Mac-core2 patch: http://www.math.jmu.edu/~martin/ Fri Nov 24 16:22:35 2006 ------------------------ 1.5.0: * included Martin A's improved signal handling code. * notebook improvements: - faster switching between worksheets (doesn't pop up new tab or start new SAGE session) - Got rid of boxes around everything - When cursor enters new box it is at *top* instead of bottom - Worksheets are now referred to in the url using their name rather than their number, just like in a wiki; go to an unused url to make a new worksheet. Wed Nov 8 01:02:51 2006 ------------------------ 1.5.0: * added a great new subprocess monitor features, so now even if you kill -9 the master, then subprocesses are all properly killed off. Awesome! Tue Nov 7 23:35:17 2006 ------------------------ 1.5.0: * GMP ecm-6.1.1 * clisp-2.41 * readline-5.2 Fri Nov 3 09:28:15 2006 ------------------------ 1.5.0: * introduced variant of Pyrex called SageX * tons of matrix restructuring. Fri Oct 27 23:11:20 2006 ------------------------ 1.4.2: * truncate real number printing slightly to avoid confusion Fri Oct 27 22:48:36 2006 ------------------------ 1.4.2: * Removed R. = ... notation. Now, e.g., QQ['x,y'] automatically sets x, y. Fri Oct 27 22:45:06 2006 ------------------------ 1.4.2: * Added raw literals, 9392034r and 90283940R are raw integer literals, i.e., not preparsed; similar for floats Thu Oct 26 15:33:12 2006 ------------------------ 1.4.2: * Upgrade to gfan-0.2.2 Tue Oct 24 23:47:36 2006 ------------------------ 1.4.2: * Added dependency resolution for Pyrex code to "sage -br". Sun Oct 22 11:27:29 2006 ------------------------ 1.4.2: * SAGE now has extensive graph theory; added networkx as a standard component Wed Oct 18 08:01:59 2006 ------------------------ 1.4.1: * instead of the SAGE library build being HUGE, it now takes about 40MB. * building SAGE from scratch uses < 500MB during the whole process * upgrading Python package forces upgrade of all packages that rely on Python * revamped programming guide * greatly reduced overheading in starting doctests (esp on OS X) * upgraded Ipython * upgraded Macaulay2 * matlab interface * axiom interface * upgraded to clisp 2.40 * upgraded to maxima 5.10 * upgraded to pari 2.3.1 * many trac-listed bug fixes and improvements * hg_sage, etc. Oct 1-5 ------------------------ 1.4: * Create hg_sage, hg_doc, hg_scripts, etc., for working with HG repositories easily from within SAGE. * Upgraded to gap-4.4.8. * IPython new 20061005 svn version (works with Python 2.5) * SAGE code: put the .pyx files where they belong (not in ext) VERY IMPORTANT NOTE: This is a *big* change to the internal structure of the library. Unfortunately it breaks unpickling many things that may have been saved. This had to be done; I couldn't organize things correctly at the beginning because of defficiencies in Pyrex (that I fixed). There will be one more break when I switch to the new matrix class hierarchy that we recently wrote. In general, since the thrust for SAGE 2.0 is pyrexing all types, pickling data to save it long-term is not stable until SAGE 2.0. I hate this, but don't see an easy way around it. * mpfr -- upgraded to latest patch set. * pyrex -- new patch that adds support for __index__ method Also, now any type (e.g., Integer now) with an __index__ method can be used to index into lists. * W.Stein -- Python 2.5 (!) (painful!) * matplotlib 0.86.7 * New version of mwrank 08-23-06 Thu Sep 28 21:40:49 2006 ------------------------ 1.4: * W. Stein -- Complex double field (CDF) * D. Harvey -- improvements to elliptic curve arithmetic * T. Boothby -- Implemented Real double field (RDF) * Make PARI library always build the shared version mode, so Pyrex modules can share a single running instance of PARI. Thu Sep 21 14:16:30 2006 ------------------------ 1.3.7.3: * switched to mercurial for all source code tracking * added support for multiple branches of the SAGE library. Use 'sage -br branch_name' (or 'sage -b branch_name') to switch to using a given branch. Wed Sep 6 21:23:30 2006 ------------------------ 1.3.7: * added to the core SAGE distribution: gsl - gnu scientific library twisted -- web networking framework * added dozens of patches from David Harvey, Martin Albrecht, David Joyner, etc., etc.! E.g., Z/nZ is in Pyrex; computation of p-adic E_2 without MAGMA. Tue Sep 5 12:24:32 2006 ------------------------ * upgraded numarray optional package to 1.5.2 Fri Jul 28 11:33:31 2006 ------------------------ 1.3.6: * Added Givaro finite field package (not yet used by SAGE directly) * stein: Fixed many many bugs. * stein: Upgrade to gmp-4.2.1 (and got assembler support for GMP working on OSX Intel! -- quite tricky). * stein: moinmoin wiki interface for SAGE * david harvey -- added bernoulli_mod_p * tom boothby -- lots of improvements to notebook * martin albrecht -- some givaro wrapper code; restructuring matrix code,etc. Thu Jul 20 12:26:56 2006 ------------------------ 1.3.6 * Stein/Boothby/Kantor -- added tachyon raytracer to SAGE. Wed Jul 19 10:59:53 2006 ------------------------ 1.3.6 * Stein/Hanke -- added mrange and xmrange multirange iterators. Tue Jul 18 22:55:56 2006 ------------------------ 1.3.6 * upgrade to matplotlib-0.87.4 Thu Jul 13 23:05:55 2006 ------------------------ 1.3.5.2 * John Jones -- added bugfix for build process. * many many tiny bugfixes founded when preparing my talk. * Josh Kantor -- plot3dsoya package Tue Jul 4 19:03:36 2006 ------------------------ 1.3.5.1 * added jsMath -- javascript Math rendering for the Notebook. Sun Jul 2 23:41:25 2006 ------------------------ 1.3.5: * Change range back -- too many problems, e.g., with efficiency, and one can always use "srange". * maxima-5.9.3 * Albrecht -- Matrix class: moved to Pyrex * magma interface -- misc improvements * notebook -- misc improvements * plotting -- improvements Tue Jun 27 00:46:13 2006 ------------------------ 1.3.4.2: * modular symbols bugfix * notebook -- major robustness improvements * replaced range and srange in sage by SAGE variants (that return, e.g., Integers) -- this is slower than the Python variants, of course, but much more sensible. Use __builtin__.range for Python's range, which returns int. * new documentation from david joyner. Sun Jun 25 09:31:09 2006 ------------------------ 1.3.4: * martin albrecht: patched pyrex to properly deal with modules in different directories * notebook -- lots of work by Stein and Boothby * groups -- improvements by D. Joyner * misc bugfixes -- inspired by emails from Jon Hanke * pari -- builds without requiring X11 (Blair Kelly) Mon Jun 12 02:42:53 2006 ------------------------ 1.3.3.3: * used profiler to reduce startup time * rewrote "sage ... " so it directly runs via python (so faster), and gives sensible error messages when files don't exist or options are bad. Mon Jun 12 00:31:22 2006 ------------------------ 1.3.3.3: * new version of matplotlib (0.83) Sun Jun 11 22:33:23 2006 ------------------------ 1.3.3.3: * reorganized ipythonrc and matplotlibrc to be in DOT_SAGE and have sensible defaults, which gets around a major nuisance... Wed Jun 7 17:27:37 2006 ------------------------ 1.3.3.1: * added GMP Elliptic Curve Factorization to the core SAGE distro Robert Bradshaw also made the SAGE/GMP-ECM interface much more user friendly. 1.3.3: * new notebook interface (alpha test version!) Mon May 22 13:15:37 2006 ------------------------ 1.3.2: * PARI 2.3.0 stable! Mon May 22 09:08:14 2006 ------------------------ 1.3.2 * Tim Dokchitser: update to ComputeL. Sun May 21 12:04:57 2006 ------------------------ 1.3.2 * documented dirichlet.py; fixed many issues with dirichlet characters Sat May 20 14:03:36 2006 ------------------------ 1.3.2 * added autoload of $HOME/.sage/init.sage or SAGE_STARTUP_FILE User's need autoload of some customization file. Now if $HOME/.sage/init.sage exists, it will be autoloaded. Alternatively, if the environment variable SAGE_STARTUP_FILE is set then that file will be loaded. The SAGE startup file can contain load and attach commands as well, and is fully preparsed. Removed the obscure 2-letter shortcuts from the SAGE shell, e.g., "EC" for "EllipticCurve". (These should go in user startup files). Wed May 17 21:40:23 2006 ------------------------ 1.3.2: * pari 2.2.13 (lots of library code changes needed to make this work) * Martin Albrecht: new code for pari and singular * misc bug fixes * maxima -- added maxima.function Tue May 16 23:35:41 2006 ------------------------ 1.3.1: * Steven Sivek -- fractional ideals * Tom Boothby, Alex Clemesha, and W. Stein -- some improvements to http_server1 (e.g., embedded graphics--use plot(...).save('any_filename.png')) * Steven Sivek -- relative number fields code. * official colinux distro of SAGE (a "binary" for windows) * David Joyner -- tons more work on groups * W. Stein -- SAGE libdist "library distribution" (needs testing!); use "sage -ldist " to make a library distribution for install into existing Python install. * A. Gaer and W. Stein -- install_scripts() command in SAGE that makes scrips that start gap, singular, etc., Also, "sage -gap", "sage -singular", etc., start gap, singular, etc. * A. Klemm and W. Stein -- basic foundation for mathml output of objects Mon May 8 08:58:56 2006 ------------------------ 1.3.0: * J. Cremona: new mwrank which contains the patches necessary for gcc 4, and fixes problem with pari factoring Sun May 7 22:09:08 2006 ------------------------ 1.3.0: * D. Joyner: updated and re-organized groups code (WARNING: much in here is half-way done, so dangerous!) * M. Watkins: new version of sympow; ver 1.018 * M. Albrecht: ** large patch to singular's "factory" ** include pyrexembed standard with SAGE. ** new CF -- pyrex interface between SAGE and factory (note: you must install the new patched version of singular before the cf code will build correctly; if not automatic, type sage -f singular-3-0-1-2-2006-05-07.spkg) * M. Albrecht: Added pyrexembed to base SAGE install * W. Stein: improved darcs/sage integration: (1) now "sage -upgrade" uses darcs to upgrade your sources and docs if you have darcs repos for those. (2) type darcs_src? and darcs_doc? to see how to very easily use darcs directly from within SAGE; also, using these *completely automates* setting up your own local repository. * J. Hanke & W. Stein: fixed bug in fraction field element constructor. * W. Stein: if G is a plot, line, circle, etc., and you type sage: G ... then the log_html() will show G visually. Click to get big version. * W. Stein and A. Clemesha: Wrote an html web server to include with SAGE; to run it just type server_http1() at the SAGE prompt. This could be greatly improved. Control-C works by pressing control-c in the SAGE window. * W. Stein and A. Clemesha: Added server_http1 (a web server for SAGE; hopefully there will be many and we'll see which is best.) * didier deshommes: some patches and improvements to log_* Thu May 4 22:37:23 2006 ------------------------ 1.2.5: * Alex Clemesha: major update to plotting functionality. * W. Stein: added ecm-6.0.1.spkg optional package (for GMP-ECM), and added an ECM class; type "ECM?" for help. Tue May 2 18:16:52 2006 ------------------------ 1.2.5: * W. Stein: doctests can now have for loops, e.g., """ sage: for i in range(3): ... print i^2 ... 0 1 4 """ Tue May 2 03:04:11 2006 ------------------------ 1.2.4: * David Joyner: piecewise functions * Joe Wetherell: preparser R. = PolynomialRing(QQ,2^2) now works (bug due to W. Stein; fix due to Joe) * Martin Albrecht: made f.monomials() vastly more efficient * W. Stein: ZZ(5).is_square_free(); fix bug in save_session; * W. Stein: fixed major problem in mwrank interface; now ctrl-c, alarm, etc., will work right. * W. Stein: wrote a minimal "polymake" interface Tue Apr 25 16:52:39 2006 ------------------------ 1.2.4: * small fixes so clisp, gfan, and sympow build on Cygwin/Windows. Fri Apr 21 08:27:55 2006 ------------------------ 1.2.4: * upgrade to pyrex 0.9.4.1 (trivial bugfix release) Thu Apr 20 20:26:47 2006 ------------------------ 1.2.3: * Alex Clemesha: Plotting -- axis/labels are now much nicer * modular symbols bugfixes and improvements * Cygwin -- modified build process for gmp 4.2 and ntl so works. * gfan -- fix path problem that prevented gfan building * groebner_fan() function for multivariate-ideals; provides very nice access to most of the functionality of Groebner Fan, which is now included by default with SAGE. * Changed so that multi-variate polynomials rings get numbered variables called x0,x1,x2,x3 (or whatever) instead of x_0,x_1,x_2,x_3. This is because (1) there were some problems with _ variables and Singular, and (2) in ASCII the underscores do not look good. Note that latex typesetting still correctly includes _'s. This change required changing hundreds of examples all over the source tree. * Numerous little improvements to multivariate polynomials, etc., while making the Groebner Fan interface. Sun Apr 16 23:03:56 2006 ------------------------ 1.2.2: * Upgraded to official Pyrex 0.9.4, which has many improvements. In the end, this meant numerous small changes to .pyx files. (Note -- overflow checking when coercing from sage/python ints to C ints disappeared in this new version of Pyrex, and I'm not sure I've put enough tests in yet to make up for it. I intend to.) * Added a number of patches, e.g., Joe Wetherell's: R. = PolynomialRing(QQ,2) * tons of examples of polygon and line plotting. * switched to factorials. Thu Apr 13 16:28:42 2006 ------------------------ 1.2.1: * Added non-gui matplotlib to SAGE core (and dependencies: freetype and libpng); this will support SAGE's in-development mathematica-like graphing functionality. * Additions to the install guide based on mailing list discussions Fri Apr 7 13:13:48 2006 ------------------------ 1.2.0: * Upgraded to Gap-4.4.7 Fri Apr 7 00:17:34 2006 ------------------------ 1.2.0: * Upgraded to Python-2.4.3 Thu Apr 6 14:42:05 2006 ------------------------ 1.2.0: * Added support for compiling SAGE from source on the new Intel-based Macs. This required changes to clisp-2.38.spkg, gmp-4.2.spkg, pari-2.2.12.beta.spkg, and singular-3-0-1-2.spkg, among other things. 1.2.0: * Upgraded optional matplotlib to version 0.87.2. (matplotlib will be included standard very soon) Fri Mar 31 2006 ------------------------ 1.2.0: * GMP 4.2 bug fixes fix problems with huge integers crashing SAGE; now can convert huge integers to base 10 strings, etc. Mon Mar 27 20:13:57 2006 ------------------------ 1.2.0: * added gmp-4.2 to standard SAGE Sat Mar 18 11:43:23 2006 ------------------------ 1.2.0: * added gfan to standard distribution of SAGE March 2006: 1.1.1-2: * Martin Albrecht -- added support to use poly rings of extensions of finite fields via singular; etc. * Didier Deshommes -- added ntl random numbers: ntl.ZZ_random and ntl.ZZ_random_bits * Gonzalo Tornaria -- wrote a "darcs with SAGE" howto * W. Stein -- improvement to prime enumeration using PARI * W. Stein -- fixed mpfr rounding mode creation bug (and changes lots of examples to reflect this) * W. Stein -- change real number behavior some * Gonzalo Tornaria -- fixed randomness in ZZ hash; also some linalg, smith forms for nonsquare matrices, ZZ.quotient( ... ) fix. Thu Mar 9 04:15:34 2006 ------------------------ 1.1.0: * Tentatively adopted darcs as revision control system. * W. Stein -- add Tim Dokchitser's L-functions package. Type "Dokchitser?" for details and examples. Also E.Lseries_dokchitser. If you're into computing L-series this package is *amazing*! * improvements to magma/gp/pari interfaces * real number precision now determined by digits of input, like in mathematica (and unlike in magma,pari,etc., etc.) this is what people most preferred on the mailing lists. Tue Mar 7 03:54:48 2006 ------------------------ 1.0.9: * Gonzalo Tornaria -- large numbers of patches to improve performance, especially PARI <--> SAGE number conversions, etc. Mon Mar 6 20:33:19 2006 ------------------------ 1.0.8: * Stein: maple; added tab completion, e.g., maple.[tab], and help, e.g, maple.sin? Mon Mar 6 01:51:10 2006 ------------------------ 1.0.8: * Mike Rubinstein's Lcalc is now part of SAGE. Type "lcalc?" for more details. This also adds a bunch of functions for elliptic curves; type "L.Lseries_[tab]" to see. * Kevin Buzzard's program for computing conjectural slopes of Hecke polynomials; Type buzzard_tpslopes? for details. * examples and improvement of height, sqrt behavior for QQ. * added Qing Liu's genus2reduction C program; type "genus2reduction?" from the SAGE prompt for details. * numerous small bugfixes Sun Mar 5 11:55:25 2006 ------------------------ 1.0.8: * bugfixes and optimization for modular symbols * put much sparse linear algebra over Q into Pyrex (compiled) * Jaap Spies: added rising_factorial and falling_factorial. * optimized permanents of matrices over Q Fri Mar 3 03:11:19 2006 ------------------------ 1.0.8: * improvements to ctrl-c handling (added _sig_check macro) Thu Mar 2 23:10:18 2006 ------------------------ 1.0.7: * Gonzalo Tornaria: vastly improved hashing and python<-->SAGE integer conversions. Thu Mar 2 03:06:05 2006 ------------------------ 1.0.7: * Gonzalo Tornaria: use Python's int/long hash for SAGE integers and rationals. Thu Mar 2 02:56:06 2006 ------------------------ 1.0.7: * added tab completion and help for gap and gp interfaces, e.g., gap.[tab], gp.[tab], gp.matkerint?. Wed Mar 1 22:46:11 2006 ------------------------ 1.0.7 * Stein: fixed bug in gap interface (data/extcode/gap/sage.g was trying to write to /tmp/gapsage.log, which froze gap interface on some systems). Wed Mar 1 18:46:10 2006 ------------------------ 1.0.7 * Stein: upgraded to PARI 2.2.12 (this entailed a large number of changes to the outputs of doctests that in any way use pari reals; also one line of the the mwrank source had to be changed). Wed Mar 1 06:40:50 2006 ------------------------ 1.0.7 * Stein: expect -- get rid of infinite loop on startup in some cases when client system is missing. Tue Feb 28 01:12:11 2006 ------------------------ 1.0.7: * Stein: For MAGMA interface: added extensive tab completion and interactive IPython documentation support -- type "magma.[tab]" for list of all Magma intrinsics (takes a while the first time, then instant); type "magma.function?" for help on that function. If x=magma(...) is a MagmaElement, type x.[tab] for the functions that can take x as first argument, and x.FunctionName? for help on a given function. Implementing this is a template for how to do this for other systems, e.g., PARI, Macaulay, Singular, etc. Volunteers? Sun Feb 26 20:14:16 2006 ------------------------ 1.0.7 * Jaap Spies -- found that PARI "gen" type name is confusing, since it clashes with X.0 "is" gen(X). So I changed it to pari_gen. This required changing a lot of other code that used "gen" all over. Fri Feb 24 23:42:29 2006 ------------------------ 1.0.6 * Stein/Tornaria: vast speedups of integer and rational hashing * improved robustness of maxima interface * change ordering of polynomials; now compares degrees then coefficient of highest degree term then down (since higher degree terms are "more significant"). * refactoring/restructing of constants and adding template for functions * doctest don't leave tons of directories in .sage/tmp; also added "sage -cleantmp", which deletes all directories in .sage/tmp not actively in use on current machine. (NOTE: we do *not* do this automatically since if your home directory were NSF exported to a cluster, then starting SAGE on and node would kill the .sage/tmp for all processors on other nodes). Mon Feb 20 17:34:55 2006 ------------------------ 1.0.5 * unified and improved coercion of objects to interface; now just defined "def _xxx_init_(self):" for system xxx to return a string repn of that object that creates it in system xxx. Caching is done automatically, unless otherwise requested. 1.0.5 * Alex Clemesha: new version of misc/constants.py; improved texing, added twinprime, merten, and brun's constants. Sun Feb 19 16:40:23 2006 ------------------------ 1.0.5 * fixed bug when attaching/loading .py files from .sage files. * Joe Weening -- new GMP spkg-install script. Fri Feb 17 14:43:20 2006 ------------------------ 1.0.5 * added a bunch of new code by Gonzalo Tornaria (mostly improvements to PARI c library functionality) * added matrix permanent computation for possibly non-square matrices by Jaap Spies Thu Feb 16 00:50:33 2006 ------------------------ 1.0.4 * removed autoconf prereq * documented sets/set.py and greatly improved code (examples for every function, etc.) Wed Feb 15 22:14:12 2006 ------------------------ 1.0.4 * fixed bug that Justin Walker found in doctest where it wouldn't work when giving multiple input files in different directories * added load and attach support for .py file (in addition to .sage and .spyx files). * Naqi Jaffery: fixed problem in sparse linear algebra constructor Mon Feb 13 13:06:19 2006 ------------------------ 1.0.4 * added maxima online help interface ('? command'), maxima.help(...), maxima.example(...), maxima.demo(...) Mon Feb 13 07:42:13 2006 ------------------------ 1.0.3 * some small modification to logging (control-d known to mess up sequence) and latex'ing * Kiran Kedlaya -- rings, ideals, etc. that use Macaulay2 (create using MPolynomialRing(..., macaulay2=True); can be used to compute Groebner basis over Z). * Martin Albrecht (sage.libs.ntl update): - ntl.GF2X() and all dependent types (GF2E,GF2E_modulus,mat_GF2E) now additionally accept: - Polynomials__mod_p now, int, Integers - added mat_GF2E.transpose() - ntl.mat_GF2E(,1) may be used as a row vector now, e.g.: m = ntl.mat_GF2E(10,1) m[1]=ntl.GF2E("0x1") no tuple required - BUGFIX: check for modulus when constructing a mat_GF2E Sun Feb 12 18:08:46 2006 ------------------------ 1.0.3 * added a very primitive "search_sage" command for searching the SAGE source code from within SAGE. Sun Feb 12 17:41:32 2006 ------------------------ 1.0.3 * added "?" and "?" for searching of help when using one of the interfaces (via %gap, etc.). Sun Feb 12 00:49:45 2006 ------------------------ 1.0.2 * fixed bug found by Justin Walker in loading .spyx files not in the current directory. * improved reloading of attached .spyx files (no blankline needed) * new "iload" interactive loading feature: iload "filename.sage" loads it line by line (almost?) exactly as if you typed it in. Sat Feb 11 23:58:26 2006 ------------------------ 1.0.2 * macaulay2 interface bugfixes * created a new latex and html session log facility. type "log_dvi?" and "log_html?" for more details. (using this led to many improvements in the latexing methods for objects all over sage). Fri Feb 10 03:36:19 2006 ------------------------ 1.0.1 * sage-mindist; first "minimal" sage tarball for install into an existing Python environment. Fri Feb 10 03:35:18 2006 ------------------------ 1.0.1 * fixed -5*P for P on elliptic curve bug. 1.0.1 * improvements to mathematica interface; e.g., good saving and loading of objects; support for latex output. 1.0.1 * maple latex output 1.0.1 * added ability to pull data from SAGE into other command-line sessions (1) type %magma, %maple, %singular, %gp, or whatever (2) E.g., if you're in gp, type gp(sage expr) to evaluate the sage expr and bring it into your gp session: sage: E = EllipticCurve([1,2,3,4/5,1/191]) sage: %gp gp: E E gp: gp(E) [1, 2, 3, 4/5, 1/191, 9, 23/5, 1723/191, ... gp: %magma magma: E:=magma(E) 1.0.1 * elliptic curve ranks now computed with mwrank shell program by default. Thu Feb 9 11:10:47 2006 ------------------------ 1.0.1 * Kiran Kedlaya and David Roe: Interface to Macaulay2 (use via macaulay2('stuff')). Wed Feb 8 00:19:43 2006 ------------------------ 1.0.1 * Steve Linton: new gap interface * Stein & Fernando Perez: magic interaction modes with interfaces (via %blah) * David Kohel: lots of new schemes code (e.g., jacobian arith) * Steven Sivek: new sloane's tables of integer sequences code * Joe Wetherell and Gonzalo Tornaria: SAGE_ROOT/examples/latex_embed Thu Feb 2 22:32:57 2006 ------------------------ 0.10.13: * improvements to base_ring behavior for rings and schemes (all suggested by David Kohel) * improvement to sqrt suggested by David Joyner * added Gregg Musiker's Maple tutorial (to reference manual) * implemented "sage -t filename.sage". * environment fix to sage-doctest (Wilson Cheung) Tue Jan 31 19:11:13 2006 ------------------------ 0.10.13: added use of killpg in interfaces/expect.py to much much more robustly kill child processes (this was a major problem until now) Mon Jan 30 02:43:09 2006 ------------------------ 0.10.12: much testing and documentation improvements; added "make test"; tests should not take into account 64-bit computers and pass on them too. Sat Jan 28 04:50:05 2006 ------------------------ 0.10.11: minor fixes to watkins-ec to work with newest cygwin/windows. Sat Jan 28 03:02:00 2006 ------------------------ 0.10.11 Eliminated gnuplot from inclusion with SAGE (bad license), and libpng. Upgraded clisp Upgraded IPython Fri Jan 27 01:14:48 2006 ------------------------ 0.10.11 I've added a new option for sage0.10.11 to make it easier to hunt down something you remember from the SAGE source code. Just type "sage -grep " to find all occurrences of in the SAGE source code. Thu Jan 26 20:49:24 2006 ------------------------ 0.10.10 -- totally rewrote complex numbers and added a wide range of transcendental member functions for complex numbers (via PARI, but with care taken to get precision right). Also rewrote the functions/transcendental.py to use this. Thu Jan 26 13:04:14 2006 ------------------------ 0.10.10 -- fixed problem in real number coercion precision. Wed Jan 25 14:51:26 2006 ------------------------ 0.10.9 -- schemes: affine patches, projective_embedding for affine space. Wed Jan 25 14:27:13 2006 ------------------------ 0.10.8 -- schemes -- much more flexible (Projective/Affine)Space constructors. Wed Jan 25 14:26:25 2006 ------------------------ 0.10.8 -- PARI; fixed missing "make install-data", so can compute Galois groups for degree > 7. Wed Jan 25 02:02:00 2006 ------------------------ 0.10.7 -- adding ability to run SAGE/Mathematica/etc. via ssh and a remote server, just because it would be interesting to see it work. Uses files to move arbitrarily complicated SAGE data back and forth to remote sessions on other computers. Tue Jan 24 23:27:23 2006 ------------------------ 0.10.7 -- naming cleanup -- all pyrex files that started with _ (underscore) now don't. changing this meant changes all over the system, etc. better now than later. Tue Jan 24 21:19:32 2006 ------------------------ 0.10.7 -- Martin Albrecht: ntl library interface update. Tue Jan 24 16:08:37 2006 ------------------------ 0.10.6 -- made maple interface more robust. Tue Jan 24 15:12:39 2006 ------------------------ 0.10.6 - i/o speedup and robustness improvement for following interfaces: magma, Gap, maxima, kash, mathematica, maple Tue Jan 24 15:04:38 2006 ------------------------ 0.10.6 - gap (changed memory command line option for startup) to depend on 64-bit/32-bit Tue Jan 24 03:05:32 2006 ------------------------ 0.10.6 -- file i/o tricks to vastly increase efficiency of inputing large strings into GP and Singular under SAGE. (GAP might also be possible, in some important cases, etc.) Mon Jan 23 23:49:45 2006 ------------------------ 0.10.6 -- fixed problem where interfaces would continue to run even after SAGE terminated (esp, maple, kash, maxima). Now this isn't a problem at all, since they're all sent their respective "quit" commands on exit. Mon Jan 23 20:48:18 2006 ------------------------ 0.10.6 -- fixed problem in gap_gpl_packages-4.4.6_2.spkg install script; it wasn't actually loading the packages after installing them, since the lines were gap() instead of gap.eval() Mon Jan 23 12:32:18 2006 ------------------------ 0.10.5 -- martin albrecht's improvements to finite field coercion Sun Jan 22 20:30:18 2006 ------------------------ 0.10.4 -- added Joyner's examples: crt_basis, free_abelian_monoid_element, free_module_element, integer_ring_mod, etc., etc. -- added unit part to factorizations. -- many small bug fixes related to factorization, square free parts. -- added R[['t']] notation for constructing power series rings. Sun Jan 22 20:24:25 2006 ------------------------ 0.10.4 -- added GL -- general linear group with a very little amount of functionality. Sun Jan 22 19:37:20 2006 ------------------------ 0.10.4 -- created a GapRep class in interfaces/gap.py to make it easy to make objects that *robustly* wrap objects whose underlying implementation is in Gap (e.g., permutation groups, linear groups, etc.). Sun Jan 22 18:24:17 2006 ------------------------ 0.10.4 -- * improvement to Sequence type so default universe is chosen from whole collection of elements instead of just first. Sat Jan 21 12:25:14 2006 ------------------------ 0.10.4 -- * new ipython: version 0.7 * new zodb: version 3.6 Fri Jan 20 23:02:52 2006 ------------------------ 0.10.3 -- * added a *bunch* to the reference manual * added to constructions and the tutorial, and fixed problems (esp., regarding singular interface). Fri Jan 20 15:32:17 2006 ------------------------ 0.10.3 -- * doctest: fixed line numbers in doctest errors * singular 3-0-1-2 Fri Jan 20 11:45:46 2006 ------------------------ 0.10.3 -- * more on schemes * replaced all _add, _sub, _mul, _div's by _add_, _sub_, _mul_, and _div_, which is more systematic. Wed Jan 18 22:47:33 2006 ------------------------ 0.10.3 -- * add first version of new facility for *very* easy use of compile-able code for users. Just make a .spyx file and load or attach it as usual. It's compiled and will execute really quickly if you know how to use Pyrex (e.g., cdef ints, etc.). See examples/pyrex. Wed Jan 18 03:31:20 2006 ------------------------ 0.10.3 -- * new shorthand notation for constructing polynomial rings: sage: Q['x,y,w'] Polynomial Ring in x, y, w over Rational Field Mon Jan 16 17:23:53 2006 ------------------------ 0.10.3 -- * Martin Albrecht : - NTL GF(2^e) linear algebra interface - more functions for multivariate polynomials * David Joyner -- update to maxima ODE solver * Added gnuplot plot3d_parametric with examples. Sun Jan 15 17:05:44 2006 ------------------------ 0.10.3 -- * added Sequence class. Type help(Sequence) for more information. -- * added support for homomorphisms of (some) rings. If R is a ring, type R.homomorphism? for more info. -- * new mathematical constants classes with symbolic manipulation: pi, e, etc. Type help(sage.misc.constants) for more details. Thu Jan 12 13:00:41 2006 ------------------------ 0.10.1 -- * added mwrank (interpreter) interface (not C++ library). Thu Jan 12 02:45:50 2006 ------------------------ 0.10.0 -- * modified moved a number of optional packages into standard: - maxima, numeric (upgrade), clisp (new), gnuplot (new), gnuplotpy (new) * upgraded singular build scripts a little Wed Jan 11 01:03:14 2006 ------------------------ 0.9.34 -- basic constants (e and pi) -- coercion to interfaces takes an argument (e.g., _gap_, _singular_ functions) -- re-organized website Tue Jan 10 02:56:27 2006 ------------------------ 0.9.33 -- polynomial factorization over general finite fields (via pari); also slightly changed representation of elements of general finite fields for robustness. Mon Jan 9 22:55:04 2006 ------------------------ 0.9.32 -- *finally* got object saving and loading working wonderfully!! Added a self.db method for sage objects that saves objects to SAGE_ROOT/db. Use db_load to reload them. Added a handy save_session command for saving all named variables defined in the current session to a .sobj file dictionary. You could save multiple sessions and bring in all the variables defined from all sessions into one session (you get a bunch of dictionaries, one for each session). cool. Sun Jan 8 03:24:14 2006 ------------------------ 0.9.31 -- more improvements of object persistence (BUT -- object persistence is *not* done and is not yet supported) -- rewrite of reference manual style; hopefully clearer -- new optional package "extra_docs-2006-01" with documentation for many of the systems that are accessible from SAGE and libraries included with SAGE. Sat Jan 7 02:55:18 2006 ------------------------ 0.9.30 -- object persistence: save, dump, etc. methods; added a huge amount of these all over SAGE; required modifying almost every single file in SAGE. Also added lots of __cmp__ methods. Fri Jan 6 08:14:37 2006 ------------------------ 0.9.29 -- same as 0.9.28, to avoid (or create?) potential confusion Fri Jan 6 07:13:19 2006 ------------------------ 0.9.28: * Object Persistence started: added save (=dump) and dumps methods to all SAGE objects, and support for more of them. Also, load method to recover objects. 0.9.28: * computation of galois groups of number fields and polynomials using both PARI and KASH. Thu Jan 5 04:53:02 2006 ------------------------ 0.9.28: * new versions of code from David Kohel: - monoids (whole directory): A bit more documentation - algebras (whole directory): A bit more documentation - rings.arith.py: hilbert_symbols moved from algebras.quaternion_algebra to rings.arith - rings.padics: New directory of p-adic ring and field functionality (incomplete) - schemes -- total rewrite !! WARNING !! -- schemes (except for elliptic curves, are seriously broken right now) Wed Jan 4 03:18:46 2006 ------------------------ 0.9.28: * changes and improvements to groups and maxima interface. * improved the programming/developers guide Tue Jan 3 12:49:42 2006 ------------------------ 0.9.27: * misc bug fixes and robustness improvements to interfaces. Tue Jan 3 03:31:35 2006 ------------------------ 0.9.27: * upgraded to pexpect version 2.0 (from 0.999); this entailed minor changes to interfaces/expect.py Mon Jan 2 23:16:30 2006 ------------------------ 0.9.27: * added latex'ing for maxima object (using latex(f) of f._latex_(), and preview with view(f)). Mon Jan 2 09:21:59 2006 ------------------------ 0.9.27: * made maxima optional package (requires user has a lisp interpreter) * removed ascii art from maxima interface * made maxima interface more robust Sat Dec 31 16:56:39 2005 ------------------------ 0.9.27: * sage (shell) eval command now calls _eval_(self) method before calling builtin eval command. Thus, e.g., eval(s) makes sense for expect interface objects. Sat Dec 31 12:24:12 2005 ------------------------ 0.9.27: * upgraded to ipython-0.7.0.rc4 Fri Dec 23 11:15:03 2005 ------------------------ 0.9.27: * fixed bug Joyner found in comparison of laurent and power series (not symmetric) Thu Dec 22 20:30:13 2005 ------------------------ 0.9.26: * added SloaneEncyclopedia object, which is a local on-disk version of Sloane's encyclopedia. AUTHOR: Steven Sivek. Thu Dec 22 16:37:01 2005 ------------------------ 0.9.26: * rewrote the install guide (w. stein) * fix zlib build problem (thanks to Gary Zablackis ) Tue Dec 20 20:20:48 2005 ------------------------ 0.9.25: * misc/functional.py; categories/* -- updated (many examples) by David Joyner Tue Dec 20 19:04:06 2005 ------------------------ 0.9.25: * Created an interface to Maxima Mon Dec 19 23:06:24 2005 ------------------------ 0.9.25: * new singular examples (submitted by David Joyner) Mon Dec 19 19:04:44 2005 ------------------------ 0.9.25: * fixed memory leak in integer/rational --> string conversion 0.9.24: * improved build system; many more doctests (submitted by D. Joyner) Sat Dec 17 19:52:53 2005 ------------------------ 0.9.23: * fixed all known ctrl-c causes infinite loops problems; this involved modifying the pari C library and changing the pexpect interfaces. 0.9.23: * many small fixes so all the doctests pass on OS X. Sat Dec 17 11:58:51 2005 ------------------------ 0.9.23: * switched back to readline 5.0.1, since pressing [delete] would crash python under readline 5.1 on most platforms. Wed Dec 14 16:16:37 2005 ------------------------ 0.9.22: * Windows -- fixed bug in PARI build on Cygwin, so now the Windows PARI is compiled with GMP (faster) and readline (nicer) Wed Dec 14 02:03:10 2005 ------------------------ 0.9.21: * Much enhancement of flexibility of the build system. (Note: This temporarily breaks "sage -upgrade" on currently installed systems. The fix is easy: type "sage -f sage_scripts-0.9.21", ignore the error, then type "sage -upgrade" twice.) 0.9.21: * fixed bug in ngens -- returned 0 by default instead of len(self.gens()). 0.9.21: * included galois groups tables in PARI distro. Upgraded to readline 5.1 Tue Dec 13 01:04:49 2005 ------------------------ 0.9.20: * "sage -upgrade" and optional package installation now supported for pre-built (binary) versions of SAGE. Mon Dec 12 15:02:08 2005 ------------------------ 0.9.19: * many improvements to the build process, so SAGE (almost?) builds on (some) Solaris platforms. * upgraded to new version of mpfr: 2.2.0 Wed Dec 7 11:18:42 2005 ------------------------ 0.9.17: * Added integral_hecke_matrix for modular symbols spaces. * Improved cardinality function for elliptic curves over finite fields. Tue Dec 6 20:41:23 2005 ------------------------ 0.9.17: * index command for free modules * intersection of free modules over Z. Mon Dec 5 20:44:08 2005 ------------------------ 0.9.16: * added "R^n" notation for creating the free module of rank n over R. * many additions to free_module.py docs and code improvements Mon Dec 5 10:35:23 2005 ------------------------ 0.9.16: * added algorithm='kash' option to n.factor for n an integer. Sun Dec 4 23:35:06 2005 ------------------------ ------------------------ 0.9.15: * made "sage -t path/to/file.ext" work for nontrivial paths * free modules -- submodule, span, etc. now work in a sensible way; more documentation; inner products on non-ambient modules * better error handling when mathematica or other slave processes "halfway" starts, e.g., because of missing license information. * singular polynomials now print with *'s and ^'s (short mode off by default). Tue Nov 29 20:34:49 2005 ------------------------ 0.9.14: * added "-np" no output prompt option to sage. Tue Nov 29 01:40:56 2005 ------------------------ 0.9.14: * Now interrupt.pxi and interrupt.h are all the same (via cp during build) * Also fixed bug that lead to hangs when using alarm() function. Sun Nov 27 21:58:39 2005 ------------------------ 0.9.13: * greatly modified the pexpect interfaces code so now, e.g., gap('2+2') makes a new gap object, whereas gap.eval('2+2') evaluates the expression and returns a string. Also fixed bugs in the interfaces that caused infinite loops. 0.9.13: * added KASH/Kant interface and optional packages. Tue Nov 22 00:59:40 2005 ------------------------ 0.9.12: * fixed alarm command so it works even when calling C code * rewrote the Stein-Watkins database interface so startup is immediate (using Python's bz2.BZFile module). Mon Nov 21 01:19:02 2005 ------------------------ 0.9.11: implemented q_expansion_basis and q_eigenform for modular symbols spaces; added q_eigenform for elliptic curves also Sun Nov 20 16:03:07 2005 ------------------------ 0.9.11: added "sage -optional" command that lists installed and available optional packages. Sun Nov 20 04:16:45 2005 ------------------------ 0.9.11: made sage not preparse lines beginning with "!". Thu Nov 17 06:06:11 2005 ------------------------ 0.9.11: added Joyner's updated permgroup.py Wed Nov 16 18:09:17 2005 ------------------------ 0.9.9b: * fixed bug in multi-modular charpoly computations (insufficient bound) * Added Heilbronn* commands for listing Heilbronn matrices Wed Nov 16 01:09:44 2005 ------------------------ 0.9.9: Incorporated David Joyner's "SAGE Constructions" documentation. Tue Nov 15 04:53:49 2005 ------------------------ 0.9.8: added hilbert_class_field and hilbert_class_polynomial for quadratic number fields Tue Nov 15 03:37:38 2005 ------------------------ 0.9.8: Fixed bug so that ctrl-c in mwrank crashed SAGE. The problem was that I was using signal interrupts in a Pyrex constructor, which is not safe. Tue Nov 15 02:35:15 2005 ------------------------ 0.9.8: SAGE now build with readline support on OS-X; SAGE maybe no longer supports building on OSX 10.3 (?) Tue Nov 15 02:34:34 2005 ------------------------ 0.9.8: improved E.gens() (better error messages, raises exception, uses two_descent results) Tue Nov 15 00:18:14 2005 ------------------------ 0.9.7d: added linear_code_bound command, which looks up minimum distances bounds on linear codes from a website. Mon Nov 14 21:57:05 2005 ------------------------ 0.9.7c: new version of Singular: Singular-3-0-1 Mon Nov 14 17:59:40 2005 ------------------------ 0.9.7b: Added heegner index computation for odd rank curves. Sun Nov 13 21:52:54 2005 ------------------------ 0.9.7: Hyperelliptic and plane curves (some functionality) 0.9.7: Access to Sloane's tables of integer sequences (via the internet) Sun Nov 13 16:15:24 2005 ------------------------ 0.9.7: Added maple interface. Sun Nov 13 03:44:19 2005 ------------------------ 0.9.7: some modular symbols optimizations Fri Nov 11 04:29:33 2005 ------------------------ 0.9.6: * added "-update and -update-build" options to sage * added "-gdb" option to sage to run under the GNU debugger (the idea/trick to implement this came from Joe Wetherell). * gap_reset_worspace(n) sets the size of the default workspace to n. Tue Nov 8 19:50:29 2005 ------------------------ 0.9.5: * slightly modified prereq script. * made "sage" the name of sage that appears in the process list. Tue Nov 8 19:00:19 2005 ------------------------ ntl-5.4.1: Fixed OSX bug in NTL build process (no dylib) that made anything in SAGE that used NTL worthless (e.g., polynomials over finite fields). Mon Nov 7 20:48:36 2005 ------------------------ 0.9.5: * Switched from IPython time command back to my own, so it will work in .sage scripts. * Fixed bug in preparser in that it was not completely ignoring comment lines. * Made it so attach reloads files whenever a file is changed, not only when you enter a blank line at the SAGE prompt. The reload occurs *before* your line of code is executed. * If there is a file "attach.sage" in the current directory, SAGE will *automatically* attach that file at startup. Sun Nov 6 22:33:12 2005 ------------------------ 0.9.4: Changed .ipythonrc to ipythonrc, since it was confusing having it as a dot file in the SAGE directory. 0.9.4: Added an examples directory, where I'll regularly put more and more examples of .sage scripts. These will regularly be updated. 0.9.4: spkg's can now be either tar.bz2 or tar files (no compression). Sun Nov 6 16:06:05 2005 ------------------------ 0.9.3: Improved the sage testing scripts. 0.9.3: Switched to using PARI 2.2.11.alpha instead of the CVS version. This fixes a bug in computing the conductor of the curve 3006d, and avoids other possible stability problems. Sun Nov 6 14:25:16 2005 ------------------------ 0.9.3: moved the $SAGE_ROOT/sage script to local/bin/sage-sage and made a much simpler $SAGE_ROOT/sage script, which shouldn't ever change. Now you can copy $SAGE_ROOT/sage to e.g., /usr/local/bin/, make one change at the top. Sat Nov 5 17:41:39 2005 ------------------------ singular-3.0.9.1: Fixed a problem in the install that made Singular fail on Microsoft Windows when one moves the install directory (this bug also broke Singular for the Windows binary). This did not affect Linux or OS X. Fri Nov 4 16:04:59 2005 ------------------------ 0.9.1: Complete restructing of the entire SAGE build system. Mon Oct 31 10:49:21 2005 ------------------------ 0.8.5: * changed sage install scripts to touch files when extracting from archive, to avoid infinite recursions in the build process if the clock on your computer is messed up. Thu Oct 27 01:31:30 2005 ------------------------ 0.8.4: * Added some functions submitted by David Joyner. * Fixed x^n when x is a float and n is an integer. Tue Oct 25 06:09:05 2005 ------------------------ 0.8.3: Added Denis Simon's 2-descent program for curves over Q. If E is an elliptic curve over Q, this is the function E.simon_two_descent Tue Oct 25 04:54:01 2005 ------------------------ 0.8.3: Wrote a nice mathematica <--> SAGE interface 0.8.3: Greatly improved error handling in all interfaces. 0.8.3: Improved calling functions via MAGMA interface Mon Oct 24 06:00:08 2005 ------------------------ 0.8.3: Added a "rename" feature, as suggested by Joe Wetherell. On many sage objects X you can use X.rename(new_name) to make X print as new_name. Use X.reset_name() to reset X back to its original printing value. (Implementing this requires changing a lot of code, so it doesn't work for everything yet.) Sat Oct 22 16:09:02 2005 ------------------------ 0.8.1: small bugfixes to the build process on various machines. Sat Oct 22 05:04:08 2005 ------------------------ 0.8.0: *Singular*: The Singular computer algebra system is now a part of the standard SAGE distribution. 0.8.0: Added interface to Octave (useful if you have octave installed). 0.8.0: Improved interfaces to Singular, GAP, PARI, Magma, etc., to simulate limited wrapping and python notation for accessing objects and their methods. Fri Oct 21 15:07:26 2005 ------------------------ 0.8.0: fixed small bug in preparser (error found by Kyle Schalm) where certain ints wouldn't be wrapped in ZZ(). Fri Oct 21 14:02:29 2005 ------------------------ 0.8.0: Fixed expect interface so works on OS X (needed to decrease timeout). Fri Oct 21 07:00:36 2005 ------------------------ 0.8.0: Upgraded to PARI 2005-10-21 CVS. Fri Oct 21 06:33:28 2005 ------------------------ 0.8.0: *GAP*: The core of GAP is now a part of the standard SAGE distribution. The group databases are a separate download from the database website. Mon Oct 17 23:47:28 2005 ------------------------ 0.7.14: Upgraded to ZODB3-3.5.1 final. Mon Oct 17 12:55:50 2005 ------------------------ 0.7.14: Changed behavior of elliptic curve gens command to print warning and set flag if computation of generators is not certain, but not to raise an exception. This is good because *often* one just needs one generator or knows that in fact the mwrank answer is correct anyways. Mon Oct 17 03:51:48 2005 ------------------------ 0.7.13: Rewrote the tutorial (now the examples work as advertised, because of my new documentation testing system). 0.7.13: Added a few minor changes so the tutorial made more sense. 0.7.13: Fixed bug in SAGE call to SEA. Fri Oct 14 11:00:08 2005 ------------------------ 0.7.12: Added David Joyner's PermutationGroup package (first version). Fri Oct 14 10:35:05 2005 ------------------------ 0.7.12: included new version of David Kohel's (non)-commutative algebra code. Thu Oct 13 21:38:47 2005 ------------------------ 0.7.12: changed meaning of "x in S" again; now it means S(x) succeeds. This agrees with the meaning as defined in Alex Martelli's "Python in a Nutshell". Tue Oct 11 17:11:02 2005 ------------------------ 0.7.10: * minor bugfix in printing code Mon Oct 10 03:44:47 2005 ------------------------ 0.7.10: * added "hensel_lift" method for elements of Q[x], via corresponding PARI C-library function. Sun Oct 9 18:34:27 2005 ------------------------ 0.7.9: * changed the standard meaning of "x in S" in SAGE, (for the most part). Now it means "there is a *canonical* map that sends x to an element of S". This is intermediate between the meaning of "in" in MAGMA (which is S!x doesn't crash) and what it was in SAGE before (basically x.parent() == S). * lots of little changes that were needed to make all examples work after making changes. Sun Oct 9 17:14:01 2005 ------------------------ 0.7.9: * more work on implementing separate additive and multiplicative orders * made gcd, xgcd, lcm more uniform (only defined for EuclideanDomainElements; use _gcd, etc. in derived class just like for arithmetic) Fri Oct 7 13:30:19 2005 ------------------------ 0.7.9: * changed "order" to mean additive order for module and ring elements, and multiplicative_order for the multiplicative order. Thu Oct 6 22:58:08 2005 ------------------------ 0.7.9: * Upgraded to Python 2.4.2 (bugfix release) Wed Oct 5 04:49:01 2005 ------------------------ 0.7.8: * Added Iftikhar's interface to Cremona's C++ allisog * L-ratio bugfix (when input elliptic curve has denominators) * changed printing of 0 in elliptic curve to "0" * better latex printing of subscripts Tue Oct 4 23:20:23 2005 ------------------------ 0.7.8: * Added computation of p-adic heights of points on elliptic curves over Q; This functionality requires that MAGMA be installed to work. (This is partially a test of using expect to access nontrivial functionality provided by scripts I wrote for a commercial system.) Tue Oct 4 05:03:36 2005 ------------------------ 0.7.7: * Improved efficiency of use of pexpect (by increasing maxread buffering parameter). * Made it so user scripts can be included in data/scripts/sys/user, where sys is one of gp, magma, singular, and gap. Also have other subdirectories for scripts supported by SAGE. * Included some of Cremona's GP scripts in data/scripts/gp/cremona for computing analytic rank, finding isogenous curves over Q, and group structure of elliptic curves modulo p. * Included SEA point-counting GP script with SAGE. * Made GF(p).gen() be 1. * Added new SAGE shell commands: gp, gap, singular, magma that execute commands in one of those four systems via a pseudo terminal. (NOTE: Only gp is included with SAGE.) Sun Oct 2 20:55:31 2005 ------------------------ 0.7.6: * Moved __ arithmetic operations to base element class, so derived classes only have to defined _add, _sub, etc. on operands with the same parent. * Removed ZEN from SAGE; benchmarks show NTL to be significantly faster for polynomial arithmetic over GF(p). * Implemented polynomials over GF(p) using NTL (Use PARI for factorization still, since NTL is slow for factorization over GF(p).) Sat Oct 1 01:06:29 2005 ------------------------ 0.7.6: Removed gmpy from SAGE (no longer used). Fri Sep 30 23:33:03 2005 ------------------------ 0.7.6: Added source and building of ZEN-3-0r7 to SAGE source distribution. (This adds 2-3 minutes to the total build time.) Thu Sep 29 04:39:17 2005 ------------------------ 0.7.5: (David Kohel) Added free algebras, quotients of free algebras, and quaternion algebras. Construction and basic arithmetic is now supported but not much more yet. Thu Sep 29 03:14:15 2005 ------------------------ 0.7.5: (David Kohel) Added monoids -- FreeMonoid and FreeAbelianMonoid Thu Sep 29 00:35:10 2005 ------------------------ 0.7.5: fraction field __call__; latex printing of multivariate polys Tue Sep 27 17:25:48 2005 ------------------------ 0.7.5: fixed sqrt; improved parameter choices for mwrank; modified gens to only compute analytic rank if conductor is small. Mon Sep 26 02:55:05 2005 ------------------------ 0.7.4: (David Kohel) Multivariate poly __call__ Mon Sep 26 01:07:49 2005 ------------------------ 0.7.4: Upgraded to mwrank version "2005-09-25". Mon Sep 26 01:02:56 2005 ------------------------ 0.7.4: Added building of MPC (GMP complexes) to SAGE distro. No nontrivial interface to it though. Sun Sep 25 22:54:42 2005 ------------------------ 0.7.4: Fixed the preparser so it doesn't munge comments in user-defined functions when loading files. Sun Sep 25 20:57:27 2005 ------------------------ 0.7.3: Factored out generic "Hecke modules" functionality. This was a *massive* restructuring of the modular symbols code, and separation of code that is specific to modular symbols from code that is completely general. 0.7.3: Added categories, homspaces, functors, morphisms, etc. Every object lies in a category: type "category(x)" or, in most cases, "x.category()" for the category of x. If C is a category and x is an object, C(x) tries to make an object in C from x (much support is not done yet). Morphisms, Hom spaces, are also in categories. Fri Sep 23 08:16:26 2005 ------------------------ 0.7.3: Fixes to the tutorial (since so much of SAGE has changed) Fri Sep 23 07:07:23 2005 ------------------------ 0.7.3: upgraded to Python2.4.2c1 (a bigfix candidate for python) Thu Sep 22 20:27:29 2005 ------------------------ 0.7.3: 0.7.2 broke "n*P" for P a point on an elliptic curve; fixed by making points derive from ModuleElement. Thu Sep 22 05:53:39 2005 ------------------------ 0.7.2: Complete rewrite of the implicit coercion system. Now it is commutative and unambiguous, hence much more rigorous. If an arithmetic operation can be interpreted in two ways by SAGE (via _coerce_ methods), then a TypeError is raised. Making this change was easy, but making the rest of SAGE work afterward wasn't, since it required modifying lots of little bits of code throughout the SAGE system that relied on the old behavior (left to right coercion). Thu Sep 22 02:40:33 2005 ------------------------ 0.7.2: Fixed it so sage path is correct after startup (this is only a problem when one uses "make install"). Wed Sep 21 06:51:28 2005 ------------------------ Work on the Reference Manual. Wed Sep 21 05:17:17 2005 ------------------------ 0.7.0: Finished implementation of free modules (first version) and matrices over general rings. Renamed tables directory to database. Tue Sep 20 05:46:51 2005 ------------------------ Made a factorization classes, so factorizations of polynomials and integers looks nicer. Lots of work on rings. Mon Sep 19 20:13:53 2005 ------------------------ Upgraded to PARI CVS 09-19-2005. Mon Sep 19 16:21:00 2005 ------------------------ Greatly reorganized matrices over general rings. Mon Sep 19 16:20:14 2005 ------------------------ Improved latex display. Added a "view" command to display a typeset version of any SAGE object using xdvi and latex. (Of course not all necessary support for this command is implemented, so it may or may not work for a particular object.) Mon Sep 19 06:26:38 2005 ------------------------ v0.6.5: Added the "alarm" command to SAGE: alarm(seconds): Raise a KeyboardInterrupt exception in a given number of seconds, which is useful for automatically interrupting long computations, and can be trapped using exception handling. Sun Sep 18 20:31:59 2005 ------------------------ v0.6.5: factoring out lots of code from vector_space and putting it in free_module. Created a "matrix" directory. Eliminated the "linalg" directory and vector* files, since they are part of modules/free_module*. Sun Sep 18 17:29:48 2005 ------------------------ v0.6.5: Changed many constructors to be factory functions instead of __new__ in the abstract base class. This is much more flexible and robust. ------------------------ v0.6.5: Massive reorganization of rings. * Changed sage.rings.rings to sage.rings.all, which meant making changes all over. * Split polynomial quotient rings into two files * Switched to using a unified system for naming generators of rings, which meant changing how generators are named in all code. * Made rings conform to the class hierarchy for rings. Sun Sep 18 05:25:23 2005 ------------------------ v0.6.5: * Added very basic infra-structure for schemes and algebraic geometry. * Bugfixes, e.g., [1,2,3][2^1] * Introduced new ring: FractionField of integral domain. Sat Sep 17 20:36:44 2005 ------------------------ v0.6.4: reorganized Generators and Rings in Pyrex. Sat Sep 17 14:28:49 2005 ------------------------ Fixed segfaults which were caused by the PARI C-library changing the GMP malloc function. (More precisely: Comment out the call to mp_set_memory_functions in pari_kernel_init in the file src/kernel/gmp/mp.c). I also switched SAGE's GMP to use Python's malloc instead of the C malloc, by adding an line in sage/ext/_integer.pyx to do this. Sat Sep 17 13:18:36 2005 ------------------------ New real numbers: Replaced use of Python reals and GMP's mpf with MPFR. Sat Sep 17 03:15:54 2005 ------------------------ v0.6.4: Upgraded to MPFR cvs version, as of 2005-09-17. Fri Sep 16 20:14:54 2005 ------------------------ v0.6.3: Added SAGE_PATH environment variable, so user code in personal directories can be easily imported. Fri Sep 16 14:51:57 2005 ------------------------ v0.6.3: Fixed bug in sage startup script that is distributed with binaries. When the ROOT wasn't manually edited, and the SAGE script was run but not in the path (i.e., with ./sage), then ROOT was set to the relative path instead of the absolute path. Also fixed annoyance in creation of sage script when building from source, then the ROOT path is blah/source/.., instead of just blah. Thu Sep 8 18:07:54 2005 ------------------------ v0.6.2: Included the new Cremona database of curves of conductor up to 100000. The labeling format now uses Cremona's new format, i.e., "<*lower* case letter>[number]". Thu Sep 8 18:01:19 2005 ------------------------ Implemented "factorization" for modular symbols spaces, and also q_expansion and system_of_eigenvalues for simple modular symbols spaces. (Not optimized yet! But provides interesting functionality.) Thu Sep 8 15:42:50 2005 ------------------------ Fixed pickling of SAGE rings, which was broken by putting the ring abstract base class into Pyrex. Thu Sep 8 11:42:50 2005 ------------------------ Implemented a vastly more efficient level raising map directly using MANIN symbols (this is a theoretical improvement over anything I've implemented before for this). Wed Sep 7 03:24:33 2005 ------------------------ Modular Symbols: Implemented degeneracy maps in general in both directions and all that was needed for this, including conversion between manin and modular symbols (via continued fractions, etc.) Mon Sep 5 09:37:58 2005 ------------------------ Upgraded SAGE (0.6.alpha3) to include new versions of ZODB and bzip2: * ZODB3.5 (instead of ZODB3.4) * bzip2-1.0.3 (instead of bzip2-1.0.2) Fri Sep 2 23:07:09 2005 ------------------------ Wrote lots of new modular symbols code. Fixed major bug in charpoly of matrix over Q (it was wrong in some cases when there are denominators). Many many small linear algebra and ring bugs found and fixes prompted by automated testing of new modular symbols code (which is part of a new automated testing framework that will be used to greatly increase the robustness of SAGE). Fri Sep 2 13:34:18 2005 ------------------------ Fix bug in SAGE interpreter where typing e.g., VectorSpace(Q,2).1 gave an error instead of giving generator 1. Wed Aug 31 19:21:44 2005 ------------------------ Added preliminary "detexing" of interactive documentation accessed via "object?". Wed Aug 31 17:39:04 2005 ------------------------ Lots more documentation for reference manual. Added change_ring to vector_spaces. Tue Aug 30 22:22:49 2005 ------------------------ Added complete class for computing with quotients of univariate polynomial rings in general. E.g., sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen() sage: S = R.quotient(x^3-2, 'a'); a = S.gen() create R[x]/(x^3-2) as a quotient polynomial ring. Tue Aug 30 17:55:37 2005 ------------------------ Changed vectors so they print with commas between entries, since otherwise vectors with entries in, e.g., number fields, are unreadable (like in MAGMA). Tue Aug 30 01:15:32 2005 ------------------------ Lots on modular symbols! Mon Aug 29 01:33:25 2005 ------------------------ Fixed bug where SAGE would fail to start if, e.g., a file named "code.py" was defined in the directory where you started SAGE. (Fix: Change directory then change back.) Sat Aug 27 18:37:23 2005 ------------------------ Lots of work on the SAGE reference manual. Wed Aug 24 00:22:54 2005 ------------------------ Implemented power series and laurent series. Thu Aug 18 23:58:51 2005 ------------------------ Lots of additions to the PARI module (by Justin Walker and William Stein). Thu Aug 18 13:19:52 2005 ------------------------ Added a build and rebuild command, and link to sage-src so that users who install SAGE from source can easily modify and compile SAGE to their liking. Tue Aug 16 23:22:04 2005 ------------------------ Lots of minor changes to various build scripts to get SAGE to build on OS X. Slightly modified sage/libs/interrupt.h to support OSX signals. Fri Aug 12 17:07:15 2005 ------------------------ Moved the Ring base class into Pyrex. Added the mpfr C-library to the distribution. Created a first very rudimentary interface to mpfr. Sun Aug 7 16:47:48 2005 ------------------------ Modified sage/libs/interrupt.h to allow for compilation on FreeBSD. Sun Aug 7 00:41:05 2005 ------------------------ Finally made a useable windows version of SAGE! Added incomplete Gamma at complex arguments via the PARI C library. This removes use of mathematica. Wed Aug 3 23:30:33 2005 ------------------------ Upgraded to PARI 2005-08-03 version. Upgrade to mwrank-2005-08-01. Wed Aug 3 23:05:38 2005 ------------------------ Fixed bug in L(E,s) (the precision defaulted to 0, which PARI didn't like). Sun Jul 31 11:23:32 2005 ------------------------ Slightly modified pexpect.py so doctests that involve pexpect will work. Sun Jul 31 10:37:09 2005 ------------------------ Changed MPolynomialRing base class to a "factory function". This is a lot simpler. Mon Jul 25 22:18:14 2005 ------------------------ Complete rewrite from scratch of PARI library interface. Now PARI is in sage.libs._pari like the other libraries. I made many improvements to the wrapping so it should be faster. I also wrote excellent _sig_on, _sig_off macros for signal handling. Added galois data to PARI distro, so can compute Galois groups of fields up to degree 11. Sun Jul 24 11:28:36 2005 ------------------------ Made it so polynomials over Z use the NTL wrapper. Now arithmetic with them in SAGE is very fast. Sun Jul 24 10:58:15 2005 ------------------------ Added complete wrapper of NTL's very fast Z[x] polynomial class. (This is the class sage.libs.ntl.ZZX.) Thu Jul 21 02:29:54 2005 ------------------------ Upgraded to current PARI cvs version. Wed Jul 20 11:53:01 2005 ------------------------ New mwrank version that uses PARI C-library for factoring Wed Jul 20 11:21:02 2005 ------------------------ Fixed bug in CremonaDatabase, where it reported the wrong number of isogeny classes. Jul 19 00:51:40 2005 ------------------------ Split up ellcurve implementation into separate files. Added mwrank conductor computation. Added Mark Watkin's EC program, which computes, e.g., the modular degree. Sat Jul 16 23:11:20 2005 ------------------------ Many many small changes to the build system and some source files in order to get SAGE 0.4.beta3 to build on a wide range of systems. I also added sage/misc/functional.py and moved a bunch of code from sage/all.py in there, and documented it. I also documented sage/misc/misc.py. Thu Jul 14 18:07:34 2005 ------------------------ Fixed bug in rational.pyx (Q(7)^(-1) was getting confused because of signed / unsigned ints.) Eliminated all usage of SWIG. Now C++ libraries are wrapped using Pyrex. Sun Jul 10 02:55:25 2005 ------------------------ Figured out how to use sigsetjmp, etc., so that ctrl-c breaks out of long-running C/Pyrex - level compiled code. This will make it much easier to immediately quit out of computations using "Ctrl-C". (This does not yet apply to C++ libraries.) Sat Jul 9 20:06:47 2005 ------------------------ I investigated the bug in which "s=str(2^100000000)" terminated SAGE. It turns out there seems to be a bug in the string representation function in GMP, so it only works on numbers with up to about 4 million digits in bases other than a power of 2. I've added proper checking for this condition along with a helpful error message. Maybe it's not so much a bug as GMP doesn't have a good way of informing me when it runs out of memory, and really what is happening is an out of memory condition. Sat Jul 9 09:22:50 2005 ------------------------ Made many many small changes to SAGE and some of its dependencies so that SAGE now compiles with GCC 4.0.x. SAGE should continue to compile with GCC 3.x. Sat Jul 9 02:49:10 2005 ------------------------ Fixed the bug in which existing from help system pager crashed SAGE. (Added signal.signal(signal.SIGPIPE, _my_empty_sigint) to py_pari.pyx) Implemented a "make install" that install to /usr/local (or any other prefix). Sat Jul 9 01:10:13 2005 ------------------------ Added logging to the build-from-source process. Now if you build from source, all the output is recorded to the file install/install.log. If the build process fails, you can send me this file, which will be very helpful in debugging. Sat Jul 9 00:25:46 2005 ------------------------ Fixed this bug: sage: e=EllipticCurve('37A') No handlers could be found for logger "ZODB.FileStorage" Fri Jul 8 09:48:57 2005 ------------------------ Created a sensible system for creating new version numbers of SAGE. Now on my local system I just have to change the SAGE_VERSION environment variable. Unified the documentation system. Got rid of the autogenerated API docs, and made the Manual contain similar information, but in a much more usable form. Added allowing of pasting leading >>>'s into SAGE. It said in the manual that this was allowed, but it wasn't. Simplified and rewrote the installation guide. Updated the tutorial a little (not much) -- added that ?foo? in SAGE gives the source code for a function (a *great* feature of IPython -- but need to extend to also handle pyrex code...?!) Thu Jul 7 14:30:49 2005 ------------------------ Added *lots* of new documentation in the Manual. Sun Jul 3 03:22:29 2005 ------------------------ Wrote multivariate-polynomial class over arbitrary bases with bost a list and dict representation. Sat Jul 2 21:12:05 2005 ------------------------ Refactored finite fields class so prime fields are implemented separately from extension of prime fields. Also added an issquare function (via PARI) to IntegerMod, FiniteField and Integer rings. Modified PARI issquare so works in more generality (optional to return a square root). Sat Jul 2 18:50:26 2005 ------------------------ Improved doctest script so it only tests modified files. (This affects development only.) Sat Jul 2 18:29:48 2005 ------------------------ Added several new databases to SAGE and unified old ones. Now everything uses the bzip2 compressed ZODB. I also fixed doctesting so that the databases can be tested, at least on my local install. Sat Jul 2 16:04:33 2005 ------------------------ Upgrade SAGE distribution to include ZODB 3.4.0 (where ZODB is the Zope Object Database). Sat Jul 2 15:52:29 2005 ------------------------ * Rewrote the Cremona elliptic curves database from scratch, still using ZODB so that it is very fast. Now the database is simpler, cleaner, and easier to use and understand. Also, it now can be automatically built from cremona's ftpdata.tgz file. I also added all Cremona's data up to level 70000. Note that now the database is 36MB. There was some data in the old elliptic_curves database that wasn't in Cremona's (e.g., individual Tamagawa numbers), and now that is not in the new database, which will always be kept the same as Cremona's. * Added a table of Conway polynomials (for finite fields). Fri Jul 1 08:48:51 2005 ------------------------ Improved doctests so they are more flexible and work on all files. Now docstrings can use "sage:" instead of ">>>" as the prompt. Fri Jul 1 08:47:31 2005 ------------------------ New modular symbols code and making old code work. In particular, I implemented degeneracy_maps, new_subspace, and cuspidal_subspace (in some cases). Mon Jun 27 13:34:44 2005 ------------------------ Added to modular symbols code. Thu Jun 23 18:00:55 2005 ------------------------ Improvements to py_pari. (Defined more functions and added documentation.) Starting to develop multivariate polynomials with David Joyner. Thu Jun 16 07:46:25 2005 ------------------------ Changed behavior of integer square root to raise an error if the integer is not a perfect square. Added the isqrt member function of Integer to return the floor of the square root. Fri Jun 3 07:21:23 2005 ------------------------ Fixed mistake in sage.rings.arith.prev_prime documentation. Thu Jun 2 23:43:21 2005 ------------------------ * Fixed a bug in rings.arith.is_square, where it gave wrong results when the input is a rational number. * Fixed a bug in the sage binary startup script, where it removed the old path, which caused rm and other commands to fail, which I think are used by ZODB. Mon May 16 11:37:40 2005 ------------------------ Added mwrank, ntl, SWIG to install tarball. More exposing of functionality of mwrank and functions on elliptic curves related to Heegner points. Sat May 7 10:21:49 2005 ------------------------ Now SAGE includes the html documentation in the release. After installing with "make install" it's in a subdirectory called "doc". I've also created a binary installer, which is easy to move around after install. Wed May 4 17:15:07 2005 ------------------------ Switched back to PARI 2.2.10-alpha after learning of bad bugs in previous versions, and after *fixing* the bug in root number calculations. Sun May 1 19:12:37 2005 ------------------------ Refactored elliptic curves class. Now there's a generic base class and a derived class with special functionality for curves over Q. Sat Apr 30 16:49:36 2005 ------------------------ Changed matrix printing to include a space before the matrix. This makes lists of matrices print correctly. Sat Apr 30 16:28:20 2005 ------------------------ Some finite field and linear algebra optimizations. Finished writing "coordinates" for vector subspaces with basis. Thu Apr 28 21:48:55 2005 ------------------------ Added "PariRing", which is a standard SAGE ring with SAGE elements, which wraps arbitrary PARI objects. Thus, e.g., >>> M = MatrixSpace(PariRing(),2) >>> a = M([2,'3+w', 'y', 10]) >>> a [ 2 w + 3] [ y 10] >>> a^(-1) [ 10/((-w - 3)*y + 20) (-w - 3)/((-w - 3)*y + 20)] [ -y/((-w - 3)*y + 20) 2/((-w - 3)*y + 20)] Wed Apr 27 03:41:36 2005 ------------------------ Added lots of BSD related things to ellcurve.py. Added a new interval arithmetic class under sage.rings. The interval arithmetic ring is named IntervalRing(). This is useful in computations related to the BSD conjecture. After "upgrading" to PARI 2.2.10-alpha, which fixed some annoying bugs in PARI2.2.9-alpha, I discovered that 2.2.10-alpha is also too buggy. For example, it computes the Lseries at 1 and sign of functional equation for the curve defined by [0,1,0,-6,4] incorrectly. So, I switched to PARI 2.2.7-alpha, which has none of the bugs I've discovered, and for some reason seems to be the last "stable" 2.2.x release. Even the documentation is messed up in 2.2.n for n > 7, i.e., the C-library sections are missing. But in 2.2.7-alpha they're there. Added David Kohel's function for computing division polynomials of elliptic curves. Sun Apr 24 09:33:03 2005 ------------------------ Improved prime iteration and enumeration in sage/rings/arith.py by incorporating the function from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/366178 and polishing some related code. Sat Apr 23 15:21:24 2005 ------------------------ Added termcap to the SAGE distro. This is so readline will work right with Python on SUSE and certain other distributions. I tried using ncurses, but it didn't improve matters at all, and uses a lot more space and takes longer to compile. (Even with ncurses or termcap, Ipython gets some formatting wrong on SUSE.) Fri Apr 22 18:28:25 2005 ------------------------ * Upgraded to PARI 2.2.10 and made sage work with new version. This fixes a bug in conductor computation. * Changed PARI to compile with GMP support. * Separated databases, so users can download just the ones they need. * Upgraded to new version of ZODB. (V 3.3.1) * Improved Makefile (some things were confused, which led to non-fatal errors). Thu Apr 21 15:42:58 2005 ------------------------ Switched to using bzip2 for most of the packages included with SAGE. This saves 3 MB, so the distribution is 16MB instead of 19MB. We don't worry about whether bzip2 is installed on the target computer, since we include bzip2 and build it from source as part of the SAGE build process anyways (it's needed for compressed databases). Changed the automatic update from the web command to: "make update-web" Found serious bug in ellcurve conductor in PARI; added example to automatic tests, so this bug will get fixed soon. Thu Apr 21 15:29:56 2005 ------------------------ Add many functions related to the BSD conjecture to the elliptic curves package for computing with elliptic curves. E.g., analytic order of Sha, Kolyvagin and Kato bounds, L'(E,1), etc. Made 4/2 be a rational number. Mon Apr 18 12:57:16 2005 ------------------------ Bug fix for interpreter.py, where "5. + 2." would crash it. That is parsed correctly, and if the parser runs into a problem, it just prints and error and executes the unparsed line. Sat Apr 16 23:29:44 2005 ------------------------ Added general finite fields. Improved the command-line preprocessor further. Fri Apr 15 06:52:56 2005 ------------------------ Rewrote the command-line preprocessor so it changes all integer tokens to actual ZZ objects, all numbers with decimals to RR's, correctly parses ^'s, and allow for the .num MAGMA notation. This likely breaks some thing, e.g., functions that expect an int as input, suddenly now receive a ZZ. To be fixed... Thu Apr 14 05:24:31 2005 ------------------------ Upgraded Python in sage distro to version 2.4.1. Wed Apr 13 12:38:55 2005 ------------------------ Worked on improving support for Windows. Improved emacs support. Sun Apr 10 17:56:57 2005 ------------------------ Wrote the tutorial with David Joyner. Sat Apr 9 11:44:42 2005 ------------------------ Fixed printing of annoying log messages on start of sage by removing log option. The history is in ~/.ipython/history anyways. Fri Apr 8 02:13:39 2005 ------------------------ Adding charpoly, trace, matrix, etc. to py_pari, and used them to add a bunch of nontrivial linear algebra over number fields. E.g., kernels, charpolys of matrices, etc. In the long run multi-modular methods are needed, but PARI's number field matrix algebra does work reasonably, and will allow me to focus on developing modular symbols code. Thu Apr 7 15:59:18 2005 ------------------------ Added factorization of polynomials over number fields. Fixed bug in charpolys of matrices over number fields.