Oh hey, that's kinda neat.

On one of the slides you mention that by generating equations symbolically 
> you can change change algorithmic complexity. Can you give an example of 
> this?


That hasn't happened yet, but is planned. Mostly, it has to do with the 
idea that in SymPy we have knowledge about the properties of the 
computations. We know if a variable is always positive, or real, or (most 
importantly) the properties of a matrix (upper triangular, symmetric, 
positive definite, etc...). For selecting matrix solving routines, this is 
important. Based on Matthew's talk at SciPy a few years back. This is a 
long way off, but should be achievable. 

In the immediate future we can start applying transformations to the 
expressions to improve computation speed (not an order of complexity 
change, but still speed improvements). Horner's method is already part of 
sympy, and could be applied to polynomials by default to reduce the number 
of flops needed to compute. We can also apply CSE at a much higher level 
than gcc will, which is necessary for some of the large expressions that 
are computed in mechanics.

-Jim

On Thursday, September 18, 2014 1:33:48 PM UTC-5, Aaron Meurer wrote:
>
> They are good slides. Good job Jim.
>
> On one of the slides you mention that by generating equations symbolically 
> you can change change algorithmic complexity. Can you give an example of 
> this?
>
> Aaron Meurer
>
> On Thu, Sep 18, 2014 at 1:29 PM, Jason Moore <moore...@gmail.com 
> <javascript:>> wrote:
>
>> Jim's slides on SymPy code gen got into the Python weekly.
>>
>> Jason
>> moorepants.info
>> +01 530-601-9791
>>
>> ---------- Forwarded message ----------
>> From: Python Weekly <ra...@pythonweekly.com <javascript:>>
>> Date: Thu, Sep 18, 2014 at 11:06 AM
>> Subject: Python Weekly - Issue 157
>> To: moore...@gmail.com <javascript:>
>>
>>
>>       Email not displaying correctly? View it in your browser. 
>> <http://us2.campaign-archive1.com/?u=e2e180baf855ac797ef407fc7&id=ce99590cba&e=c9acab854b>
>>  
>>       Welcome to issue 157 of Python Weekly. Another packed issue this 
>> week. Enjoy it!
>>
>> *Articles, Tutorials and Talks*
>>
>> Python bad practice, a concrete case 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=f16265daac&e=c9acab854b>
>> A lot of people read up on good Python practice, and there's plenty of 
>> information about that on the Internet. This post shows a concrete case of 
>> code that the author doesn't consider being the state of the art.
>>
>> Kernel tricks and nonlinear dimensionality reduction via RBF kernel PCA 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=2128e6807d&e=c9acab854b>
>> The focus of this article is to briefly introduce the idea of kernel 
>> methods and to implement a Gaussian radius basis function (RBF) kernel that 
>> is used to perform nonlinear dimensionality reduction via KBF kernel 
>> principal component analysis (kPCA).
>>
>> Bad Ideas in Python: The Worst Thing I've Ever Done 
>> <http://pythonweekly.us2.list-manage2.com/track/click?u=e2e180baf855ac797ef407fc7&id=bf9baee8d0&e=c9acab854b>
>>  
>> In this talk, James Powell shows us his experiences with the worst and 
>> "most evil" things he's encountered when coding in Python and gives demos 
>> on how to get around those errors to turn them into good ideas.
>>
>> Network Communications Clustering with Python and MongoDB 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=7329900f00&e=c9acab854b>
>> In this post we'll be clustering the behavior of users on a corporate 
>> network in order to identify malicious activity. The data will be stored in 
>> MongoDB which we'll access via the Monary and PyMongo packages. We'll be 
>> transforming data with NumPy and using scikit-learn for pre-processing and 
>> clustering.
>>
>> Building a text editor with PyQt: Part 3 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=bc911dfa9d&e=c9acab854b>
>> In the third part of this series, we'll be adding some slick extensions 
>> to our text editor for Finding and replacing text, Inserting an image and 
>> Word and symbol count
>>
>> Cracking Online Banking CAPTCHA Login Using Python 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=39a3bc5563&e=c9acab854b>
>> This post discusses a real world example on how to crack a login page for 
>> one of the biggest leading banks in the Middle East!
>>
>> Postgresql HStore, JSON data-type and Arrays with Peewee ORM 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=c38d2adeb8&e=c9acab854b>
>> This post showcases the peewee support for HStore, JSON document store, 
>> and arrays.
>>
>> Generating Fast and Correct Code with SymPy 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=4fc5a0d65d&e=c9acab854b>
>> All about the why and how of code generation in SymPy. Discusses the 
>> current state of converting symbolic math into fast numeric code, and gives 
>> a brief overview of current and future improvements.
>>
>> Pickling Python collections with non-built-in type keys and cycles 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=d5ecf7e0e7&e=c9acab854b>
>> A presentation of various problems and an effective solution for pickling 
>> Python collections with non-built-in types as keys and cycles or self 
>> references. Applies to dictionaries, default dictionaries, ordered 
>> dictionaries, sets, and ordered sets, at all levels of the pickle and 
>> cPickle protocol, in Python 2 and 3. 
>>
>> Teaching an old dog new tricks -- or, how I learned to love Python's 
>> str.format, and gave up on % 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=d27ba5298b&e=c9acab854b>
>>
>> DjangoCon 2014 Videos 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=a9439d5cf7&e=c9acab854b>
>>
>> Using Python Templates with Jinja and Google App Engine 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=9fe3bb445b&e=c9acab854b>
>>
>> Voice Recognition with Pocketsphinx in Python 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=285fae2f11&e=c9acab854b>
>>
>> PyGotham 2014 Videos 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=5cfe2ce95b&e=c9acab854b>
>>
>> Python + functional programming 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=5b0bfb96ff&e=c9acab854b>
>>
>> Introducing Blaze - Migrations 
>> <http://pythonweekly.us2.list-manage2.com/track/click?u=e2e180baf855ac797ef407fc7&id=388a0ad8b1&e=c9acab854b>
>>
>> Kiwi PyCon 2014 Videos 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=c5619c2762&e=c9acab854b>
>>
>> Hit the Ground Running with MongoDB and Python 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=8695171a97&e=c9acab854b>
>>
>> How-To: Python Compare Two Images 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=4b2a04e6b4&e=c9acab854b>
>>
>>
>> *Books*
>>
>> High Performance Python: Practical Performant Programming for Humans 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=5573f3229a&e=c9acab854b>
>> Your Python code may run correctly, but you need it to run faster. By 
>> exploring the fundamental theory behind design choices, this practical 
>> guide helps you gain a deeper understanding of Python's implementation. 
>> You'll learn how to locate performance bottlenecks and significantly speed 
>> up your code in high-data-volume programs.
>>
>>
>> *Interesting Projects, Tools and Libraries*
>>
>> pep8radius 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=ed9b2ec5b0&e=c9acab854b>
>> Fixing the entire project of PEP8 infractions ("PEP8 storms") can lead to 
>> merge conflicts, add noise to merges / pull requests and break (git) blame. 
>> pep8radius solves this problem by fixing only those PEP8 infractions 
>> incontained on the lines of the project which you've been working, leaving 
>> these sections "better than you found it" whilst keeping your commits 
>> focused on the areas of the codebase you were actually working on.
>>
>> Chronyk 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=f1cc7b684b&e=c9acab854b>
>> A Python 3 library for parsing human-written times and dates.
>>
>> ObjectPath 
>> <http://pythonweekly.us2.list-manage2.com/track/click?u=e2e180baf855ac797ef407fc7&id=99775b2a99&e=c9acab854b>
>> ObjectPath is a query language similar to XPath or JSONPath, but much 
>> more powerful thanks to embedded arithmetic calculations, comparison 
>> mechanisms and built-in functions. This makes the language more like SQL in 
>> terms of expressiveness, but it works over JSON documents rather than 
>> relations
>>
>> Qtile 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=69df4e9d27&e=c9acab854b>
>> A full-featured, hackable tiling window manager written and configured in 
>> Python.
>>
>> python bond 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=e721bf72f3&e=c9acab854b>
>> The Python module bond supports transparent remote/recursive evaluation 
>> between Python and another interpreter through automatic call 
>> serialization. It lets you call functions in other languages as they were 
>> normal Python functions. It also allows other languages to call Python 
>> functions as if they were native.
>>
>> Krakatau 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=5931e4bdbe&e=c9acab854b>
>> Java decompiler, assembler, and disassembler writte in Python.
>>
>> xmldataset 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=2664f1b713&e=c9acab854b>
>> xmldataset is designed to make the process of gathering your desired data 
>> into a Python structure as simple as possible through its plaintext 
>> collection schema, deliminated just like Python!
>>
>> ADR4Movie 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=54ef8efa5f&e=c9acab854b>
>> Generate an animated visualization of the asteroids in SDSS using 
>> matplotlib.
>>
>> syncthing-gui 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=9c6b95704b&e=c9acab854b>
>> GTK3 & python based GUI and notification area icon for Syncthing.
>>
>>
>> *Upcoming Events and Webinars*
>>
>> Django Messaging: Build Distributed, Run Concurrent - Cambridge, MA 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=faacd91c13&e=c9acab854b>
>> Understand the growing role of messaging in today's state of the art web 
>> applications, cloud computing infrastructures, and the Internet of Things 
>> (IoT). This talk will take you on a tour of the various messaging libraries 
>> and protocols that can be used with Django. Learn what ZeroMQ is, how to 
>> leverage AMQP via RabbitMQ, or how to start solving your concurrent 
>> problems quickly with Celery.
>>
>> Forum Contest: Create a rock-paper-scissors game in Python 
>> <http://pythonweekly.us2.list-manage1.com/track/click?u=e2e180baf855ac797ef407fc7&id=dc386ef72a&e=c9acab854b>
>> Create a game using Python that let's players play a game of 
>> rock-paper-scissors. The exact elements are up to you 
>> (rock-paper-scissors-lizard-spock anyone?) as are the play mechanics, but 
>> it should be runnable in the terminal using Python 3. Entries will be 
>> judged based on code and design.
>>
>> Intro to Python Workshop - San Diego, CA 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=316d0f95d3&e=c9acab854b>
>> This is the next Intro to Python workshop cohosted by San Diego PyLadies, 
>> San Diego Python, Inland Empire Pyladies, and Inland Empire Python Users 
>> Group.
>>
>> Silicon Valley Python Meetup September 2014 - Mountain View, CA 
>> <http://pythonweekly.us2.list-manage.com/track/click?u=e2e180baf855ac797ef407fc7&id=d378eff966&e=c9acab854b>
>> This talk will show how to use IPython and Plotly to make interactive 2D, 
>> 3D, and streaming plots. We'll also demo how to convert matplotlib, 
>> prettyplotlib, seaborn, and ggplot plots into web-based, shareable plots 
>> drawn with D3.js (a JavaScript visualization library).   
>>
>> *Share Python Weekly*  [image: Facebook] 
>> <http://www.facebook.com/share.php?u=http%3A%2F%2Fus2.campaign-archive1.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&t=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> Twitter] 
>> <http://twitter.com/intent/tweet?text=Python%20Weekly%20-%20Issue%20%20157%20-%20http%3A%2F%2Feepurl.com%2F3xU7X>
>>  [image: 
>> Reddit] 
>> <http://reddit.com/submit?url=http%3A%2F%2Fus2.campaign-archive2.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&title=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> StumbleUpon] 
>> <http://www.stumbleupon.com/submit?url=http%3A%2F%2Fus2.campaign-archive1.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&title=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> DZone] 
>> <http://www.dzone.com/links/add.html?url=http%3A%2F%2Fus2.campaign-archive1.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&title=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> LinkedIn] 
>> <http://www.linkedin.com/shareArticle?mini=true&url=http%3A%2F%2Fus2.campaign-archive2.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&title=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> Digg] 
>> <http://digg.com/submit?phase=2&url=http%3A%2F%2Fus2.campaign-archive2.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&title=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> Delicious] 
>> <http://del.icio.us/post?url=http%3A%2F%2Fus2.campaign-archive1.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba&title=Python%20Weekly%20-%20Issue%20%20157>
>>  [image: 
>> Slashdot] 
>> <http://slashdot.org/bookmark.pl?title=Python%20Weekly%20-%20Issue%20%20157&url=http%3A%2F%2Fus2.campaign-archive2.com%2F%3Fu%3De2e180baf855ac797ef407fc7%26id%3Dce99590cba>
>>  
>>    
>> You are receiving our weekly newsletter because you signed up at 
>> http://www.PythonWeekly.com. 
>>
>> Unsubscribe 
>> <http://pythonweekly.us2.list-manage.com/unsubscribe?u=e2e180baf855ac797ef407fc7&id=9e26887fc5&e=c9acab854b&c=ce99590cba>
>>  
>> moore...@gmail.com <javascript:> from this list | Forward to a friend 
>> <http://us2.forward-to-friend.com/forward?u=e2e180baf855ac797ef407fc7&id=ce99590cba&e=c9acab854b>
>>  
>> | Update your profile 
>> <http://pythonweekly.us2.list-manage2.com/profile?u=e2e180baf855ac797ef407fc7&id=9e26887fc5&e=c9acab854b>
>>  
>> *Our mailing address is:* 
>> Python Weekly
>> Brooklyn
>> Brooklyn, NY 11209
>>
>> Add us to your address book 
>> <http://pythonweekly.us2.list-manage1.com/vcard?u=e2e180baf855ac797ef407fc7&id=9e26887fc5>
>>
>> *Copyright (C) 2014 Python Weekly All rights reserved.* 
>>       
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sympy+un...@googlegroups.com <javascript:>.
>> To post to this group, send email to sy...@googlegroups.com <javascript:>
>> .
>> Visit this group at http://groups.google.com/group/sympy.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sympy/CAP7f1AjK72cVppMb1yHK9BckFg7fWkinTFnue4tpH3v7mu99Mw%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/sympy/CAP7f1AjK72cVppMb1yHK9BckFg7fWkinTFnue4tpH3v7mu99Mw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/ca6ded35-e587-4954-ba48-7074b3439bae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to