Archive for the 'sympy' Category
Monday, February 1st, 2010
Today I released the first public version of Scikit-Learn (release notes). It’s a python module implementing some machine learning algorithms, and it’s shaping quite good. For this release I did not want to do any incompatible changes, so most of them are just bug fixes and updates. For the next release, however, some more radical [...]
General, scikit-learn, sympy, Tecnología | Comments (1)
Saturday, September 5th, 2009
Google Summer of Code program is officially over. It has been four months of intense work, exciting benchmarks and patch reviewing. It was a huge pleasure working with you guys! As for the project, I implemented a complete logic module and then an assumption system for sympy (sympy.logic, sympy.assumptions, sympy.queries). I even had time to [...]
General, sympy, Tecnología | Comments (3)
Thursday, August 20th, 2009
I managed to overcome the overhead in ask() that arises when converting between symbol and integer representation of sentences in conjunctive normal. The result went beyond what I expected. The test suite for the query module got 10x times faster in my laptop. From 26 seconds, it descended to an impressive 2.03 secs. There is [...]
General, sympy, Tecnología | Comments (1)
Tuesday, August 18th, 2009
Today I’ve been doing some speed improvements for the logic module. More precisely, I implemented an efficient internal representation for clauses in conjunctive normal form. In practice this means a huge performance boost for all problems that make use the function satisfiable() or dpll_satisfiable(). For example, test_dimacs.py has moved from 2.7 seconds to an impressive [...]
General, sympy, Tecnología | Comments Off
Monday, August 17th, 2009
This commit introduced a new module in sympy: the refine module. The purpose of this module is to simplify expressions when they are bound to assumptions. For example, if you know that x>0, then you can simplify abs(x) to x. This code was traditionally embedded into the core, but now this will be part of [...]
sympy, Tecnología | Comments (3)
Monday, August 10th, 2009
The query module is finally in the main SymPy repository. I made substantial changes since last post, most of them at the user interface level (thanks to Vinzent and Mateusz for many insightful comments). Main function is ask(), which replaces the old expression.is_* syntax. You can ask many things. For example, you can ask if [...]
General, sympy, Tecnología | Comments Off
Tuesday, July 21st, 2009
Three months after I began to write sympy.queries, I feel it’s about time to include it in sympy’s trunk, so today I sent for review 4 patches that implement the complete query module. It’s been a lot of fun, but it has also caused me some headaches … specially last month trying to have the [...]
General, sympy, Tecnología | Comments (1)
Thursday, July 9th, 2009
The 0.6.5 release of SymPy is taking longer than expected because some bugs in the testing framework, so my query module is not merged into trunk (yet). In the meantime, I am implementing a refine module (very little code is available yet). The refine module implements a refine() function (better names accepted) that would work [...]
General, sympy, Tecnología | Comments (1)
Tuesday, June 30th, 2009
Last days I’ve been busy preparing the first public beta of SymPy 0.6.5. Most of the time was spent solving a bug that made documentation tests fail under python2.4, but now that this is solved, I hope that by the end of the week we could have a final release. When this release is published, [...]
General, sympy, Tecnología | Comments (1)
Tuesday, June 23rd, 2009
After some hacking on the queries module, I finally got it right without the limitations of past versions. You can check it out from my repo http://fseoane.net/git/sympy.git, branch master. It now relies even more on logic.inference.satisfiable(), which is just an implementation of the DPLL algorithm. Bad news is that (my implementation of ) dpll_satisfiable() is [...]
General, sympy, Tecnología | Comments Off
Saturday, June 20th, 2009
The DIMACS CNF file format is used to define a Boolean expression, written in conjunctive normal form, that may be used as an example of the satisfiability problem. The new logic module (sympy.logic) can read the content of a cnf file and transform it into a boolean expression suitable for use in other methods. For [...]
General, sympy, Tecnología | Comments Off
Friday, June 19th, 2009
Yesterday I finally merged the logic module in sympy’s official master branch, and should be released together with SymPy 0.6.5. Next thing to do: profile the code and write some docs before the release.
General, sympy, Tecnología | Comments Off
Monday, June 15th, 2009
Most annoying problem in my implementation of the query system is that it will not solve implications if the implicates are far away from each other. For instance, if the graph of known facts is something like this Integer —-> Rational –> Real –> Complex ^ ^ | | | ——- | | Prime Even [...]
General, sympy, Tecnología | Comments (1)
Friday, June 12th, 2009
I sent some patches to sympy-patches with an initial implementation of the query system. You can check it out by pulling from my branch: git pull http://fseoane.net/git/sympy.git master into your sympy repo. Some examples of what you can do (sample isympy session): In [1]: query(x, positive=True) Returns None, as we do not know whether x [...]
General, sympy, Tecnología | Comments (3)
Wednesday, June 3rd, 2009
This is the third time I attempt to write the assumption system. Other attempts could be described as me following the rule: “For any complex problem, there is always a solution that is simple, clear, and wrong.” My first attempt (although better than the current assumption system) did use very rudimentary logic and was not [...]
General, sympy, Tecnología | Comments (1)
Sunday, May 31st, 2009
The logic module is slowly becoming useful. This week I managed to get some basic inference in propositional logic working. This should be enough for the assumption sysmtem (although having first-order inference would be cool). You can pull from my branch: git pull http://fseoane.net/git/sympy.git logic Here are some examples of what it can do: First, [...]
sympy, Tecnología | Comments (4)
Friday, May 15th, 2009
The first task for my Summer of Code project is to write a nice boolean algebra module. I wanted a clean module that follows SymPy’s object model and that plays well with other objects. In practice this means that it should inherit from Basic and that it should behave well with python’s boolean values (True, [...]
sympy, Tecnología | Comments (1)
Monday, May 11th, 2009
As a prerequisite of my GSOC project I have to do some modifications on sympy’s current logic module (see previous post), so I decided to go out and take a look at what others are doing in this area. aima-python is a project that tries to implement all algorithms found in the excellent book AI: [...]
sympy, Tecnología | Comments (2)
Thursday, April 23rd, 2009
First post on my GSOC adventure. This year I got accepted in Google’s summer of code program as student, and my job will be to implement the assumptions framework in SymPy. Although the project officially is only about implementing an assumptions framework, I have to prepare the ground before the official start of the program [...]
General, sympy, Tecnología | Comments (1)