tag:blogger.com,1999:blog-25204724604308803302024-03-13T15:09:26.859-07:00The Official SymPy BlogThe Official SymPy BlogAnonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.comBlogger40125tag:blogger.com,1999:blog-2520472460430880330.post-79202974981635895262013-07-14T12:48:00.004-07:002013-07-14T12:48:50.414-07:00SymPy 0.7.3 is released<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">I'm happy to announce the release of SymPy 0.7.3. It can be</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">downloaded from</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><a href="https://github.com/sympy/sympy/releases/tag/sympy-0.7.3" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">https://github.com/sympy/<wbr></wbr>sympy/releases/tag/sympy-0.7.3</a><wbr style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"></wbr><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">. The release</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">notes for this release are at</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><a href="https://github.com/sympy/sympy/wiki/release-notes-for-0.7.3" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">https://github.com/sympy/<wbr></wbr>sympy/wiki/release-notes-for-<wbr></wbr>0.7.3</a><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">To update SymPy, you can use pip install sympy --upgrade or download</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">the source and use setup.py install. SymPy has no dependencies.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Some highlights:</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br />
<ul>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Improved integrate() with the Risch algorithm, and it now splits </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">integrals into Piecewise more often. Support for more special </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">functions.</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Basic infrastructure for the PDE module.</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Many improvements to the matrix expressions, and assumptions relating to them.</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">New context manager for the new assumptions (with assuming(...)).</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">This will be the last version of SymPy to support Python 2.5.</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Many bug fixes.</span></li>
</ul>
<br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Note: I suspect that these release notes are still not complete. If</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">you know of any new major change in this release that is not there,</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">please edit the wiki page and add it.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">The following people contributed at least one patch to this release</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">(names are given in alphabetical order by last name). A total of 85</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">people contributed to this release. People with a * by their names</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">contributed a patch for the first time for this release; 56 people</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">contributed for the first time for this release.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">I particularly want to thank Ondrej, who helped set up an</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">infrastructure for automating this release, without with this release</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">would not have been possible.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Thanks to everyone who contributed to this release!</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><ul>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Acebulf*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Akshit Agarwal*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Ankit Agrawal*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Tom Bachmann</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Madeleine Ball*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Raoul Bourquin</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Christian Bühler</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">CJ Carey*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Ondřej Čertík</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Mary Clark*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Chris Conley*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Renato Coutinho</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Björn Dahlgren*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Christopher Dembia*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Guru Devanla</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Rishabh Dixit*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Alexander Eberspächer*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Pavel Fedotov</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Benjamin Fishbein*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sean Ge*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Gilbert Gede</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Brian E. Granger</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Angus Griffith*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Chetna Gupta*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Ananya H*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Randy Heydon*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Alexander Hirzel*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Thomas Hisch*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">hm*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Matthew Hoff*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Case Van Horsen*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Katja Sophie Hotz*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Max Hutchinson*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sachin Irukula</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sergiu Ivanov</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Amit Jamadagni*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Saurabh Jha</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sachin Joglekar*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Varun Joshi*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Robert Kern</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sergey B Kirpichev*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Stefan Krastanov</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Manoj Kumar*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Patrick Lacasse*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Ronan Lamy</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Colleen Lee*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Oliver Lee*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">David Li</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Stephen Loo*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Huijun Mai*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Aaron Meurer</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Angadh Nanjangud</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Eric Nelson*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sherjil Ozair</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Mateusz Paprocki</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Tarang Patel*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Khagesh Patel*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Mario Pernici</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Luke Peterson</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Tyler Pirtle*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Vasily Povalyaev*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Seshagiri Prabhu*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Pradyumna*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Roland Puntaier*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Bharath M R</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Shravas K Rao*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Thilina Rathnayake*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Timothy Reluga*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Julien Rioux</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Matthew Rocklin</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Christophe Saint-Jean*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Prasoon Shukla*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Chris Smith</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Cristóvão Sousa</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Brian Stephanik*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Marek Šuppa*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Tim Swast*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Grzegorz Świrski</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Matthew Tadd*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Niklas Thörne*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Ramana Venkata*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Sean Vig</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Demian Wassermann*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Erik Welch*</span></li>
<li><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Stefen Yin*</span></li>
</ul>
Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-29413317330950111252013-04-08T16:03:00.001-07:002013-04-08T16:04:34.421-07:00Google Summer of Code 2013SymPy was accepted by Google once again to participate in Google Summer of Code for 2013. Please go to <a href="http://www.google-melange.com/gsoc/org/google/gsoc2013/sympy">http://www.google-melange.com/gsoc/org/google/gsoc2013/sympy</a> for more information about how to apply and get started.Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-15209650873878967382012-10-19T21:26:00.001-07:002012-10-19T21:26:11.892-07:00SymPy 0.7.2 is released<br />
<br />
<div id="head" style="background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 10px; line-height: 14px; margin: 14px 0px 5px; overflow: hidden; padding: 5px 0px;">
<span style="font-size: 14px; line-height: 1.6;">SymPy 0.7.2 was released on October 16, 2012.</span></div>
<div id="wiki-content" style="background-color: white; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 10px; line-height: 14px; margin: 0px; padding: 0px;">
<div class="wrap" style="border: 0px; margin: 0px; padding: 0px;">
<div class="gollum-markdown-content instapaper_body" id="wiki-body" style="border: 0px; margin: 0px; padding: 0px;">
<div class="markdown-body" style="border: 0px; font-size: 14px; line-height: 1.6; margin: 0px; overflow: hidden; padding: 0px;">
<h2 style="-webkit-font-smoothing: antialiased; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: black; cursor: text; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Major Changes</h2>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Python 3 support</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
PyPy support</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Combinatorics</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes.</div>
<div style="border: 0px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Definite Integration</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Random Variables</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Matrix Expressions</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Sets</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Classical Mechanics</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Quantum Mechanics</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators.</div>
<div style="border: 0px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects.</div>
<div style="border: 0px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012</div>
<div style="border: 0px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved.</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Commutative Algebra</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new module <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">agca</code> was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc....</div>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Plotting Module</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following:</div>
<ul style="border: 0px; margin: 15px 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;">2D line plots</li>
<li style="border: 0px; margin: 0px; padding: 0px;">2D parametric plots.</li>
<li style="border: 0px; margin: 0px; padding: 0px;">2D implicit and region plots.</li>
<li style="border: 0px; margin: 0px; padding: 0px;">3D surface plots.</li>
<li style="border: 0px; margin: 0px; padding: 0px;">3D parametric surface plots.</li>
<li style="border: 0px; margin: 0px; padding: 0px;">3D parametric line plots.</li>
</ul>
<h3 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-size: 18px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Differential Geometry</h3>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">sympy.diffgeom</code>. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.</div>
<h2 style="-webkit-font-smoothing: antialiased; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: black; cursor: text; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Backwards compatibility breaks</h2>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
-The KroneckerDelta class was moved from sympy/physics/quantum/kronecker.py to sympy/functions/special/tensor_functions.py.</div>
<ul style="border: 0px; margin: 15px 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Merged the KroneckerDelta class in sympy/physics/secondquant.py with the class above.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The Dij class in sympy/functions/special/tensor_functions.py was replaced with KroneckerDelta.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The errors raised for invalid <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">float</code> calls on SymPy objects were changed in order to emulate more closely the errors raised by the standard library. The <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">__float__</code> and <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">__complex__</code> methods of <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">Expr</code> are concerned with that change.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">solve()</code> function returns empty lists instead of <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">None</code> objects if no solutions were found. Idiomatic code of the form<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">sol = solve(...); if sol:...</code> will not be affected by this change.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Piecewise no longer accepts a Set or Interval as a condition. One should explicitly specify a variable using Set().contains(x) to obtain a valid conditional.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The statistics module has been deprecated in favor of the new stats module.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
sympy/galgebra/GA.py:</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
set_main() is no longer needed</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
make_symbols() is deprecated (use sympy.symbols() instead)</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
the symbols used in this package are no longer broadcast to the main program</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The classes for Infinity, NegativeInfinity, and NaN no longer subclass from Rational. Creating a Rational with 0 in the denominator will still return one of these classes, however.</div>
</li>
</ul>
<h2 style="-webkit-font-smoothing: antialiased; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: black; cursor: text; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Other Changes</h2>
<ul style="border: 0px; margin: 15px 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new module <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">gaussopt</code> was added supporting the most basic constructions from Gaussian optics (ray tracing matrices, geometric rays and Gaussian beams).</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
New classes were added to represent the following special functions: classical and generalized exponential integrals (Ei, expint), trigonometric (Si, Ci) and hyperbolic integrals (Shi, Chi), the polylogarithm (polylog) and the Lerch transcendent (lerchphi). In addition to providing all the standard sympy functionality (differentiation, numerical evaluation, rewriting ...), they are supported by both the new meijerint module and the existing hypergeometric function simplification module.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
An ImmutableMatrix class was created. It has the same interface and functionality of the old Matrix but is immutable and inherits from Basic.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A new function in geometry.util named <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">centroid</code> was added which will calculate the centroid of a collection of geometric entities. And the polygon module now allows triangles to be instantiated from combinations of side lengths and angles (using keywords sss, asa, sas) and defines utility functions to convert between degrees and radians.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
In ntheory.modular there is a function (<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">solve_congruence</code>) to solve congruences such as "What number is 2 mod 3, 3 mod 5 and 2 mod 7?"</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
A utility function named <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">find_unit</code> has been added to physcis.units that allows one to find units that match a given pattern or contain a given unit.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
There have been some additions and modifications to Expr's methods:</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Although the problem of proving that two expressions are equal is in general a difficult one (since whatever algorithm is used, there will always be an expression that will slip through the algorithm) the new method of Expr named <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">equals</code> will do its best to answer whether A equals B: A.equals(B) might given True, False or None.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
coeff now supports a third argument <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">n</code> (which comes 2nd now, instead of <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">right</code>). This <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">n</code> is used to indicate the exponent on x which one seeks: <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">(x**2 + 3*x + 4).coeff(x, 1)</code> -> <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">3</code>. This makes it possible to extract the constant term from a polynomial:<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">(x**2 + 3*x + 4).coeff(x, 0)</code> -> <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">4</code>.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The method <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">round</code> has been added to round a SymPy expression to a given a number of decimal places (to the left or right of the decimal point).</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
divmod is now supported for all SymPy numbers.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
In the simplify module, the algorithms for denesting of radicals (sqrtdenest) and simplifying gamma functions (in combsimp) has been significantly improved.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The mathematica-similar <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">TableForm</code> function has been added to the printing.tableform module so one can easily generate tables with headings.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
In addition to the more noticeable changes listed above, there have been numerous smaller additions, improvements and bug fixes in the commits in this release. See the git log for a full list of all changes. The command <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">git log sympy-0.7.1..sympy-0.7.2</code> will show all commits made between this release and the last. You can also see the issues closed since the last release <a href="http://code.google.com/p/sympy/issues/list?can=1&q=closed-after%3A2011%2F7%2F30+closed-before%3A2012%2F8%2F23&sort=-closed&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary+Stars+Closed&cells=tiles" style="border: 0px; color: #4183c4; margin: 0px; padding: 0px; text-decoration: initial;">here</a>.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The expand API has been updated. <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">expand()</code> now officially supports arbitrary <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">_eval_expand_hint()</code> methods on custom objects.<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">_eval_expand_hint()</code> methods are now only responsible for expanding the top-level expression. All <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">deep=True</code> related logic happens in<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">expand()</code> itself. See the <a href="http://docs.sympy.org/0.7.2/modules/core.html#sympy.core.function.expand" style="border: 0px; color: #4183c4; margin: 0px; padding: 0px; text-decoration: initial;">docstring of <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">expand()</code></a> for more information and an example.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Two options were added to <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">isympy</code> to aid in interactive usage. <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">isympy -a</code> automatically creates symbols, so that typing something like<code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">a</code> will give <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">Symbol('a')</code>, even if you never typed <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">a = Symbol('a')</code> or <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">var('a')</code>. <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">isympy -i</code> automatically wraps integer literals with Integer, so that <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">1/2</code> will give <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">Rational(1, 2)</code> instead of <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">0.5</code>. <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">isympy -I</code> is the same as <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">isympy -a -i</code>. <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px 2px; padding: 0px 5px; white-space: nowrap;">isympy -I</code> makes isympy act much more like a traditional interactive computer algebra system. These both require IPython.</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The official documentation at <a href="http://docs.sympy.org/" style="border: 0px; color: #4183c4; margin: 0px; padding: 0px; text-decoration: initial;">http://docs.sympy.org</a> now includes an extension that automatically hooks the documentation examples in to<a href="http://live.sympy.org/" style="border: 0px; color: #4183c4; margin: 0px; padding: 0px; text-decoration: initial;">SymPy Live</a>.</div>
</li>
</ul>
<h2 style="-webkit-font-smoothing: antialiased; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-width: 0px 0px 1px; color: black; cursor: text; font-size: 24px; margin: 20px 0px 10px; padding: 0px; position: relative;">
Authors</h2>
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The following people contributed at least one patch to this release (names are given in alphabetical order by last name). A total of 103 people contributed to this release. People with a * by their names contributed a patch for the first time for this release; 77 people contributed for the first time for this release.</div>
<div style="border: 0px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Thanks to everyone who contributed to this release!</div>
<ul style="border: 0px; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 15px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;">Sanket Agarwal*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Swapnil Agarwal*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Bilal Akhtar*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Nathan Alison*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Steve Anton*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Takafumi Arakaki*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Chancellor Arkantos*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Manoj Babu K.*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tom Bachmann</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Oscar Benjamin</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Raoul Bourquin*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Christian Bühler*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Jorge E. Cardona*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Ondřej Čertík</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Puneeth Chaganti*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Roberto Colistete, Jr.*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Renato Coutinho</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Joan Creus*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Addison Cugini</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Guru Devanla*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Joseph Dougherty*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Comer Duncan*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Joachim Durchholz*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tarun Gaba*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Luis Garcia*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Gilbert Gede</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Arpit Goyal*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Brian E. Granger</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Alexey U. Gudchenko</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Alexandr Gudulin*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Matt Habel*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tristan Hume*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Kevin Hunter*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Gert-Ludwig Ingold*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Sachin Irukula*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Sergiu Ivanov*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Siddhant Jain*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Saurabh Jha*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Fredrik Johansson</li>
<li style="border: 0px; margin: 0px; padding: 0px;">David Ju*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Kendhia*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Andreas Kloeckner*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Carsten Knoll*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Piotr Korgul*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Marcin Kostrzewa*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Stefan Krastanov</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Priit Laes</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tim Lahey*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Ronan Lamy</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Nikolay Lazarov*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tomo Lazovich</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tobias Lenz*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">David Li*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Bharath M R*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Sam Magura</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Aleksandar Makelov*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Saptarshi Mandal</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Imran Ahmed Manzoor*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Shruti Mangipudi*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Davy Mao*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Miha Marolt*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">marshall2389*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Michael Mayorov*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Aaron Meurer</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Raphael Michel*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Jason Moore*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Ljubiša Moćić*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Angadh Nanjangud*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Natalia Nawara*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Jens H. Nielsen*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Sai Nikhil*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Ashwini Oruganti*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Prateek Papriwal*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Mateusz Paprocki</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Vladimir Perić</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Mario Pernici</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Luke Peterson</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Alexandr Popov*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Nicolas Pourcelot</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Martin Povišer*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Matt Rajca*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Julien Rioux*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Matthew Rocklin</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Nikhil Sarda</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Siddhanathan Shanmugam*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Stepan Simsa*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Sam Sleight*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Chris Smith</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Geoffry Song*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Andrew Straw</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Alexey Subach*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Grzegorz Świrski*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Prafullkumar P. Tale</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Matthias Toews*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">tsmars15*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Nichita Utiu*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Srinivas Vasudevan*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Sean Vig</li>
<li style="border: 0px; margin: 0px; padding: 0px;">vishal*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">George Waksman*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Luca Weihs</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Raymond Wong</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Jeremias Yehdegho</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Jim Zhang*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Tiffany Zhu*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">jerryma1121*</li>
<li style="border: 0px; margin: 0px; padding: 0px;">Rom le Clair*</li>
</ul>
<div>
<br /></div>
</div>
</div>
</div>
</div>
<div id="gollum-footer" style="background-color: white; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 12px; line-height: 19px; margin: 0px; padding: 0px;">
</div>
<br />
Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-12835836013920895592012-04-27T14:52:00.000-07:002012-04-27T14:52:26.283-07:00GSoC 2012 Results AnnouncedGoogle has announced the
results for Google Summer of Code. I am proud to announce that we got six
slots from Google. The following projects have been accepted:
<br><br>
(Project, Student, Mentor)<br>
- <a href="https://github.com/sympy/sympy/wiki/GSoC-2012-Application-Sergiu-Ivanov:-Category-Theory-Module">Category Theory Module</a>, Sergiu Ivanov, Tom Bachmann<br>
- <a href="https://github.com/sympy/sympy/wiki/GSoC-2012-Application-Guru-Devanla:-Density-Operators-for-Quantum-Module">Density Operators for Quantum Module in sympy.physics.quantum</a>, Guru
Devanla, Brian Granger (co-mentor Sean Vig)<br>
- <a href="https://github.com/sympy/sympy/wiki/GSoC-2012-Application-Angadh-Nanjangud:-sympy.physics.mechanics">Enhancements to sympy.physics.mechanics</a>, Angadh Nanjangud, Gilbert Gede<br>
- <a href="https://github.com/sympy/sympy/wiki/GSoC-2012-Application-Aleksandar-Makelov:-Group-theory">Group Theory</a>, Aleksandar Makelov, David Joyner (co-mentor Aaron Meurer)<br>
- <a href="https://github.com/sympy/sympy/wiki/GSoC-2012-Application-Bharath-M-R:-Plotting-Module">Implicit Plotting Module</a>, Bharath M R, Aaron Meurer<br>
- <a href="https://github.com/sympy/sympy/wiki/GSoC-2012-Application-Stefan-Krastanov:-Vector-Analysis">Vector Analysis</a>, Stefan Krastanov, Matthew Rocklin<br>
<br><br>
Join me in congratulating these students on their acceptance.
<br><br>
In case you don't know, Google Summer of Code is a program where Google pays
students to write code for open source projects. SymPy was accepted as a
mentoring organization this year. The goal of the program is to help the
students learn new skills, in particular in our case:
<br><br>
* contributing to opensource
* working with the community
* learn git, pull requests, reviews
* teach them how to review other's people patches
* do useful work for SymPy
* have fun, and encourage the students to stay around
<br><br>
To all the students who are accepted, you should be receiving an email from
your mentor soon to discuss how you will be communicating over the summer
about your project. You should meet with your mentor about once a week during
the summer to go over your progress. You should either meet on a public
channel (like IRC), or else post minutes of your meeting in some public
channel, so that the whole community can see your progress too.
<br><br>
Some of you may also be assigned a backup mentor or co-mentor. These people
will also help out in mentoring your project. If you have two mentors and one
is not available for something, or does not know the answer, you can ask your
co-mentor.
<br><br>
I would like all of us to strongly encourage students this summer to submit
pull requests early and often. This will go a long ways towards making sure
that you don't end the summer with a ton of code written that never gets
merged. Students should help review pull requests by other students, so that
we don't get bogged down reviewing so much code.
<br><br>
We also require that all students keep a weekly blog of their work over the
summer. If you don't already have a blog, you should start one. I recommend
using either Wordpress or Blogger (I personally use and prefer Wordpress
because it has a cleaner interface and lets you do $latex math$, but I
recommend you test out both). You can also use some other service too if you
like. The only requirement is that it has an RSS feed, so we can put it on
planet.sympy.org. Once you have set up your blog, send me the url so I can
add it there.
<br><br>
Starting on the week of May 21 (when the GSoC period officially begins), We
will expect you to have at least one blog post a week, describing your
progress for that week, or something interesting about your project. If you
don't have a post by the beginning of the day on Saturday, your mentor or I
will email you to remind you about it.
<br><br>
I invite other mentors who have
blogs to blog as well. And I encourage all community members to follow the
student blogs, so you can see their progress.
<br><br>
I would like to thank all the students who applied this year and everyone who
submitted a patch. We received way more feedback this year than we ever have
before. I would also like to thank all the mentors for helping review patches
and proposals.
<br><br>
This summer is looking to be another very productive one for SymPy, and I look
forward to it!Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-7986297232364800512012-03-16T13:54:00.002-07:002012-03-16T13:55:25.847-07:00Google Summer of Code 2012SymPy was accepted by Google once again to participate in Google Summer of Code for 2012. Please go to <a href="http://www.google-melange.com/gsoc/org/google/gsoc2012/sympy">http://www.google-melange.com/gsoc/org/google/gsoc2012/sympy</a> for more information about how to apply and get started.Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-845642913018441262011-12-12T16:03:00.000-08:002011-12-12T16:10:28.245-08:00Google Summer of Code 2011 Wrap-Up<span style="font-style:italic;">(Cross-posted on the <a href="http://google-opensource.blogspot.com/2011/12/students-add-to-sympy.html">Google Open Source Blog</a>)</span><br /><br /><a href="http://sympy.org/">SymPy</a> is a computer algebra system (CAS) written in pure Python. The core allows basic manipulation of expressions (like differentiation or expansion) and it contains many modules for common tasks (limits, integrals, differential equations, series, matrices, quantum physics, geometry, plotting, and code generation).<br /><br />SymPy has participated in the <span style="font-style:italic;"><a href="http://code.google.com/soc/">Google Summer of Code</a></span> program in previous years under the umbrellas of <a href="http://www.python.org/psf/">Python Software Foundation</a>, Portland State University, and the <a href="http://www.stsci.edu/portal/">Space Telescope Science Institute</a>, where we were very successful. In fact, several of our core developers, including four of the mentors from this year, started working with SymPy as Google Summer of Code students. This was our first year participating as a standalone organization, and we would like to share our experience.<br /><br />As part of the application process we required each student to submit a patch (as a GitHub pull request) that had to be reviewed and accepted. This allowed us to see that each applicant knew how to use git as well as communicate effectively during the review process.This also encouraged only serious applicants to apply. We had over 10 mentors available and we ended up with 9 students, all of whom were successful at final evaluations.<br /><br /><a href="http://nessgrh.wordpress.com/">Tom Bachmann</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Tom-Bachmann%3A-Definite-Integration">Definite Integration using Meijer G-functions</a>, mentored by Aaron Meurer<br /> Tom implemented an algorithm for computing symbolic definite integrals that uses so-called <a href="http://en.wikipedia.org/wiki/Meijer_g-function">Meijer G-functions</a>. This is the state-of-the-art algorithm for computing definite integrals, and indeed the results of his project are very impressive. This project has pushed SymPy forward a long way to becoming the strongest open source computer algebra system with respect to symbolic definite integration.<br /><br /><a href="http://vperic.blogspot.com/">Vladimir Peric</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application%3A-Vladimir-Peri%C4%87%3A-Porting-to-Python-3">Porting to Python 3</a>, mentored by Ronan Lamy<br /> Vladimir ported SymPy to work on Python 3 and ported all testing infrastructure so that SymPy gets regularly tested in Python 2.x, 3.2 and PyPy. Thanks to Vladimir’s work, the next version of SymPy, 0.7.2, which will hopefully be released later this year, will work in both Python 2 and Python 3, and it may support PyPy as well.<br /><br /><a href="http://gilbertgede.wordpress.com/">Gilbert Gede</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Gilbert-Gede%3A-PyDy">PyDy</a>, mentored by Luke Peterson<br /> Gilbert implemented a physics module to assist in generating symbolic equations of motion for complex multibody systems using Kane's Method. He expanded on the code written by his mentor, Luke, in 2009, and the module can now generate equations of motion for a bicycle. Gilbert also wrote very thorough documentation both for the Kane’s Method and the module in SymPy.<br /><br /><a href="http://lazovichsympy.wordpress.com/">Tomo Lazovich</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Tomo-Lazovich%3A-Position-and-Momentum-Bases-for-QM">Position and Momentum Bases for Quantum Mechanics</a>, mentored by Brian Granger<br /> Tomo has greatly improved the quantum mechanics module by implementing position/momentum representations for operators and eigenstates in various coordinate systems (including cartesian, cylindrical, and spherical) that allows you to easily represent many of the "textbook" quantum mechanics systems, including particle in a box, simple harmonic oscillator, hydrogen atom, etc.<br /><br /><a href="http://saptman.wordpress.com/">Saptarshi Mandal</a> - <a href="https://github.com/sympy/sympy/wiki/Gsoc-2011-report-saptarshi-mandal%3A-combinatorics-package-for-sympy">Combinatorics package for Sympy</a>, mentored by Christian Muise<br /> Saptarshi’s project was to mimic the various capabilities of Combinatorica, a Mathematica package for combinatorics. Most of the functionality involving elementary combinatorial objects such as Permutations, Partitions, Subsets, Gray codes and Prufer codes are complete.<br /><br /><a href="http://sherjilozair.wordpress.com/">Sherjil Ozair</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Sherjil-Ozair%3A-Symbolic-Linear-Algebra">Symbolic Linear Algebra</a>, mentored by Vinzent Steinberg<br /> Sherjil improved the speed of the linear algebra module by using efficient coefficient types for values of entries of matrices. Previously, SymPy used generic expressions in this place, which slowed down computations considerably and caused trouble with solving of the zero equivalence problem. He also implemented sparse matrix representation and unified the API with dense matrices. In addition, Sherjil also added a few linear algebra related algorithms (e.g. Cholesky decomposition).<br /><br /><a href="http://sympystats.wordpress.com/">Matthew Rocklin</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Matthew-Rocklin%3A-Random-Variables">SymPy Stats: Random Variables</a>, mentored by Andy Terrel<br /> Matthew improved the statistics module to use symbolics and introduced a Random Variable type, with support for finite, continuous, and multivariable normal random variables. With these you can symbolically compute things like probabilities of a given condition, conditional spaces, and expectation values. As a side consequence of this project, he also improved some of our Sets classes and implemented a MatrixExpr class, which allows you to compute with matrices symbolically, including computing with block matrices.<br /><br /><a href="http://seanvig.blogspot.com/">Sean Vig </a>- <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Sean-Vig-Symbolic-Clebsch-Gordon-coefficients%3AWigner-symbols-and-Implementing-Addition-of-Spin-Angular-Momenta">Symbolic Clebsch-Gordon coefficients/Wigner symbols and Implementing Addition of Spin Angular Momenta</a>, mentored by Ondřej Čertík<br /> Sean was working on the quantum mechanics module and has implemented symbolic Clebsch-Gordan coefficients, Wigner D function, and related mathematical concepts that are used very often in quantum physics when dealing with angular momentum and then the necessary classes to support coupled spin algebra.<br /><br /><a href="https://f1728.wordpress.com/">Jeremias Yehdegho</a> - <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Report-Jeremias-Yehdegho%3A-Implementing-F5">Implementing F5</a>, mentored by Mateusz Paprocki<br /> Jeremias worked on implementing algorithms related to <a href="http://en.wikipedia.org/wiki/Groebner_bases">Groebner bases</a>. Groebner bases are a useful tool in many areas of computer algebra. He implemented the F5B algorithm, which is an improved version of the classical Buchberger’s algorithm that was previously implemented in SymPy, and an algorithm for converting Groebner bases between different orders of monomials and worked on applications of Groebner bases. This allowed for handling problems of much larger size in SymPy.<br /><br />The full report can be found <a href="https://github.com/sympy/sympy/wiki/Gsoc-2011-report">here</a>, where each student wrote a wiki page about their experience during the summer and you can also find their blogs and links to applications. Each student was required to blog about their progress each week and all blogs were synchronized at <a href="http://planet.sympy.org/">planet.sympy.org</a>.<br /><br />In previous years, there was usually one student from each summer who became a regular contributor and also a mentor for the next year. It has been a rewarding experience for the whole SymPy community.Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-65911068981564683582011-07-29T22:11:00.000-07:002011-07-29T22:16:27.176-07:00SymPy 0.7.1 ReleasedSymPy 0.7.1 has been released on July 29, 2011. It is available at<br /><br /><a href="http://sympy.org<br />">http://sympy.org<br /></a><br /><br />The source distribution can be downloaded from:<br /><a href="http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.1.tar.gz">http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.1.tar.gz<br /></a><br /><br />You can get the Windows installer here:<br /><a href="http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.1.win32.exe<br />">http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.1.win32.exe<br /></a><br /><br />And the html documentation here:<br /><a href="http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.1-docs-html.zip<br />">http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.1-docs-html.zip<br /></a><br /><br /><span style="font-weight:bold;">About SymPy<br /></span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.<br /><br /><span style="font-weight:bold;">Release notes<br /></span><br /><br /><span style="font-weight:bold;">Major changes</span><br /><br />- Python 2.4 is no longer supported. SymPy will not work at all in<br /> Python 2.4. If you still need to use SymPy under Python 2.4 for some<br /> reason, you will need to use SymPy 0.7.0 or earlier.<br /><br />- The Pyglet plotting library is now an (optional) external dependency. <br /> Previously, we shipped a version of Pyglet with SymPy, but this was<br /> old and buggy. The plan is to eventually make the plotting in SymPy<br /> much more modular, so that it supports many backends, but this has not<br /> been done yet. For now, still only Pyglet is directly supported. <br /> Note that Pyglet is only an optional dependency and is only needed for<br /> plotting. The rest of SymPy can still be used without any dependencies<br /> (except for Python).<br /><br />- isympy now works with the new IPython 0.11.<br /><br />- mpmath has been updated to 0.17. See the corresponding mpmath release<br /> notes at http://mpmath.googlecode.com/svn/trunk/CHANGES.<br /><br />- Added a Subs object for representing unevaluated substitutions. This<br /> finally lets us represent derivatives evaluated at a point, i.e.,<br /> `diff(f(x), x).subs(x, 0)` returns `Subs(Derivative(f(_x), _x), (_x,), (0,))`.<br /> This also means that SymPy can now correctly compute the chain rule<br /> when this functionality is required, such as with `f(g(x)).diff(x)`.<br /><br /><span style="font-weight:bold;">Hypergeometric functions/Meijer G-Functions</span><br /><br />- Added classes hyper() and meijerg() to represent Hypergeometric and Meijer G-functions, respectively. They support numerical evaluation (using mpmath) and symbolic differentiation (not with respect to the parameters).<br /><br />- Added an algorithm for rewriting hypergeometric and meijer g-functions in terms of more familiar, named special functions. It is accessible via the function hyperexpand(), or also via expand_func(). This algorithm recognises many elementary functions, and also complete and incomplete gamma functions, bessel functions, and error functions. It can easily be extended to handle more classes of special functions.<br /><br /><span style="font-weight:bold;">Sets</span><br /><br />- Added FiniteSet class to mimic python set behavior while also interacting with existing Intervals and Unions<br /><br />- FiniteSets and Intervals interact so that, for example `Interval(0, 10) - FiniteSet(0, 5)` produces `(0, 5) U (5, 10]`<br /><br />- FiniteSets also handle non-numerical objects so the following is possible `{1, 2, 'one', 'two', {a, b}}`<br /><br />- Added ProductSet to handle Cartesian products of sets<br /><br />- Create using the `*` operator, i.e. `twodice = FiniteSet(1, 2, 3, 4, 5, 6) * FiniteSet(1, 2, 3, 4, 5, 6) or square = Interval(0, 1) * Interval(0, 1)`<br /><br />- pow operator also works as expected: `R3 = Interval(-oo, oo)**3 ; (3, -5, 0) in R3 == True`<br /><br />- Subtraction, union, measurement all work taking complex intersections into account. <br /><br />- Added as_relational method to sets, producing boolean statements using And, Or, Eq, Lt, Gt, etc...<br /><br />- Changed reduce_poly_inequalities to return unions of sets rather than lists of sets<br /><br /><br /><span style="font-weight:bold;">Iterables</span><br /><br />- Added generating routines for integer partitions and binary partitions. The routine for integer partitions takes 3 arguments, the number itself, the maximum possible element allowed in the partitions generated and the maximum possible number of elements that will be in the partition. Binary partitions are characterized by containing only powers of two.<br /><br />- Added generating routine for multi-set partitions. Given a multiset, the algorithm implemented will generate all possible partitions of that multi-set.<br /><br />- Added generating routines for bell permutations, derangements, and involutions. A bell permutation is one in which the cycles that compose it consist of integers in a decreasing order. A derangement is a permutation such that the ith element is not at the ith position. An involution is a permutation that when multiplied by itself gives the identity permutation.<br /><br />- Added generating routine for unrestricted necklaces. An unrestricted necklace is an a-ary string of n characters, each of a possible types. These have been characterized by the parameters n and k in the routine.<br /><br />- Added generating routine for oriented forests. This is an implementation of algorithm S in TAOCP Vol 4A.<br /><br /><span style="font-weight:bold;">xyz Spin bases</span><br /><br />- The represent, rewrite and InnerProduct logic has been improved to work between any two spin bases. This was done by utilizing the Wigner-D matrix, implemented in the WignerD class, in defining the changes between the various bases. Representing a state, i.e. `represent(JzKet(1,0), basis=Jx)`, can be used to give the vector representation of any get in any of the x/y/z bases for numerical values of j and m in the spin eigenstate. Similarly, rewriting states into different bases, i.e. `JzKet(1,0).rewrite('Jx')`, will write the states as a linear combination of elements of the given basis. Because this relies on the represent function, this only works for numerical j and m values. The inner product of two eigenstates in different bases can be evaluated, i.e. `InnerProduct(JzKet(1,0),JxKet(1,1))`. When two different bases are used, one state is rewritten into the other basis, so this requires numerical values of j and m, but innerproducts of states in the same basis can still be done symbolically.<br /><br />- The `Rotation.D` and `Rotation.d` methods, representing the Wigner-D function and the Wigner small-d function, return an instance of the WignerD class, which can be evaluated with the `doit()` method to give the corresponding matrix element of the Wigner-D matrix.<br /><br /><span style="font-weight:bold;">Other changes</span><br /><br />- We now use MathJax in our docs. MathJax renders LaTeX math entierly in<br /> the browser using Javascript. This means that the math is much more<br /> readable than the previous png math, which uses images. MathJax is<br /> only supported on modern browsers, so LaTeX math in the docs may not<br /> work on older browsers.<br /><br />- nroots() now lets you set the precision of computations<br /><br />- Added support for gmpy and mpmath's types to sympify()<br /><br />- Fix some bugs with lambdify()<br /><br />- Fix a bug with as_independent and non-commutative symbols.<br /><br />- Fix a bug with collect (issue 2516)<br /><br />- Many fixes relating to porting SymPy to Python 3. Thanks to our GSoC<br /> student Vladimir Perić, this task is almost completed.<br /><br />- Some people were retroactively added to the AUTHORS file.<br /><br />- Added a solver for a special case of the Riccati equation in the ODE<br /> module.<br /><br />- Iterated derivatives are pretty printed in a concise way.<br /><br />- Fix a bug with integrating functions with multiple DiracDeltas.<br /><br />- Add support for Matrix.norm() that works for Matrices (not just vectors).<br /><br />- Improvements to the Groebner bases algorithm.<br /><br />- Plot.saveimage now supports a StringIO outfile<br /><br />- Expr.as_ordered_terms now supports non lex orderings.<br /><br />- diff now canonicalizes the order of differentiation symbols. This is<br /> so it can simplify expressions like `f(x, y).diff(x, y) - f(x,<br /> y).diff(y, x)`. If you want to create a Derivative object without<br /> sorting the args, you should create it explicitly with `Derivative`,<br /> so that you will get `Derivative(f(x, y), x, y) != Derivative(f(x, y), y, x)`.<br /> Note that internally, derivatives that can be computed are always<br /> computed in the order that they are given in.<br /><br />- Added functions `is_sequence()` and `iterable()` for determining if<br /> something is an ordered iterable or normal iterable, respectively.<br /><br />- Enabled an option in Sphinx that adds a `source` link next to each function, which links to a copy of the source code for that function.<br /><br />In addition to the more noticeable changes listed above, there have been numerous other smaller additions, improvements and bug fixes in the ~300 commits in this release. See the git log for a full list of all changes. The command `git log sympy-0.7.0..sympy-0.7.1` will show all commits made between this release and the last. You can also see the issues closed since the last release [here](http://code.google.com/p/sympy/issues/list?can=1&q=closed-after%3A2010%2F6%2F13+closed-before%3A2011%2F7%2F30&sort=-closed&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary+Stars+Closed&cells=tiles).<br /><br /><span style="font-weight:bold;">Authors</span><br /><br />The following people contributed at least one patch to this release (names are given in alphabetical order by last name). A total of 26 people contributed to this release. People with a * by their names contributed a patch for the first time for this release. Five people contributed for the first time for this release. <br /><br />Thanks to everyone who contributed to this release!<br /><br />* Tom Bachmann<br />* Ondřej Čertík<br />* Renato Coutinho<br />* Bill Flynn<br />* Bradley Froehle*<br />* Gilbert Gede<br />* Brian Granger<br />* Emma Hogan*<br />* Yuri Karadzhov<br />* Stefan Krastanov*<br />* Ronan Lamy<br />* Tomo Lazovich<br />* Sam Magura*<br />* Saptarshi Mandal<br />* Aaron Meurer<br />* Sherjil Ozair<br />* Mateusz Paprocki<br />* Vladimir Perić<br />* Mario Pernici<br />* Nicolas Pourcelot<br />* Min Ragan-Kelley*<br />* Matthew Rocklin<br />* Chris Smith<br />* Vinzent Steinberg<br />* Sean Vig<br />* Thomas WieckiAaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-34665885213201138032011-06-29T00:46:00.000-07:002011-06-29T14:52:43.650-07:00SymPy 0.7.0 releasedSymPy 0.7.0 has been released on June 28, 2011. <span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:13px;">It is available at<br /><a href="http://sympy.org/" checklongurl="true" style="color: rgb(34, 85, 136); "><br />http://sympy.org</a><br /><br />The source distribution can be downloaded from:<br /><a href="http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.0.tar.gz" checklongurl="true" style="color: rgb(34, 85, 136); ">http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.0.tar.gz</a><br /><br />You can get the Windows installer here:<br /><a href="http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.0.win32.exe" checklongurl="true" style="color: rgb(34, 85, 136); ">http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.0.win32.exe</a><br /><br />And the html documentation here:<br /><a href="http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.0-docs-html.zip" checklongurl="true" style="color: rgb(34, 85, 136); ">http://code.google.com/p/sympy/downloads/detail?name=sympy-0.7.0-docs-html.zip</a></span><div><br /></div><div><span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:13px;"><span style="font-weight: bold; font-size:16px;">About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.<br /><span style=" ;font-size:16px;"><span class="Apple-style-span" style=" ;font-size:13px;"><span style=" ;font-size:16px;"><span style="font-weight: bold; "><br /></span></span></span></span></span></div><div><span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:13px;"><span style=" ;font-size:16px;"><span class="Apple-style-span" style=" ;font-size:13px;"><span style=" ;font-size:16px;"><span style="font-weight: bold; ">Changes since last stable release</span></span><br /></span></span></span></div><div><span class="Apple-style-span" style="font-family:helvetica, arial, freesans, clean, sans-serif;font-size:6;"><span class="Apple-style-span" style="font-size:22px;"><b><span class="Apple-style-span" style=" font-weight: normal; color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:13px;"><br /></span></b></span></span></div><div><span class="Apple-style-span" style="font-family:helvetica, arial, freesans, clean, sans-serif;font-size:6;"><span class="Apple-style-span" style="font-size:22px;"><b><span class="Apple-style-span" style=" font-weight: normal; color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:13px;">(from <a href="https://github.com/sympy/sympy/wiki/Release-Notes-for-0.7.0">https://github.com/sympy/sympy/wiki/Release-Notes-for-0.7.0</a>)</span></b></span></span></div><div><span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;"><b><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-weight: normal; line-height: 23px; font-family:helvetica, arial, freesans, clean, sans-serif;font-size:14px;"><h2 style="margin-top: 22px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 7px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: normal; border-top-width: 4px; border-top-style: solid; border-top-color: rgb(204, 204, 204); font-size: 22px; display: inline !important; "><br /></h2></span></b></span></div><div><span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;"><b><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-weight: normal; line-height: 23px; font-family:helvetica, arial, freesans, clean, sans-serif;font-size:14px;"><h2 style="margin-top: 22px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 7px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: normal; border-top-width: 4px; border-top-style: solid; border-top-color: rgb(204, 204, 204); font-size: 22px; display: inline !important; ">Backwards compatibility breaks</h2></span></b></span></div><div><span class="Apple-style-span" style="font-family:'Trebuchet MS', Verdana, Arial, sans-serif;color:#333333;"><span class="Apple-style-span" style="line-height: 18px;"><b><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-weight: normal; line-height: 23px; font-family:helvetica, arial, freesans, clean, sans-serif;font-size:14px;"><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">This will be the last release of SymPy to support Python 2.4. Dropping support for Python 2.4 will let us move forward with things like supporting Python 3, and will let us use things that were introduced in Python 2.5, like with-statement context managers.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">no longer support creating matrices without brackets (see: issue 930)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Renamed <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sum()</code> to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">summation()</code> (see: 3e763a8, issues 1376, 1727). This was changed so that it no longer overrides the built-in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sum()</code>. The unevaluated summation is still called <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Sum()</code>.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Renamed <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">abs()</code> to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Abs()</code> (see: 64a12a4, issue 1727). This was also changed so that it no longer overrides the built-in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">abs()</code>. Note that because of <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">__abs__</code> magic, you can still do <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">abs(expr)</code> with the built-in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">abs()</code>, and it will return <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Abs(expr)</code>.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Renamed <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">max_()</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">min_()</code> to now <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Max()</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Min()</code> (see: 99a271e, issue 2153)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Changed behaviour of <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">symbols()</code>. <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">symbols('xyz')</code> gives now a single symbol (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">'xyz'</code>), not three (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">'x'</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">'y'</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">'z'</code>) (see: f6452a8). Use<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">symbols('x,y,z')</code> or <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">symbols('x y z')</code> to get three symbols. The 'each_char' option will still work but is being deprecated.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Split class <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Basic</code> into new classes <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Expr</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Boolean</code> (see: a0ab479, 635d89c). Classes that are designed to be part of standard symbolic expressions (like <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">x**2*sin(x)</code>) should subclass from <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Expr</code>. More generic objects that do not work in symbolic expressions but still want the basic SymPy structure like <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">.args</code> and basic methods like <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">.subs()</code> should only subclass from <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Basic</code>.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">as_basic()</code> method was renamed to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">as_expr()</code> to reflect changes in the core (see: e61819d, 80dfe91)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Methods <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">as_coeff_terms</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">as_coeff_factors</code> were renamed to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">as_coeff_mul</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">as_coeff_add</code>, respectively.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Removed the <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">trim()</code> function. The function is redundant with the new polys (see below). Use the <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">cancel()</code> function instead.</li></ul><h2 style="margin-top: 22px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 7px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: normal; border-top-width: 4px; border-top-style: solid; border-top-color: rgb(204, 204, 204); font-size: 22px; ">Major Changes</h2><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Polys</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">New internal representations of dense and sparse polynomials (see: 6aecdb7, 31c9aa4)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented algorithms for real and complex root isolation and counting (see: 3acac67, 4b75dae, fa1206e, 103b928, 45c9b22, 8870c8b, b348b30)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improved Gröbner bases algorithm (see: ff65e9f, 891e4de, 310a585)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Field isomorphism algorithm (see: b097b01, 08482bf)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented efficient orthogonal polynomials (see: b8fbd59)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added configuration framework for polys (see: 33d8cdb, 7eb81c9)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Function for computing minimal polynomials (see: 88bf187, f800f95)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Function for generating Viete's formulas (see: 1027408)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">roots()</code> supports more classes of polynomials (e.g. cyclotomic) (see: d8c8768, 75c8d2d)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added a function for recognizing cyclotomic polynomials (see: b9c2a9a)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added a function for computing Horner form of polynomials (see: 8d235c7)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added a function for computing symmetric reductions of polynomials (see: 6d560f3)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added generators of Swinnerton-Dyer, cyclotomic, symmetric, random and interpolating polynomials (see: dad03dd, 6ccf20c, dc728d6, 2f17684, 3004db8)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added a function computing isolation intervals of algebraic numbers (see: 37a58f1)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Polynomial division (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">div()</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">rem()</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">quo()</code>) now defaults to a field (see: a72d188)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added wrappers for numerical root finding algorithms (see: 0d98945, f638fcf)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added symbolic capabilities to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">factor()</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sqf()</code> and related functions (see: d521c7f, 548120b, f6f74e6, b1c49cd, 3527b64)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">together()</code> was significantly improved (see: dc327fe)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added support for iterable containers to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">gcd()</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">lcm()</code> (see: e920870)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added a function for constructing domains from coefficient containers (see: a8f20e6)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented greatest factorial factorization (see: d4dbbb5)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added partial fraction decomposition algorithm based on undetermined coefficient approach (see: 9769d49, 496f08f)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">RootOf</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">RootSum</code> were significantly improved (see: f3e432, 4c88be6, 41502d7)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added support for gmpy (GNU Multiple Precision Arithmetic Library) (see: 38e1683)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Allow to compile <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.polys</code> with Cython (see: afb3886)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improved configuration of variables in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Poly</code> (see: 22c4061)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added documentation based on Wester's examples (see: 1c23792)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Irreducibility testing over finite fields (see: 17e8f1f)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Allow symmetric and non-symmetric representations over finite fields (see: 60fbff4)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">More consistent factorization forms from <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">factor()</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sqf()</code> (see: 5df77f5)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added support for automatic recognition algebraic extensions (see: 7de602c)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented Collins' modular algorithm for computing resultants (see: 950969b)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented Berlekamp's algorithm for factorization over finite fields (see: 70353e9)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented Trager's algorithm for factorization over algebraic number fields (see: bd0be06)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improved Wang's algorithm for efficient factorization of multivariate polynomials (see: 425e225)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Quantum</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Symbolic, abstract dirac notation in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum</code>. This includes operators, states (bras and kets), commutators, anticommutators, dagger, inner products, outer products, tensor products and Hilbert spaces</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Symbolic quantum computing framework that is based on the general capabilities in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum</code>. This includes qubits (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.qubit</code>), gates (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.gate</code>), Grover's algorithm (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.grover</code>), the quantum Fourier transform (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.qft</code>), Shor's algorithm (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.shor</code>) and circuit plotting (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.circuitplot</code>)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Second quantization framework that inclues creation/anihilation operators for both Fermions and Bosons and Wick's theorem for Fermions (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.secondquant</code>).</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Symbolic quantum angular momentum (spin) algebra (<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.physics.quantum.spin</code>)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Hydrogen wave functions (Schroedinger) and energies (both Schroedinger and Dirac)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Wave functions and energies for 1D harmonic oscillator</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Wave functions and energies for 3D spherically symmetric harmonic oscillator</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Wigner and Clebsch Gordan coefficients</li></ul><h2 style="margin-top: 22px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 7px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: normal; border-top-width: 4px; border-top-style: solid; border-top-color: rgb(204, 204, 204); font-size: 22px; ">Everything else</h2><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implement symarray, providing numpy nd-arrays of symbols.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">update mpmath to 0.16</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Add a tensor module (see: <a href="http://code.google.com/p/sympy/wiki/CodeGenerationReport" checklongurl="true" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(65, 131, 196); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">http://code.google.com/p/sympy/wiki/CodeGenerationReport</a>)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">A lot of stuff was being imported with <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">from sympy import *</code> that shouldn't have been (like <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sys</code>). This has been fixed.</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Assumptions:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Refine</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added predicates (see: 7c0b857, 53f0e1a, d1dd6a3..)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added query handlers for algebraic numbers (see: f3bee7a)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implement a SAT solver (see: <a href="http://code.google.com/p/sympy/wiki/SuperchargingAssumptionsReport" checklongurl="true" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(65, 131, 196); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">http://code.google.com/p/sympy/wiki/SuperchargingAssumptionsReport</a>, 2d96329, acfbe75, etc.)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Concrete</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Finalized implementation of Gosper's algorithm (see: 0f187e5, 5888024)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Removed redundant <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Sum2</code> and related classes (see: ef1f6a7)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Core:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Split <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Atom</code> into <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Atom</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">AtomicExpr</code> (see: 965aa91)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Various <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympify()</code> improvements</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added functionality for action verbs (many functions can be called both as global functions and as methods e.g. <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">a.simplify() == simplify(a)</code>)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improve handling of rational strings (see: 053a045, issue 1778)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Major changes to factoring of integers (see: 273f450, issue 2003)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Optimized <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">.has()</code> (see: c83c9b0, issue 1980; d86d08f)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improvements to power (see: c8661ef, issue 1963)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added range and lexicographic syntax to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">symbols()</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">var()</code> (see: f6452a8, 9aeb220, 957745a)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">modulus</code> argument to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">expand()</code> (see: 1ea5be8)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Allow to convert <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Interval</code> to relational form (see: 4c269fe)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">SymPy won't manipulate minus sign of expressions any more (see: 6a26941, 9c6bf0f, e9f4a0a)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Real</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">.is_Real</code> were renamed to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Float</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">.is_Float</code>. <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Real</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">.is_Real</code> still remain as deprecated shortcuts to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Float</code> and<code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">is_Float</code> for backwards compatibility. (see: abe1c49)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Methods coeff and as_coefficient are now non-commutative aware. (see a4ea170)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Geometry:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Various improvements to Ellipse</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Updated documentation to numpy standard</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Polygon and Line improvements</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Allow all geometry objects to accept a tuple as <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">Point</code> args</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Integrals:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Various improvements (see eg. issues 1772, 1999, 1992, 1987.. etc)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">isympy</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Fixed the <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">-p</code> switch (see: e8cb04a)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Caching can be disabled using <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">-C</code> switch (see: 0d8d748)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Ground types can be set using <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">-t</code> switch (see: 75734f8)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Printing ordering can be set using <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">-o</code> switch (see: fcc6b13, 4ec9dc5)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Logic</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">implies object adheres to negative normal form</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Create new boolean class, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">logic.boolalg.Boolean</code></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added XOR operator (^) support</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added If-then-else (ITE) support</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added the dpll algorithm</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Functions:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added Piecewise, B-splines</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Spherical Bessel function of the second kind implemented</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Add series expansions of multivariate functions (see: d4d351d)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Matrices:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Add elementwise product (Hadamard product)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Extended QR factorization for general full ranked mxn matrices</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Remove deprecated functions <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">zero()</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">zeronm()</code>, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">one()</code> (see: 5da0884)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added cholesky and LDL factorizations, and respective solves.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added functions for efficient triangular and diagonal solves.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">SMatrix</code> was renamed to <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">SparseMatrix</code> (see: acd1685)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Physics</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">See the Quantum section</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Printing:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented pretty printing of binomials (see: 58c1dad)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented pretty printing of Sum() (see: 84f2c22, 95b4321)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">sympy.printing</code> now supports ordering of terms and factors (see: 859bb33)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Lexicographic order is now the default. Now finally things will print as <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">x**2 + x + 1</code> instead of <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">1 + x + x**2</code>, however series still print using reversed ordering, e.g. <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">x - x**3/6 + O(x**5)</code>. You can get the old order (and other orderings) by setting the <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">-o</code> option to isympy (see: 08b4932, a30c5a3)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Series:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implement a function to calculate residues, <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">residue()</code></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implement nseries and lseries to handle <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">x0 != 0</code>, series should be more robust now (see: 2c99999, issues 2122-2124)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improvements to Gruntz algorithm</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Simplify:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">use()</code> (see: 147c142)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">ratsimp()</code> now uses <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">cancel()</code> and <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">reduced()</code> (see: 108fb41)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Implemented EPath (see: 696139d, bf90689)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">a new keyword <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">rational</code> was added to nsimplify which will replace Floats with Rational approximations. (see: 053a045)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Solvers:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">ODE improvements (see: d12a2aa, 3542041; 73fb9ac)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added support for solving inequalities (see: 328eaba, 8455147, f8fcaa7)</li></ul><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 26px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 26px; font-size: 16px; ">Utilities:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Improve cartes, for generating the Cartesian product (see: b1b10ed)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Added a function computing topological sort of graphs (see: b2ce27b)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Allow to setup a customized printer in <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">lambdify()</code> (see: c1ad905)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">flatten()</code> was significantly improved (see: 31ed8d7)</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Major improvements to the Fortran code generator (see: <a href="http://code.google.com/p/sympy/wiki/CodeGenerationReport" checklongurl="true" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(65, 131, 196); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">http://code.google.com/p/sympy/wiki/CodeGenerationReport</a>, 3383aa3, 7ab2da2, etc.)</li></ul><p style="margin-top: 16px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">In addition to the more noticeable changes listed above, there have been numerous other smaller additions, improvements and bug fixes in the ~2000 commits in this release. See the git log for a full list of all changes. The command <code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/normal 'Bitstream Vera Sans Mono', Courier, monospace; line-height: 1.4em; background-color: rgb(248, 248, 248); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(222, 222, 222); border-right-color: rgb(222, 222, 222); border-bottom-color: rgb(222, 222, 222); border-left-color: rgb(222, 222, 222); font-size: 13px; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-left-radius: 3px 3px; ">git log sympy-0.6.7..sympy-0.7.0</code> will show all commits made between this release and the last. You can also see the issues closed since the last release <a href="http://code.google.com/p/sympy/issues/list?can=1&q=closed-after%3A2010%2F3%2F17+closed-before%3A2011%2F6%2F13&sort=-closed&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary+Stars+Closed&cells=tiles" checklongurl="true" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(65, 131, 196); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; ">here</a>.</p><h2 style="margin-top: 22px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 7px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: normal; border-top-width: 4px; border-top-style: solid; border-top-color: rgb(204, 204, 204); font-size: 22px; ">Authors</h2><p style="margin-top: 16px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">The following people contributed at least one patch to this release (names are given in alphabetical order by last name). A total of 64 people contributed to this release. People with a * by their names contributed a patch for the first time for this release. Thirty-seven people contributed for the first time for this release. Over half of the people who contributed to this release contributed for the first time!</p><p style="margin-top: 16px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Thanks to everyone who contributed to this release!</p><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 20px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Tom Bachmann*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Tomas Bambas*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Matthew Brett*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Ondřej Čertík</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Renato Coutinho</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Addison Cugini*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Matt Curry*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Raffaele De Feo*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Mark Dewing</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Thomas Dixon*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Harold Erbin</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Pavel Fedotov*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Gilbert Gede*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Oleksandr Gituliar*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Brian Granger</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Alexey U. Gudchenko*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Øyvind Jensen</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Fredrik Johansson</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Felix Kaiser</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Yuri Karadzhov*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Gary Kerr*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Kibeom Kim*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Nicholas J.S. Kinar*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Anatolii Koval*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Sebastian Krämer</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Ryan Krauss</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Gregory Ksionda*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Priit Laes</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Vladimir Lagunov</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Ronan Lamy</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Tomo Lazovich*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Saptarshi Mandal*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">David Marek</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Jack McCaffery*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Benjamin McDonald*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Aaron Meurer</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Christian Muise*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Óscar Nájera*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Jezreel Ng*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Sherjil Ozair*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Mateusz Paprocki</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">James Pearson</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Fernando Perez</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Vladimir Perić*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Mario Pernici*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Nicolas Pourcelot</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">rayman*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Matthew Rocklin*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Christian Schubert</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Andre de Fortier Smit*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Chris Smith</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Cristóvão Sousa*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Akshay Srinivasan</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Vinzent Steinberg</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Prafullkumar P. Tale*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Andy R. Terrel</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Kazuo Thow*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Toon Verstraelen</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Sean Vig*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Luca Weihs*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Thomas Wiecki</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Shai 'Deshe' Wyborski*</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; ">Jeremias Yehdegho*</li></ul></span></b></span></span></div>Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com2tag:blogger.com,1999:blog-2520472460430880330.post-7756613916526165072011-04-27T12:41:00.000-07:002011-04-27T12:46:21.170-07:00Accepted GSoC Students Announced<div>So Google has announced the results of <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2011">Google Summer of Code</a>. I am proud to announce that we got nine slots from Google. The following projects have been accepted: </div><div><br /></div><div><em>(Project, Student, Mentor, Link to proposal on the wiki) </em></div><em></em><div></div><div><ul><li>Definite Integration using Meijer G-functions, Tom Bachmann, Aaron Meurer, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Tom-Bachmann%3A-Definite-Integration">Proposal</a></li><li>PyDy, Gilbert Gede, Luke Peterson, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Gilbert-Gede%3A-PyDy">Proposal</a></li><li>Position and Momentum Bases for Quantum Mechanics, Tomo Lazovich, Brian Granger, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Tomo-Lazovich%3A-Position-and-Momentum-Bases-for-QM">Proposal</a></li><li>Combinatorics package for Sympy, Saptarshi Mandal, Christian Muise, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Saptarshi-Mandal">Proposal</a></li><li>Symbolic Linear Algebra, Sherjil Ozair, Vinzent Steinberg, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Sherjil-Ozair:-Symbolic-Linear-Algebra">Proposal</a></li><li>Porting to Python 3, Vladimir Perić, Ronan Lamy, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application%3A-Vladimir-Peri%C4%87%3A-Porting-to-Python-3">Proposal</a></li><li>SymPy Stats: Random Variables, Matthew Rocklin, Andy Terrel, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Matthew-Rocklin%3A-Random-Variables">Proposal</a></li><li>Symbolic Clebsch-Gordon coefficients/Wigner symbols and Implementing Addition of Spin Angular Momenta, Sean Vig, Ondřej Čertík, <a href="https://github.com/sympy/sympy/wiki/GSoC%202011%20Application%20Sean%20Vig">Proposal</a></li><li>Implementing F5, Jeremias Yehdegho, Mateusz Paprocki, <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Jeremias-Yehdegho%3A-Implementing-F5">Proposal</a></li></ul></div><div><br /></div><div>Join me in congratulating these students on their acceptance. </div><div>In case you don't know for some reason, Google Summer of Code is a program where Google pays students to write code for open source projects. SymPy was accepted as a mentoring organization this year. The goal of the summer is to help the students learn new skills, in particular in our case: </div><div><ul><li> contributing to open source </li><li> working with the community </li><li> learn git, pull requests, reviews </li><li> teach them how to review other's people patches </li><li> do useful work for SymPy </li><li> have fun, and encourage the students to stay around </li></ul></div><div><br /></div><div>Also see the <a href="http://sympy.blogspot.com/2011/03/sympy-is-google-summer-of-code-2011.html">previous blog post</a> about it.</div>Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-52661410659351109482011-03-18T20:12:00.001-07:002011-03-18T20:12:59.345-07:00SymPy is a Google Summer of Code 2011 Mentoring Organization<div>I am proud to announce that SymPy has been accepted as a mentoring organization for Google Summer of Code 2011. This is great news for the project. Although we have participated in the past under the umbrella of the Python Software Foundation and Portland State University mentoring organizations, this is the first time that we have been accepted as a mentoring organization. Out of 417 organizations that applied to Google, 175 were accepted, 50 of which were new.</div><div><br /></div><div>In case you don't know, Google Summer of Code is a program run by Google every year where they pay college students all around the world to write code for open source projects. Each student has a mentor assigned to him/her, who helps the student get started with interacting with open source (most students who are accepted have never participated in open source before). </div><div><br /></div><div>So now that were are accepted, students are open to applications. The actual application period opens on March 28, and closes on April 8 (see <a href="http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline">the program timeline</a>).</div><div><br /></div><div>To students:</div><div><br /></div><div>If you are interested in applying, please write the to mailing list and introduce yourself. The program is open to anyone worldwide who is 18 years of age or older who is enrolled in a higher education institution (this includes undergraduate and graduate). If you are interested in applying, here is what you should do (if you have not already):</div><div><br /></div><div>- As I said above, write to the list and introduce yourself. You might also join our IRC channel, which is #sympy on freenode.</div><div><br /></div><div>- Start thinking about what you want to apply to do. See our <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Ideas">ideas page</a>. However, we are open to ideas that are not on that page. Anything that fits in a computer algebra system would fit in SymPy. If you have an idea not on that page, please discuss it on our mailing list, so we can see if it has not already be implemented, and if it is fitting for SymPy and for a project. I recommend you apply to do something that you are interested in personally.</div><div><br /></div><div>- We require for any student to be accepted that he/she submit at least one patch to SymPy, which gets reviewed and pushed in. See <a href="http://code.google.com/p/sympy/issues/list?can=2&q=label%3AEasyToFix">issues labeled EasyToFix in our issue tracker</a> for some easy to fix issues that are a good place to start. Don't worry if you do not know how to send in a patch or use git. We will help you (that is the whole point of the program). Just ask on the mailing list, on the issue page, or on IRC.</div><div><br /></div><div>- You should start thinking about your application. See our <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-Application-Template">application template</a> (it will also be at our page on the Google site). If you like, you can start a page on our wiki to write your proposal. If you do this, we will help you edit it (though understand that we will not help you write it). Remember that we want you to get accepted just as much as you do, so you can help improve SymPy!</div><div><br /></div><div>To SymPy developers:</div><div><br /></div><div>- We need people who are willing to mentor students. If you are willing to mentor, please add your name to the bottom of the <a href="https://github.com/sympy/sympy/wiki/GSoC-2011-ideas">ideas page</a>. </div><div><br /></div><div>- Please edit the ideas page to improve formatting and add new ideas.</div><div><br /></div><div>Good luck to all students who plan on applying!</div>Aaron Meurerhttp://www.blogger.com/profile/07681610358074038422noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-84436568630083178712009-12-28T13:23:00.000-08:002009-12-28T13:57:46.546-08:00SymPy 0.6.6 releasedSymPy 0.6.6 has been released on December 20, 2009. It is available at<br /><a href="http://sympy.org/"><br />http://sympy.org</a><br /><br />The source distribution can be downloaded from:<br /><a href="http://sympy.googlecode.com/files/sympy-0.6.6.tar.gz">http://sympy.googlecode.com/files/sympy-0.6.6.tar.gz</a><br /><br />You can get the Windows installer here:<br /><a href="http://sympy.googlecode.com/files/sympy-0.6.6.win32.exe">http://sympy.googlecode.com/files/sympy-0.6.6.win32.exe</a><br /><br />And the html documentation here:<br /><a href="http://sympy.googlecode.com/files/sympy-0.6.6-docs-html.zip">http://sympy.googlecode.com/files/sympy-0.6.6-docs-html.zip</a><br /><br /><span style="font-weight: bold;font-size:130%;" >About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.<br /><span style="font-size:130%;"><br /><span style="font-weight: bold;">Changes since last stable release</span></span><br /><br /><ul><li><a name="0.6.6">many documentation improvements, including docstrings and doctests </a></li><li><a name="0.6.6">new assumptions system (GSoC) (See </a><a href="http://docs.sympy.org/modules/assumptions.html" rel="nofollow">assumptions documentation</a> for more information or have a look at <a href="http://fseoane.net/blog/?cat=16" rel="nofollow">Fabian's blog</a>.) </li><ul><li>Note: This is going to replace the old assumption system. It is encouraged to use it for new code, however it is not completely finished and parts of sympy have yet to be rewritten to use it; this scheduled for the 0.7 release. </li></ul><li>improvements to test runner </li><li>printing improvements (especially LaTeX, but also mathml and pretty printing) </li><li>discriminant of polys </li><li>block diagonal methods for matrices </li><li>vast improvements to solving of ODEs (GSoC) (See <a href="http://docs.sympy.org/modules/solvers/ode.html" rel="nofollow">ODE documentation</a> for full details or <a href="http://asmeurersympy.wordpress.com/" rel="nofollow">Aaron's blog</a>). </li><li>logcombine function </li><li>improvements to sets </li><li>better trigonometric simplification </li><li>improvements to piecewise functions </li><li>improvements to solve() and nsolve() </li><li>improvements to as_numer_denom() </li><li>much better quartic and cubic polynomial rootfinding </li><li>code refactoring and cleanup </li><li>physics: coupled clusters and wick expansion </li><li>matrices: symbolic QR solving </li><li>mpmath updated </li><li>pyglet updated </li><li>many, many bug fixes and small improvements </li></ul><p>The following 22 people have contributed patches to this release (sorted alphabetically): </p><ul><li>Aaron Meurer </li><li>Alan Bromborsky </li><li>Andy R. Terrel </li><li>Bill Flynn </li><li>Chris Smith </li><li>Eh Tan </li><li>Fabian Pedregosa </li><li>Fredrik Johansson </li><li>Jorn Baayen </li><li>Julio Idichekop Filho </li><li>Kevin Goodsell </li><li>Łukasz Pankowski </li><li>Luke Peterson </li><li>Øyvind Jensen </li><li>Ondrej Certik </li><li>Oscar Benjamin </li><li>Priit Laes </li><li>Renato Coutinho </li><li>Ronan Lamy </li><li>Ryan Krauss </li><li>Ted Horst </li><li>Toon Verstraelen </li><li>Vinzent Steinberg </li></ul><p>The following 10 people helped reviewing patches: </p><ul><li>Aaron Meurer </li><li>Andy R. Terrel </li><li>Chris Smith </li><li>Fabian Pedregosa </li><li>Fredrik Johansson </li><li>Luke Peterson </li><li>Mateusz Paprocki </li><li>Ondrej Certik </li><li>Ronan Lamy </li><li>Vinzent Steinberg </li></ul>Vinzent Steinberghttp://www.blogger.com/profile/17005741759941625219noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-18524897513731050712009-07-16T15:01:00.000-07:002009-07-16T15:09:44.732-07:00SymPy 0.6.5 releasedSymPy 0.6.5 has been released on July 17, 2009. It is available at<br /><br /><a href="http://sympy.org">http://sympy.org</a><br /><br />Source distribution can be downloaded from<br /><a href="http://sympy.googlecode.com/files/sympy-0.6.5.tar.gz">http://sympy.googlecode.com/files/sympy-0.6.5.tar.gz</a><br /><br />Windows binaries can be downloaded from<br /><a href="http://sympy.googlecode.com/files/sympy-0.6.5.win32.exe">http://sympy.googlecode.com/files/sympy-0.6.5.win32.exe</a><br /><br /><br /><span style="font-weight: bold;font-size:130%;" >About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br /><br /><span style="font-weight: bold;font-size:130%;" >Changes since last stable release</span><br /><br />This release has been marked by improved documentation,<br />C code generation, solve and dsolve improvements, mpath update, a new<br />logic module and the start of Google's Summer of Code program.<br /><br /><br />Major changes include:<br /><br /> - Geometric Algebra Improvements<br /> - Upgrade GA module with left and right contraction operations<br /> - Add intersection test for the vertical segment,<br /> reimplementation of convex_hull (Florian Mickler)<br /><br /> - Implement series() as function (Barry Wardell)<br /><br /> - Core improvements<br /> - Refactor Number._eval_power (Fabian Pedregosa)<br /> - fix bugs in Number._eval_power (Chris Smith)<br /><br /> - Matrix improvements:<br /> - Improve jacobian function, introduce vec and vech (Ben<br />Goodrich)<br /><br /><br /> - Solver improvements:<br /> - solutions past linear factor found in tsolve (Chris Smith)<br /> - refactor sympy.solvers.guess_solve_strategy (Fabian Pedregosa)<br /> - Small cleanups to the ODE solver and tests. (Priit Laes)<br /> - Fix corner case for Bernoulli equation. (Priit Laes)<br /><br /><br /> - Improvements on partial differential equations solvers (Priit<br />Laes)<br /> - Added separation of variables for PDEs (Priit Laes)<br /><br /><br /> - Expand improvements (Aaron Meurer)<br /> - Refactoring<br /> - exp(x)*exp(y) is no longer automatically combined into<br /> exp(x+y), use powsimp for that<br /><br /><br /> - Documentation improvements:<br /> - Test also documentation under doc/ (Fabian Pedregosa)<br /> - Added many docstrings<br /> - Fix Sphinx complaints/warnings/errors (Priit Laes)<br /> - Doctest coverage (Ondrej Certik)<br /><br /><br /> - New logic module (Fabian Pedregosa)<br /> - Efficient DPLL algorithm (Fabian Pedregosa)<br /><br /><br /> - LaTeX printer improvements:<br /> - Handle standard form in the LaTeX printer correctly (Freddie<br />Witherde)<br /> - Latex: _print_Mul fix (issue 1282) (Nicolas Pourcelot)<br /> - Robust printing of latex sub and superscripts (Toon Verstraelen)<br /> - sorting _print_Add output using a main variable (Ryan Krauss)<br /> - Matrix printing improvements (Ryan Krauss)<br /><br /><br /> - MathML printing improvements:<br /> - MathML's printer extended (Thomas Sidoti)<br /><br /><br /> - Testing framework improvements<br /> - Make tests pass without the "py" module (Ondrej Certik)<br /><br /><br /> - Polynomial module improvements:<br /> - Fixed subresultant PRS computation and ratint() (Mateusz<br />Paprocki)<br /> - Removed old module sympy.polynomials (Priit Laes)<br /><br /><br /> - limit fixes:<br /> Compute the finite parts of the limit of a sum by direct<br />substitution (Ronan Lamy)<br /><br /><br /> - Test coverage script (Ronan Lamy)<br /><br /><br /> - Code quality improvements (remove string exceptions, code quality<br />test improvements) (Tomasz Buchert)<br /><br /><br /> - C code generation (Toon Verstraelen)<br /><br /><br /> - Update mpmath (Fredrik Johansson, Vinzent Steinberg)<br /><br /><br />The following people submitted code for this release (sorted by number<br />of patches):<br /><br /> * Fabian Pedregosa<br /> * Ondrej Certik<br /> * Priit Laes<br /> * Vinzent Steinberg<br /> * Toon Verstraelen<br /> * Tomasz Buchert<br /> * Nicolas Pourcelot<br /> * Aaron Meurer<br /> * Florian Mickler<br /> * Jochen Voss<br /> * Alan Bromborsky<br /> * Barry Wardell<br /> * Riccardo Gori<br /> * Chris Smith<br /> * Freddie Witherden<br /> * Ben Goodrich<br /> * Ronan Lamy<br /> * Akshay Srinivasan<br /> * Johann Cohen-Tanugi<br /> * Luke Peterson<br /> * Mateusz Paprocki<br /> * Ted Horst<br /> * Thomas Sidoti<br /> * Vinay KumarFabian Pedregosahttp://www.blogger.com/profile/15116991638670403230noreply@blogger.com4tag:blogger.com,1999:blog-2520472460430880330.post-28279632789869671742009-04-05T01:12:00.000-07:002009-04-05T01:22:35.105-07:00SymPy 0.6.4 releasedSymPy 0.6.4 has been released on April 4, 2009. It is available at<br /><br />http://code.google.com/p/sympy/<br /><br />About SymPy<br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br />Major changes in this release:<br /><br /><ul><li>robust and fast (still pure Python) multivariate factorization</li><li>sympy works with pickle protocol 2 (thus works in ipython parallel)</li><li>./sympy test now uses our testing suite and it tests both regular tests and doctests</li><li>examples directory tidied up</li><li>more trigonometric simplifications</li><li>polynomial roots finding and factoring vastly improved</li><li>mpmath updated</li><li>many bugfixes (more than 200 patches since the last release) </li></ul><br />The following 21 people have contributed patches to this release (sorted by the number of patches):<br /><br /><ul><li>Ondrej Certik</li><li>Mateusz Paprocki</li><li>Fabian Seoane</li><li>Andy R. Terrel</li><li>Freddie Witherden</li><li>Robert Kern</li><li>Priit Laes</li><li>Riccardo Gori</li><li>Fredrik Johansson</li><li>Aaron Meurer</li><li>Alan Bromborsky</li><li>Brian E. Granger</li><li>Felix Kaiser</li><li>Kirill Smelkov</li><li>Vinzent Steinberg</li><li>Akshay Srinivasan</li><li>Andrew Docherty</li><li>Andrew Straw</li><li>Henrik Johansson</li><li>Kaifeng Zhu</li><li>Ted Horst</li></ul><br />The following people helped review patches:<br /><br /><ul><li>Riccardo Gori</li><li>Fabian Seoane</li><li>Vinzent Steinberg</li><li>Gael Varoquaux</li><li>Fredrik Johansson</li><li>Robert Kern</li><li>Alan Bromborsky</li><li>Ondrej Certik</li></ul><br /><br />There were 218 new patches since 0.6.3:<br /><br />$ git log --pretty=oneline sympy-0.6.3..sympy-0.6.4 | wc -l<br />218<br /><br />Plans for the future:<br /><br />Our roadmap: <a href="http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0">http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0</a>Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com1tag:blogger.com,1999:blog-2520472460430880330.post-13419276131653213462008-11-19T14:07:00.000-08:002008-11-19T14:27:08.757-08:00SymPy 0.6.3 releasedSymPy 0.6.3 has been released on November 19, 2008. It is available at<br /><br /><a href="http://code.google.com/p/sympy/">http://code.google.com/p/sympy/</a><br /><br />About SymPy<br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br />Major changes in this release:<br /><br /> <ul><li>port to python2.6 (all tests pass)</li><li>port to jython (all tests pass except those depending on the "ast" module) </li><li>true division fixed (all tests pass with "-Qnew" Python option) </li><li><a href="http://buildbot.sympy.org/" rel="nofollow">buildbot.sympy.org</a> created, sympy is now regularly tested on python2.4, 2.5, 2.6 on both i386 and amd64 architectures. </li><li>py.bench -- py.test based benchmarking added </li><li>bin/test -- simple py.test like testing framework, without external dependencies, nice colored output </li><li>most limits now work </li><li>factorization over <tt>Z[x]</tt> greatly improved </li><li>Piecewise function added </li><li>nsimplify() implemented </li><li>symbols and var syntax unified </li><li>C code printing </li><li>many bugfixes </li></ul><br /><p>The following 17 people have contributed patches to this release: </p><ul><li>Andy R. Terrel </li><li>Kirill Smelkov </li><li>Stepan Roucka </li><li>Riccardo Gori </li><li>Fabian Seoane </li><li>Fredrik Johansson </li><li>Mateusz Paprocki </li><li>Sebastian Kreft </li><li>Sebastian Krämer </li><li>Vinzent Steinberg </li><li>Boris Timokhin </li><li>Alan Bromborsky </li><li>Henrik Johansson </li><li>Hubert Tsang </li><li>Konrad Meyer </li><li>Robert (average.programmer) </li><li>Ondrej Certik </li></ul><p>The following people helped review patches: </p><ul><li>Andy R. Terrel </li><li>Riccardo Gori </li><li>Fredrik Johansson </li><li>Vinzent Steinberg </li><li>Fabian Seoane </li><li>Kirill Smelkov </li><li>Sebastian Krämer </li><li>Mateusz Paprocki </li><li>Stepan Roucka </li><li>Friedrich Hagedorn </li><li>Brian Granger </li><li>Ondrej Certik </li></ul><br />There were 256 new patches since 0.6.2:<br /><br />$ git log --pretty=oneline sympy-0.6.2..sympy-0.6.3 | wc -l<br />258<br /><br />Plans for the future:<br /><br />Our roadmap: <a href="http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0">http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0</a><br /><br />The last big missing piece of the puzzle are assumptions, that we are implementing in the issue <a href="http://code.google.com/p/sympy/issues/detail?id=1047">1047</a>. Besides that we should port sympy to Python 3.0, add more tests to our buildbot and start using the pure Python mode in Cython to speed SymPy up using ideas from sympyx (sympy core written in Cython). And improve our documentation continuously.Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-58572687691734517322008-08-17T13:58:00.000-07:002008-08-17T14:09:50.342-07:00SymPy 0.6.2 releasedSymPy 0.6.2 has been released on August 17, 2008. It is available at<br /><br /><a href="http://code.google.com/p/sympy/">http://code.google.com/p/sympy/</a><br /><br /><span style="font-weight: bold;">About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br /><h5>user-visible changes:</h5><ul><li>SymPy is now 50% faster on average (cache:on) and 130% (cache:off) compared to previous release.</li><li>adaptive and faster evalf() (<a href="http://hg.sympy.org/sympy/rev/f2603e998194" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/16104562dc53" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/77e7ddf1e3f4" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/ee9372681a64" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/e61438b324d3" rel="nofollow">5</a>) </li><li>evalf: numerical summation of hypergeometric series (<a href="http://hg.sympy.org/sympy/rev/40b3cff7b9ff" rel="nofollow">commit</a>) </li><li>evalf: fast and accurate numerical summation (<a href="http://hg.sympy.org/sympy/rev/95eca1e72c47" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/f0f06daa11e7" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/ef0395c6b6c4" rel="nofollow">3</a>) </li><li>evalf: oscillatory quadrature (<a href="http://hg.sympy.org/sympy/rev/353584ecf19d" rel="nofollow">commit</a>) </li><li>integrals now support variable transformation (<a href="http://hg.sympy.org/sympy/rev/32a178e2a8b9" rel="nofollow">commit</a>) </li><li>we can now integrate(f(x)⋅diff(f(x),x), x) (<a href="http://hg.sympy.org/sympy/rev/4810adeada5c" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/ce9a981c8c64" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/73be255e7992" rel="nofollow">3</a>) </li><li>we can now solve a⋅cos(x)=y (<a href="http://hg.sympy.org/sympy/rev/953090f5209e" rel="nofollow">comit</a>) and exp(x)+exp(-x)=y (<a href="http://hg.sympy.org/sympy/rev/61478855c294" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/b43beaab3bb1" rel="nofollow">2</a>) </li><li>printing system refactored (<a href="http://hg.sympy.org/sympy/rev/d56cca1785c5" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/d8c5c92db412" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/db09ebd06fb4" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/b13d7cb0fde2" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/c7fd2ed49ec3" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/58eade7e7944" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/786a5c7b7dfa" rel="nofollow">7</a>, <a href="http://hg.sympy.org/sympy/rev/0e69a491ac1d" rel="nofollow">8</a>, <a href="http://hg.sympy.org/sympy/rev/5cb4de19cc66" rel="nofollow">9</a>, <a href="http://hg.sympy.org/sympy/rev/a735af6bfe76" rel="nofollow">10</a>, <a href="http://hg.sympy.org/sympy/rev/d04abe71fd96" rel="nofollow">11</a>, <a href="http://hg.sympy.org/sympy/rev/8512eff4ce57" rel="nofollow">12</a>, <a href="http://hg.sympy.org/sympy/rev/b996f9beb406" rel="nofollow">13</a>, <a href="http://hg.sympy.org/sympy/rev/c4188be75ff5" rel="nofollow">14</a>, <a href="http://hg.sympy.org/sympy/rev/2f2fea6ab447" rel="nofollow">15</a>, <a href="http://hg.sympy.org/sympy/rev/ca74a684946c" rel="nofollow">16</a>, <a href="http://hg.sympy.org/sympy/rev/6809c89c8913" rel="nofollow">17</a>, <a href="http://hg.sympy.org/sympy/rev/6f7e70376ba3" rel="nofollow">18</a>, <a href="http://hg.sympy.org/sympy/rev/4b31dc02128c" rel="nofollow">19</a>, <a href="http://hg.sympy.org/sympy/rev/45bb843aa79a" rel="nofollow">20</a>, <a href="http://hg.sympy.org/sympy/rev/5a03af88b9a2" rel="nofollow">21</a>) </li><li>pprint: new symbol for multiply in unicode mode(x*y -> x⋅y) (<a href="http://hg.sympy.org/sympy/rev/96b3bd3dbb39" rel="nofollow">commit</a>) </li><li>pprint: matrices now look much better (<a href="http://hg.sympy.org/sympy/rev/0460ebc36574" rel="nofollow">commit</a>) + example (<a href="http://hg.sympy.org/sympy/rev/7c36e4e62552" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/77ba6e02c3b9" rel="nofollow">2</a>) </li><li>printing of dicts and sets are now more human-friendly (<a href="http://hg.sympy.org/sympy/rev/d2142abff624" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/88c92a032421" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/210c0b2c41f3" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/52013020a48d" rel="nofollow">5</a>) </li><li>latex: now supports sub- and superscripts in symbol names (<a href="http://hg.sympy.org/sympy/rev/2e99982a94f4" rel="nofollow">commit</a>) </li><li>RootSum.doit, now works on all roots (<a href="http://hg.sympy.org/sympy/rev/16ecba299530" rel="nofollow">commit</a>) </li><li>Wild can now have additional predicates (<a href="http://hg.sympy.org/sympy/rev/af81bfff9c5f" rel="nofollow">commit</a>) </li><li>numpy-like zeros and ones functions (<a href="http://hg.sympy.org/sympy/rev/3ff3349e6df1" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a87f81d5b17f" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/4c866cf85b39" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/945423d11129" rel="nofollow">4</a>) </li><li>var('x,y,z') now works (<a href="http://hg.sympy.org/sympy/rev/1030f3b48a9e" rel="nofollow">commit</a>) </li><li>many bug fixes </li></ul><h5>changes that affected speed:</h5><ul><li><tt>((x+y+z)**50).expand()</tt> is now 4.8x faster (<a href="http://hg.sympy.org/sympy/rev/af4887673d3d" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a8b30539405e" rel="nofollow">2</a> + other commits which all summed up) </li><li>big assumptions cleanup and rewrite (<a href="http://hg.sympy.org/sympy/rev/282cd00aaaa1" rel="nofollow">commit1</a>, <a href="http://hg.sympy.org/sympy/rev/a8301bbe56fc" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/d455e5d19826" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/27890fc7df0a" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/913d34d179c5" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/78f62e09c6b3" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/2686e5b35812" rel="nofollow">7</a>, <a href="http://hg.sympy.org/sympy/rev/44046f890462" rel="nofollow">8</a>, <a href="http://hg.sympy.org/sympy/rev/2f6b3d5cc571" rel="nofollow">9</a>, <a href="http://hg.sympy.org/sympy/rev/a6ddc80bd679" rel="nofollow">10</a>, <a href="http://hg.sympy.org/sympy/rev/86fb85c10898" rel="nofollow">11</a>, <a href="http://hg.sympy.org/sympy/rev/27bf7b1fcf51" rel="nofollow">12</a>, <a href="http://hg.sympy.org/sympy/rev/3da1ce1a590d" rel="nofollow">13</a>, <a href="http://hg.sympy.org/sympy/rev/ac93092655ce" rel="nofollow">14</a>, <a href="http://hg.sympy.org/sympy/rev/7fd4ccbf8177" rel="nofollow">15</a>, <a href="http://hg.sympy.org/sympy/rev/07d1d690579c" rel="nofollow">16</a>, <a href="http://hg.sympy.org/sympy/rev/8a93cd729d4b" rel="nofollow">17</a>, <a href="http://hg.sympy.org/sympy/rev/ac803c9988d1" rel="nofollow">18</a>, <a href="http://hg.sympy.org/sympy/rev/7077bdb157ad" rel="nofollow">19</a>, <a href="http://hg.sympy.org/sympy/rev/960c13f64fbc" rel="nofollow">20</a>, <a href="http://hg.sympy.org/sympy/rev/65694f0c4930" rel="nofollow">21</a>, <a href="http://hg.sympy.org/sympy/rev/37e7c1592ee4" rel="nofollow">22</a>, <a href="http://hg.sympy.org/sympy/rev/929e567d9d59" rel="nofollow">23</a>, <a href="http://hg.sympy.org/sympy/rev/37f28f01a0a8" rel="nofollow">24</a>, <a href="http://hg.sympy.org/sympy/rev/f082b056f0ef" rel="nofollow">25</a>) </li><li>access to all object attributes is now ~2.5 times faster (<a href="http://hg.sympy.org/sympy/rev/f5aa87669950" rel="nofollow">commit</a>) </li><li>we try not to let 'is_commutative' to go through (slow) assumptions path (<a href="http://hg.sympy.org/sympy/rev/ee75a18ca7b2" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/de81757d7898" rel="nofollow">2</a>) </li><li>Add/Mul were optimized (for some cases significantly) (<a href="http://hg.sympy.org/sympy/rev/66657a9d94f4" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/3950c0a9c67f" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/964fd3f4314d" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/3b39ffb44b3a" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/be61828f7a46" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/8a31d8eebe32" rel="nofollow">6</a>) </li></ul><h5>general cleanup:</h5><ul><li>isympy and sympy.interactive code were merged (<a href="http://hg.sympy.org/sympy/rev/d0d91349a007" rel="nofollow">commit</a>) </li><li>multiple inheritance removed (NoArithMeths, NoRelMeths, RelMeths, ArithMeths are gone) (<a href="http://hg.sympy.org/sympy/rev/06cad30fdaef" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/aaf5c230783e" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/79d490a601ab" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/fa9012e14995" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/05e95f08f3c5" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/8744641b59a3" rel="nofollow">6</a>) </li><li>.nseries() is now used as default in .series() </li><li>doctesting was made more robust (<a href="http://hg.sympy.org/sympy/rev/955d16bc63d3" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/bf338ee0722f" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/ceb485e51516" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/f09b630df594" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/490a46fa2482" rel="nofollow">5</a>) </li></ul><p>The following 11 people have contributed patches to this release: </p><ul><li>Sebastian Krämer </li><li>Fredrik Johansson </li><li>Ondřej Čertík </li><li>Mateusz Paprocki </li><li>Stefano Maggiolo </li><li>Robert Cimrman </li><li>Sebastian Krause </li><li>Bastian Weber </li><li>Sebastian Kreft </li><li>Štěpán Roučka </li><li>Kirill Smelkov </li></ul><p>The following people helped review patches: </p><ul><li>Riccardo Gori </li><li>Fredrik Johansson </li><li>Kirill Smelkov </li><li>Ondřej Čertík </li><li>Mateusz Paprocki </li></ul><br />Other news: we wrote a new core <a href="http://groups.google.com/group/sympy/browse_thread/thread/aa3f4263bc3f7e23">sympyx</a> in Cython that is an order of magnitude faster than the current SymPy, yet it uses the same architecture, so it's our priority now to merge it back and then gradualy speedup things, so that SymPy is as fast as any other symbolic package.<br /><br />SymPy will remain pure Python by default, but it will be possible to use Cythonized core optionally to gain speed.Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-13685213842648635012008-07-22T13:48:00.000-07:002008-07-22T14:15:26.941-07:00SymPy 0.6.1 releasedSymPy 0.6.1 has been released on July 22, 2008. It is available at<br /><br /><a href="http://code.google.com/p/sympy/">http://code.google.com/p/sympy/</a><br /><br /><span style="font-weight: bold;">About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br /><br /><h5>user-visible changes:</h5><ul><li>almost all functions and constants can be converted to Sage (<a href="http://hg.sympy.org/sympy/rev/414880e1c8be" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/245efb21d82f" rel="nofollow">2</a>) </li><li>univariate factorization algorithm was fixed (<a href="http://hg.sympy.org/sympy/rev/1bf5f90b3a97" rel="nofollow">commit</a>) </li><li>.evalf() method fixed, pi.evalf(10<strong></strong>6) calculates 1 000 000 digits of pi (<a href="http://hg.sympy.org/sympy/rev/c46eed7e289f" rel="nofollow">commit 1</a>) </li><li>@threaded decorator (<a href="http://hg.sympy.org/sympy/rev/c45b351e93cf" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/26ac349099d2" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/affb2ee1be2d" rel="nofollow">3</a>) </li><li>more robust solvers, polynomials and simplification (about 60 patches from Mateusz, see the hg history) </li><li>better simplify, that makes a solver more robust (<a href="http://hg.sympy.org/sympy/rev/93a2ec3a7651" rel="nofollow">commit</a>) </li><li>optional compiling of functions to machine code (<a href="http://hg.sympy.org/sympy/rev/8af2d333319c" rel="nofollow">commit</a>) </li><li>msolve: solving of nonlinear equation systems using Newton's method (<a href="http://hg.sympy.org/sympy/rev/c70e9302f0d4" rel="nofollow">commit</a>) </li></ul><br /><br /><h5>changes that affected speed:</h5><ul><li><tt>((x+y+z)**50).expand()</tt> is now 3 times faster (<a href="http://hg.sympy.org/sympy/rev/16cfc09420ee" rel="nofollow">commit</a>) </li><li>caching was removed from the Order class: 1.5x speedups in series tests (<a href="http://hg.sympy.org/sympy/rev/c23f4a589832" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/aee6b586dbca" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/e192c4e04e2e" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/ff575d1e085b" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/d09500d91a83" rel="nofollow">5</a>) </li></ul><br /><br /><p>The following 8 people have contributed patches to this release: </p><ul><li>Mateusz Paprocki </li><li>Vinzent Steinberg </li><li>Fredrik Johansson </li><li>Riccardo Gori </li><li>Kirill Smelkov </li><li>Štěpán Roučka</li><li>Ali Raza Syed </li><li>Ondřej Čertík </li></ul><br /><br /><p>The following people helped review patches: </p><ul><li>Riccardo Gori </li><li>Fredrik Johansson </li><li>Kirill Smelkov </li><li>Ondřej Čertík </li><li>Mateusz Paprocki </li></ul><br />See our <a href="http://hg.sympy.org/sympy/shortlog">hg history</a> for all patches. In the 0.6.x series we concentrate on much better integration with <a href="http://www.sagemath.org/">Sage</a> and <a href="http://www.scipy.org/NumPy">NumPy</a>. And also improving our docs. See our roadmap:<br /><br /><a href="http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0">http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0</a><br /><br />SymPy will remain pure Python by default, but for people that do install additional packages, SymPy should be able to use them. Currently SymPy can already use <a href="http://code.google.com/p/gmpy/">gmpy</a>, NumPy and compile functions to machine code using <a href="http://bellard.org/tcc/">tcc</a>.Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-23801551953878738742008-07-08T10:23:00.000-07:002008-07-08T10:47:31.560-07:00SymPy 0.6.0 releasedSymPy 0.6.0 has been released on July 7, 2008. It is available at<br /><br /><a href="http://code.google.com/p/sympy/">http://code.google.com/p/sympy/</a><br /><br /><span style="font-weight: bold;">About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br /><h5>user-visible changes:</h5><ul><li>all documentation wiki pages moved to <a href="http://docs.sympy.org/" rel="nofollow">docs.sympy.org</a> </li><li>mpmath was integrated in SymPy, numerics module removed </li><li>mpmath can use gmpy optionally, thus <a href="http://wiki.sympy.org/wiki/Million_digits_of_pi" rel="nofollow">calculating</a> 1000000 digits of pi in 7.5s </li><li>Common subexpression elimination implemented (<a href="http://hg.sympy.org/sympy/rev/f26c5d4fd984" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/d799b0e232f2" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/a899701f1e4f" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/841260b1596e" rel="nofollow">4</a>), see <a href="http://docs.sympy.org/modules/rewriting.html#module-sympy.simplify.cse_main" rel="nofollow">docs</a> </li><li>roots, RootsOf, RootSum implemented (<a href="http://hg.sympy.org/sympy/rev/a620a8af6134" rel="nofollow">commit</a>) </li><li>lambdify() now accepts Matrices (<a href="http://hg.sympy.org/sympy/rev/f5000a5a06df" rel="nofollow">commit</a>) </li><li>Matrices polished and spedup (<a href="http://hg.sympy.org/sympy/rev/3d48d6181a30" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/62fd8a6aebca" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/5ce3cdd10ed0" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/22e3cedc3386" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/9c285548be1a" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/0842457787a9" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/c6e57bb8de9a" rel="nofollow">7</a>, <a href="http://hg.sympy.org/sympy/rev/ccebd03423df" rel="nofollow">8</a>, <a href="http://hg.sympy.org/sympy/rev/86b9ff6c04f5" rel="nofollow">9</a>) </li><li>source command implemented (<a href="http://hg.sympy.org/sympy/rev/c81de1a03811" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/c0b091408696" rel="nofollow">2</a>) </li><li>Polys were made the default polynomials in SymPy (<a href="http://hg.sympy.org/sympy/rev/a45312e68f12" rel="nofollow">commit 1</a>, + many following commits) </li><li>Add, Mul, Pow now accept evaluate=False argument (<a href="http://hg.sympy.org/sympy/rev/c51330c0f3da" rel="nofollow">commit</a>) </li></ul><br /><br /><br />Plus a lot of smaller bugfixes, you can browse our Mercurial <a href="http://hg.sympy.org/sympy/shortlog">history</a> for details.<br /><br />We have consolidated and improved all our docs, you can find it in the package and also online here:<br /><br /><a href="http://docs.sympy.org/">http://docs.sympy.org/</a><br /><br />and we also created a road map for the future releases of SymPy:<br /><br /><a href="http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0">http://wiki.sympy.org/wiki/Plan_for_SymPy_1.0</a><br /><br />As you can see, we have finally moved from the 0.5.0 era by consolidating the docs and you can read there what is planned for the 0.6.0 series and further.<br /><br />The following 12 people have contributed patches to this release:<br /><ul><li>Mateusz Paprocki</li><li>Fredrik Johansson</li><li>Robert Kern</li><li>Riccardo Gori</li><li>Sebastian Krämer</li><li>Case Van Horsen</li><li>Vinzent Steinberg</li><li>Roberto Nobrega</li><li>Friedrich Hagedorn</li><li>David Roberts</li><li>Kirill Smelkov</li><li>Ondrej Certik </li></ul>Many thanks to all of you who helped review patches:<br /><ul><li>Kirill Smelkov<br /></li><li>Mateusz Paprocki<br /></li><li>Robert Kern<br /></li><li>Vinzent Steinberg<br /></li><li>Fredrik Johansson<br /></li><li>Sebastian Krämer<br /></li></ul>And all the others who helped on our mailinglists.<br /><br />We welcome any comments, questions, bug reports, patches. Any contribution you do is very useful.<br /><br />You can also read Fredrik's progress on his GSoC project here:<br /><br /><a href="http://planet.sympy.org/">http://planet.sympy.org/</a><br /><br />there are a lot of interesting posts.Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-4699428342488301792008-05-24T12:24:00.000-07:002008-05-24T17:52:51.429-07:00SymPy 0.5.15 releasedSymPy 0.5.15 has been released on May 24, 2008. It is available at<br /><br /><a href="http://code.google.com/p/sympy/">http://code.google.com/p/sympy/</a><br /><br /><span style="font-weight: bold;">About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br /><h5>user-visible changes:</h5><ul><li>all SymPy functions support vector arguments, e.g. sin([1, 2, 3]) (<a href="http://hg.sympy.org/sympy/rev/3cff481efa3b" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/0b48760c55f9" rel="nofollow">2</a>) </li><li>lambdify can now use numpy/math/mpmath (<a href="http://hg.sympy.org/sympy/rev/e513289b6a6b" rel="nofollow">1</a>, <a href="http://hg.sympy.org/sympy/rev/99999069151e" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/7b1100a86d25" rel="nofollow">3</a>) </li><li>the order of lambdify arguments has changed (<a href="http://hg.sympy.org/sympy/rev/7cc82cfb14fc" rel="nofollow">commit</a>) </li><li>all SymPy objects are pickable (<a href="http://hg.sympy.org/sympy/rev/f94ae6e9875e" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/e57b07581a31" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/fa515a8867af" rel="nofollow">3</a>) </li><li>simplify improved and made more robust (<a href="http://hg.sympy.org/sympy/rev/e470371c5aae" rel="nofollow">commit</a>) </li><li>broken limit_series was removed, we now have just one limit implementation (<a href="http://hg.sympy.org/sympy/rev/8c54a835ad73" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/9f0c92ddfebd" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/9dae4855ec6f" rel="nofollow">3</a>) </li><li>limits now use .nseries (<a href="http://hg.sympy.org/sympy/rev/993079823dfe" rel="nofollow">commit</a>) </li><li>.nseries() improved a lot (<a href="http://hg.sympy.org/sympy/rev/e627c389bf35" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/04a4fff3127f" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/2917e1061a1b" rel="nofollow">3</a>) </li><li>Polys improved (<a href="http://hg.sympy.org/sympy/rev/518fc875fed3" rel="nofollow">commit</a>) </li><li>Basic kronecker delta and Levi-Civita implementation (<a href="http://hg.sympy.org/sympy/rev/1d61eb463510" rel="nofollow">commit</a>) </li></ul><br /><br />Plus a lot of smaller bugfixes, you can browse our Mercurial <a href="http://hg.sympy.org/sympy/shortlog">history</a> for details.<br /><br />Apart from the actual code, we have also launched an online SymPy shell:<br /><br /><a href="http://live.sympy.org/">http://live.sympy.org/</a><br /><br />The following 8 people have contributed patches to this release: <br /><br /><ul><li>Sebastian Krämer </li><li>Friedrich Hagedorn </li><li>Mateusz Paprocki </li><li>Saroj Adhikari </li><li>Vinzent Steinberg </li><li>David Roberts </li><li>Nimish Telang </li><li>Ondřej Čertík </li></ul>Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com2tag:blogger.com,1999:blog-2520472460430880330.post-22891428241443634162008-04-26T14:50:00.000-07:002008-04-26T15:13:10.332-07:00SymPy 0.5.14 releasedSymPy 0.5.14 has been released on April 26, 2008. It is available at<br /><br /><a href="http://code.google.com/p/sympy/">http://code.google.com/p/sympy/</a><br /><br /><span style="font-weight:bold;">About SymPy</span><br /><br />SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.<br /><br /><br /><br /><h5>user-visible changes:</h5><ul><li>SymPy is now 25% faster on average compared to the previous release (see below) </li><li>Documentation was improved a <strong>lot</strong> (<a href="http://hg.sympy.org/sympy/rev/26d75a5b7dbc" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a0a01fc08c63" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/526612998a02" rel="nofollow">3</a>). See <a href="http://docs.sympy.org/" rel="nofollow">http://docs.sympy.org/</a> </li><li><tt>rsolve_poly</tt> & <tt>rsolve_hyper</tt> fixed (<a href="http://hg.sympy.org/sympy/rev/191d906f553b" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/95722c586c3c" rel="nofollow">2</a>) </li><li>subs and subs_dict unified to .subs() (<a href="http://hg.sympy.org/sympy/rev/c78c01651791" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/cf7db1715d61" rel="nofollow">2</a>) </li><li>faster and more robust polynomials module (<a href="http://hg.sympy.org/sympy/rev/eae5a978e965" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a2b46b6a9339" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/068fe612ab61" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/94ce7584098a" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/e4e392eebac5" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/d8110613024e" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/58d8d9eb2cfa" rel="nofollow">7</a>, <a href="http://hg.sympy.org/sympy/rev/911965062220" rel="nofollow">8</a>, <a href="http://hg.sympy.org/sympy/rev/d3fd80444cb6" rel="nofollow">9</a>, <a href="http://hg.sympy.org/sympy/rev/ac727777a83a" rel="nofollow">10</a>, <a href="http://hg.sympy.org/sympy/rev/176de6403477" rel="nofollow">11</a>, <a href="http://hg.sympy.org/sympy/rev/a9fc641351aa" rel="nofollow">12</a>, <a href="http://hg.sympy.org/sympy/rev/4a71cecc65f4" rel="nofollow">13</a>, <a href="http://hg.sympy.org/sympy/rev/90caafd36b5a" rel="nofollow">14</a>, ..., look into the hg history) </li><li>improved Matrix.det(), implemented Berkowitz algorithm (<a href="http://hg.sympy.org/sympy/rev/c8cbb6c5e78d" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/6ab14eeeda3e" rel="nofollow">2</a>) </li><li>improved isympy (interactive shell for SymPy) (<a href="http://hg.sympy.org/sympy/rev/075af554b091" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/01b152988acb" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/194752e14bd7" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/58cddca75b8f" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/397a1bf465b9" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/82d6521722e9" rel="nofollow">6</a>) </li><li>pretty-printing improved (<a href="http://hg.sympy.org/sympy/rev/16f56992f467" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/31c518a87450" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/e12accf6a9d1" rel="nofollow">3</a>) </li><li>Rel, Eq, Ne, Lt, Le, Gt, Ge implemented (<a href="http://hg.sympy.org/sympy/rev/4bb011af2d0c" rel="nofollow">commit 1</a>) </li><li>Limit class represents unevaluated limits now (<a href="http://hg.sympy.org/sympy/rev/936e73c6bafd" rel="nofollow">commit 1</a>) </li><li>Bailey-Borwein-Plouffe algorithm (finds the nth hexidecimal digit of pi without calculating the previous digits) implemented (<a href="http://hg.sympy.org/sympy/rev/6d73013adce3" rel="nofollow">commit 1</a>) </li><li>solver for transcendental equations added (<a href="http://hg.sympy.org/sympy/rev/e2db18455951" rel="nofollow">commit 1</a>) </li><li>.nseries() methods implemented (more robust/faster than .oseries) (<a href="http://hg.sympy.org/sympy/rev/81f8e2c98500" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a2eed9dc6a91" rel="nofollow">2</a>) </li><li>multivariate Lambdas implemented (<a href="http://hg.sympy.org/sympy/rev/0097b68ac3c5" rel="nofollow">commit 1</a>) </li></ul><br /><br /><h5>changes that affected speed:</h5><ul><li><tt>__eq__</tt>/<tt>__ne__</tt>/<tt>__nonzero__</tt> returns True/False directly so dict lookups are not expensive anymore (<a href="http://hg.sympy.org/sympy/rev/1f52bd36839c" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/d9965888a005" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/9e7131a4533b" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/76542a035dd6" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/92af27a9e8bd" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/edcd763c6999" rel="nofollow">6</a>) </li><li><tt>sum(x**i/i,i=1..400)</tt> is now 4.8x faster (<a href="http://hg.sympy.org/sympy/rev/9fa720169ed9" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/15fc2acb7231" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/a602e5369326" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/2e496abeb32b" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/4962f6641827" rel="nofollow">5</a>) </li><li><tt>isinstance(term, C.Mul)</tt> was replaced by <tt>term.is_Mul</tt> and similarly for other basic classes (<a href="http://hg.sympy.org/sympy/rev/f83106bc39a5" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a522f77cd5e9" rel="nofollow">2</a>) </li></ul><br /><br /><br />Plus a lot of smaller bugfixes, you can browse our Mercurial <a href="http://hg.sympy.org/sympy/shortlog">history</a> for details.<br /><br /><p><br />This release contains patches from 15 developers, which is so far the highest number of people/release (33 people have sent patches to SymPy so far, see the list of <a href="http://wiki.sympy.org/wiki/Contributors">contributors</a>):<br /> </p><ul><li>Mateusz Paprocki </li><li>Fredrik Johansson </li><li>James Aspnes </li><li>Friedrich Hagedorn </li><li>Pan Peng </li><li>Abderrahim Kitouni </li><li>Nimish Telang </li><li>Jurjen N.E. Bos </li><li>Elrond der Elbenfuerst </li><li>Rizgar Mella </li><li>Felix Kaiser </li><li>Roberto Nobrega </li><li>David Roberts </li><li>Ondřej Čertík </li><li>Kirill Smelkov </li></ul><br /><br /><br />If you'd like to contribute too, you can browse our open issues here:<br /><br /><a href="http://code.google.com/p/sympy/issues/list">http://code.google.com/p/sympy/issues/list</a><br /><br />and then we suggest you to read the <a href="http://docs.sympy.org/sympy-patches-tutorial.html">SymPy Patches Tutorial</a>, that explains how to work with Mercurial effectively and how to create and send patches easily (not only) to SymPy. Any contribution is welcome, be it documentation, code, or just hanging out on our <a href="http://groups.google.com/group/sympy">mailinglist</a> or IRC (#sympy at freenode).Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com1tag:blogger.com,1999:blog-2520472460430880330.post-9560160031617455772008-03-06T14:57:00.000-08:002008-03-06T15:07:05.981-08:00SymPy 0.5.13 releasedIt took us a little longer to release, so we have a longer changelog this time:<br /><br /><h5>user-visible changes:</h5><ul><li>SymPy is now 2x faster in average compared to the previous release (see below) </li><li><tt>integrate()</tt> can handle most of the basic integrals now (<a href="http://hg.sympy.org/sympy/rev/045f9b4d28e1" rel="nofollow">commit</a>) </li><li>interactive experience with isympy was improved through adding support for [], () and {} to pretty-printer, and switching to it as the default ipython printer (<a href="http://hg.sympy.org/sympy/rev/1952e5872712" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/8b8d52652bc8" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/9d872c1768b2" rel="nofollow">3</a>) </li><li>new <tt>trim()</tt> function to map all non-atomic expressions, ie. functions, derivatives and more complex objects, to symbols and remove common factors from numerator and denominator. also <tt>cancel()</tt> was improved (<a href="http://hg.sympy.org/sympy/rev/b36abe849cae" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/2c7a8f13af0c" rel="nofollow">2</a>) </li><li><tt>.expand()</tt> for noncommutative symbols fixed (<a href="http://hg.sympy.org/sympy/rev/f3841bb49aba" rel="nofollow">commit</a>) </li><li>bug in <tt>(x+y+sin(x)).as_independent()</tt> fixed (<a href="http://hg.sympy.org/sympy/rev/6e53d4e4f31b" rel="nofollow">commit</a>) </li><li><tt>.subs_dict()</tt> improved (<a href="http://hg.sympy.org/sympy/rev/6d82fc2f132a" rel="nofollow">commit</a>) </li><li>support for plotting geometry objects added (<a href="http://hg.sympy.org/sympy/rev/81b5ea2f798f" rel="nofollow">commit</a>) </li><li>bug in <tt>.tangent_line()</tt> of ellipse fixed (<a href="http://hg.sympy.org/sympy/rev/7a4895d2a5c6" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/7e931942af76" rel="nofollow">2</a>) </li><li>new <tt>atan2</tt> function and assotiated fixes for <tt>.arg()</tt> and expanding rational powers (<a href="http://hg.sympy.org/sympy/rev/6b122f035a59" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/59e098c67d2a" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/730666b691ab" rel="nofollow">3</a>) </li><li>new <tt>.coeff()</tt> method for returning coefficient of a poly (<a href="http://hg.sympy.org/sympy/rev/fe28b857f840" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/823a98e61f39" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/2462e919c263" rel="nofollow">3</a>) </li><li>pretty-printer now uses unicode by default (<a href="http://hg.sympy.org/sympy/rev/3287de8a4632" rel="nofollow">commit</a>) </li><li>recognition of geometric sums were generalized (<a href="http://hg.sympy.org/sympy/rev/46592846838b" rel="nofollow">commit</a>) </li><li><tt>.is_positive</tt> and <tt>.is_negative</tt> now fallback to evalf() when appropriate (<a href="http://hg.sympy.org/sympy/rev/22824466ecc3" rel="nofollow">commit</a>) </li><li>as the result <tt>oo*(pi-1)</tt> now correctly simplifies to <tt>oo</tt> (<a href="http://hg.sympy.org/sympy/rev/595807013bfc" rel="nofollow">commit</a>) </li><li>support for objects which provide <tt>__int__</tt> method was added (<a href="http://hg.sympy.org/sympy/rev/499b40d2b273" rel="nofollow">commit</a>) </li><li>we finally started SymPy User's Guide (<a href="http://hg.sympy.org/sympy/rev/fdf6ca3287f9" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/18ad24318344" rel="nofollow">2</a>) </li></ul><h5>changes that affected speed:</h5><ul><li>first patches with 25% speedup (<a href="http://hg.sympy.org/sympy/rev/5db289e227f9" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/b8a3f509123d" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/2146efe6d6ed" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/9ae600a3134f" rel="nofollow">4</a>) </li><li>Basic.cos et. al. removed, use C.cos instead (<a href="http://hg.sympy.org/sympy/rev/fa487034bbb1" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/add2007e2df6" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/5393aaff17f0" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/7b94988ea0fc" rel="nofollow">4</a>) </li><li>sympy.core now uses direct imports (<a href="http://hg.sympy.org/sympy/rev/ad1660d022eb" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/9fefd2f55cca" rel="nofollow">2</a>) </li><li>sympifyit decorator (<a href="http://hg.sympy.org/sympy/rev/0ff293ced56e" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/09af91e6d0f5" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/e41996ef5e80" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/8bff90e3d9be" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/cf70b0b2ef8b" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/141d4a8de633" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/91ab79697a8c" rel="nofollow">7</a>) </li><li>speedup Integers creation and arithmetic (<a href="http://hg.sympy.org/sympy/rev/710dd41fdbfc" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/97558045dae6" rel="nofollow">2</a>) </li><li>speedup unary operations for singleton numbers (<a href="http://hg.sympy.org/sympy/rev/ea74c5f5c8c7" rel="nofollow">commit</a>) </li><li>remove silly slowdowns from fast-path of mul and div (<a href="http://hg.sympy.org/sympy/rev/89925b6ebf7b" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/5598327b36c3" rel="nofollow">2</a>) </li><li>significant speedup was achieved by reusing dummy variables (<a href="http://hg.sympy.org/sympy/rev/5056059c2d74" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/5d242cf4a6cf" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/c9e5d083a61d" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/213ab1bc4cd7" rel="nofollow">4</a>) </li><li><tt>is_dummy</tt> is not an assumption anymore (<a href="http://hg.sympy.org/sympy/rev/532e467b57a3" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/6a36b59d6558" rel="nofollow">2</a>) </li><li>Symbols & Wilds are cached (<a href="http://hg.sympy.org/sympy/rev/8bdffd52db99" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/c374fbd5b444" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/6d57d8846471" rel="nofollow">3</a>) </li><li><tt>((2+3*I)**1000).expand()</tt> is now at least 100x faster (<a href="http://hg.sympy.org/sympy/rev/83fd6783459b" rel="nofollow">commit</a>) </li><li><tt>.expand()</tt> was made faster for cases where an expression is already expanded (<a href="http://hg.sympy.org/sympy/rev/dcdb94326a38" rel="nofollow">commit</a>) </li><li>rational powers of integers are now computed more efficiently (<a href="http://hg.sympy.org/sympy/rev/7ad4283378aa" rel="nofollow">commit</a>) </li><li>unknown assumptions are now cached as well as known assumptions (<a href="http://hg.sympy.org/sympy/rev/c54cd4b2c5aa" rel="nofollow">commit</a>) </li></ul><h5>general cleanup:</h5><ul><li>BasicMeths merged into Basic (<a href="http://hg.sympy.org/sympy/rev/652651dc90e5" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a95ff37e15a1" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/5b77303888e2" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/241e2f20a139" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/31044aa38e49" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/20a6ba547347" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/f4630ac97369" rel="nofollow">7</a>, <a href="http://hg.sympy.org/sympy/rev/873665a234e3" rel="nofollow">8</a>) </li><li>cache subsystem was cleaned up -- now it supports only immutable objects (<a href="http://hg.sympy.org/sympy/rev/0a53991871e4" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/3fbb7fe833ba" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/d42933e9bdeb" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/aea7205bb832" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/1e7b490b3a7b" rel="nofollow">5</a>) </li></ul><br /><br />The following people have contributed to this release:<br /><ul><li>Kirill Smelkov</li><li>Mateusz Paprocki</li><li>Saroj Adhikari</li><li>Fredrik Johansson</li><li>Jaroslaw Tworek</li><li>Robert Kern</li><li>Pauli Virtanen</li><li>Ondřej Čertík</li></ul>Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-61426719233996295332008-01-27T15:36:00.000-08:002008-02-24T16:21:51.045-08:00SymPy 0.5.12 releasedQuite a lot has changed, <a href="http://code.google.com/p/sympy/">SymPy</a> now works with NumPy arrays, you can convert back and forth using numpy.array() and sympy.Matrix(). The integration algorithm has been improved significantly, it can handle a lot of common integrals already (some <a href="http://wiki.sympy.org/wiki/Symbolic_integration">examples</a>).<br /><br />More detailed changelog:<br /><ul><li>SymPy works with NumPy out of the box (<a href="http://hg.sympy.org/sympy/rev/82e8ff0a8a3e" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/1f8444d3a4c8" rel="nofollow">2</a>) </li><li>RootOf implemented (<a href="http://hg.sympy.org/sympy/rev/8463c5d8a2de" rel="nofollow">commit</a>) </li><li>Lambda support works now (<a href="http://hg.sympy.org/sympy/rev/bc07efdd1346" rel="nofollow">commit</a>) </li><li>heuristic Risch method improved (<a href="http://hg.sympy.org/sympy/rev/8463c5d8a2de" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/2b6f19782b23" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/e3fbd8889807" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/d26feb6f929b" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/543c897e454b" rel="nofollow">5</a>) </li><li>cancel function implemented (<a href="http://hg.sympy.org/sympy/rev/82b0caf68372" rel="nofollow">commit</a>) </li><li>sqrt(x) is now equivalent to <tt>x**(1/2)</tt> (<a href="http://hg.sympy.org/sympy/rev/8463c5d8a2de" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/5f2d030a8436" rel="nofollow">2</a>) </li><li>Derivative is now unevaluated (<a href="http://hg.sympy.org/sympy/rev/0c3e9db6004f" rel="nofollow">commit</a>) </li><li><tt>list2numpy()</tt> implemented (<a href="http://hg.sympy.org/sympy/rev/b63450f364bc" rel="nofollow">commit</a>) </li><li>series expansion of hyperbolic functions fixed (<a href="http://hg.sympy.org/sympy/rev/10bcdd558957" rel="nofollow">commit</a>) </li><li>sympify('lambda x: 2*x') works, plus other fixes (<a href="http://hg.sympy.org/sympy/rev/3a6e51e4cb01" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/058cf905cdca" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/c993a8d68dfa" rel="nofollow">3</a>) </li><li>simple maxima parser implemented (<a href="http://hg.sympy.org/sympy/rev/94e3b53cc0a2" rel="nofollow">commit</a>) </li><li><tt>sin(x)[0]</tt> idiom changed to <tt>sin(x).args[0]</tt> (<a href="http://hg.sympy.org/sympy/rev/68f51f8e6532" rel="nofollow">commit</a>) </li><li><tt>sin(x).series(x, 5)</tt> idiom changed to <tt>sin(x).series(x, 0, 5)</tt> (<a href="http://hg.sympy.org/sympy/rev/91de32b1b7f2" rel="nofollow">commit</a>) </li><li>caching refactored (<a href="http://hg.sympy.org/sympy/rev/8f04a0dbf0e9" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/53faf3605222" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/5d05d3d87712" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/3e298ca616a3" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/926cd30629fc" rel="nofollow">5</a>, <a href="http://hg.sympy.org/sympy/rev/7ddd0e97eecf" rel="nofollow">6</a>, <a href="http://hg.sympy.org/sympy/rev/fdca1475fb92" rel="nofollow">7</a>, <a href="http://hg.sympy.org/sympy/rev/65ef69b91e73" rel="nofollow">8</a>, <a href="http://hg.sympy.org/sympy/rev/91d3e101046f" rel="nofollow">9</a>) </li><li>2D plots now don't rotate in 3D, but translate instead (<a href="http://hg.sympy.org/sympy/rev/03b3348eac8a" rel="nofollow">commit</a>) </li><li>many bug fixes, see the <a href="http://hg.sympy.org/sympy/shortlog/1735">Mercurial history</a> for details </li></ul><br /><br />The following people have contributed to this release:<ul><br /><li>Kirill Smelkov</li><li>Mateusz Paprocki</li><li>Fredrik Johansson</li><li>Jaroslaw Tworek</li><li>Saroj Adhikari</li><li>Andrej Tokarčík</li><li>David Marek</li><li>Or Dvory</li><li>Bernhard R. Link</li><li>Ondřej Čertík</li><br /></ul>Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-14720170488940382382008-01-10T06:32:00.001-08:002008-01-10T06:37:40.096-08:00public wikiWe created a public wiki:<br /><br /><a href="http://wiki.sympy.org/">http://wiki.sympy.org/</a><br /><br />That everyone is encouraged to participate in. The google code wiki has a huge disadvantage, that only the members of the google code sympy project are allowed to edit it. wiki.sympy.org can be edited by anyone and we hope that it will encourage SymPy users to help improve SymPy documentation and take part in the project.<br /><br />We plan to move all tutorials and docs in there. Only things, that are relevant to developers, like how to do a release, etc., will stay in the google wiki.Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-36337237431065910962008-01-07T07:02:00.000-08:002008-01-07T07:04:10.297-08:00SymPy 0.5.11 releasedThis is just a bugfix release, that fixed a problem with pyglet in the 0.5.10.<br /><br />Changes:<br /><br /><ul><li><tt>./setup.py install</tt> installs pyglet correctly now (<a href="http://hg.sympy.org/sympy/rev/e01db9e8b6e6" rel="nofollow">commit</a>) </li><li><tt>var("k")</tt> fixed (<a href="http://hg.sympy.org/sympy/rev/6d226ac58d84" rel="nofollow">commit</a>) </li><li>script for automatic testing of plotting in pure environment added (<a href="http://hg.sympy.org/sympy/rev/79ff83053040" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/535bde464363" rel="nofollow">2</a>) </li></ul>Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-36552348106826281222008-01-04T07:02:00.000-08:002008-01-04T07:06:09.324-08:00SymPy 0.5.10 releasedChanges:<br /><br /><ul><li><tt>view</tt> renamed to <tt>preview</tt>, <tt>pngview</tt>, <tt>pdfview</tt>, <tt>dviview</tt> added (<a href="http://hg.sympy.org/sympy/rev/49161c434035" rel="nofollow">commit</a>) </li><li>latex printer was rewritten, <tt>preview</tt> uses builtin pyglet instead of pygame (<a href="http://hg.sympy.org/sympy/rev/5cf8987d6744" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/2cbb895ae8b3" rel="nofollow">2</a>) </li><li>square root denesting implemented (<a href="http://hg.sympy.org/sympy/rev/f794a01195b7" rel="nofollow">commit</a>) </li><li>parser of simple Mathematica expressions added (<a href="http://hg.sympy.org/sympy/rev/54c7ceb12a75" rel="nofollow">commit</a>) </li><li>TeXmacs interface written (<a href="http://hg.sympy.org/sympy/rev/9c1293a56e3d" rel="nofollow">commit</a>) </li><li>some integration fixes (<a href="http://hg.sympy.org/sympy/rev/9a7ba9499c43" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/0a57a070f8ee" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/c660cc8d6201" rel="nofollow">3</a>) </li><li>line width in 2D plotting can be specified (<a href="http://hg.sympy.org/sympy/rev/06fbc18a5837" rel="nofollow">commit</a>) </li><li>README was updated (<a href="http://hg.sympy.org/sympy/rev/07f59495f136" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/a9e246fbd464" rel="nofollow">2</a>) </li><li><tt>pyglet</tt> and <tt>mpmath</tt> were updated and moved to sympy/thirdparty (<a href="http://hg.sympy.org/sympy/rev/35ea4723788e" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/7e62d0d6a179" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/931e4bbbec07" rel="nofollow">3</a>, <a href="http://hg.sympy.org/sympy/rev/f17e3ff93118" rel="nofollow">4</a>, <a href="http://hg.sympy.org/sympy/rev/df56f8070da9" rel="nofollow">5</a>) </li><li>all <tt>sys.path</tt> hacks were moved to just 2 places - pyglet and examples (<a href="http://hg.sympy.org/sympy/rev/ccd8afb93124" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/b62b512edd2f" rel="nofollow">2</a>, <a href="http://hg.sympy.org/sympy/rev/2c5c759d4eed" rel="nofollow">3</a>) </li><li>SymPy objects should work in <tt>numpy</tt> arrays now (<a href="http://hg.sympy.org/sympy/rev/23473c1194e4" rel="nofollow">commit 1</a>, <a href="http://hg.sympy.org/sympy/rev/ab960e55ee42" rel="nofollow">2</a>) </li><li>hand written sympify() parser was rewritten and simplified using Python AST (<a href="http://hg.sympy.org/sympy/rev/ad3704adbd53" rel="nofollow">commit</a>) </li></ul>See also <a href="http://code.google.com/p/sympy/wiki/Changes">Changes</a>.Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0tag:blogger.com,1999:blog-2520472460430880330.post-82794347899342525052007-12-22T04:57:00.000-08:002007-12-22T04:59:23.630-08:00Google Highly Open Participation Contest 2007-8SymPy <a href="http://code.google.com/p/sympy/wiki/GHOP2007">participates</a> in the Google Highly Open Participation Contest 2007-8, if you are a high school student, go for it. Last chance to claim a task is January 22!Anonymoushttp://www.blogger.com/profile/02845032202161204018noreply@blogger.com0