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 Dadid 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 addes 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 funciton. (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 univariet 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 bugy. 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 discoved, 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 releated 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 commmand-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.