Re: [sympy] What is out there for SymPy code generation / optimizing compiler effort?

2015-11-11 Thread Matthew Rocklin
> > what is your wishlist for SymPy? ND-Arrays -- 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 t

Re: [sympy] Integrate over Union of Interval's

2015-03-27 Thread Matthew Rocklin
> Matthew... what do you think of the union of intervals as an alternative to the usual ranges in integrate/Integral? Seems like a decent plan. I haven't been actively working on stats in a while so I don't have strong opinions here. On Thu, Mar 26, 2015 at 6:50 PM, Aaron Meurer wrote: > I t

Re: [sympy] Integrate over Union of Interval's

2015-03-26 Thread Matthew Rocklin
You don't need to square the random variable to compute the result. You just need to integrate the pdf over x < -1 and x > 1 On Thu, Mar 26, 2015 at 5:42 AM, Francesco Bonazzi wrote: > > Well, I was a bit surprised too, but the stats module apparently does so, > as shown in this example: > > In

Re: [sympy] Re: PyDy Website Sprint this weekend Sat February 7, 2015 18:00-3:00 UTC

2015-02-02 Thread Matthew Rocklin
Locations Davis/Sacramento (10:00 - 19:00 PST) Gilbert Chris Jason Luke Minneapolis (12:00 - 21:00 CT) Jim Clearly Jim needs to move out to the West Coast. On Mon, Feb 2, 2015 at 1:27 PM, Jason Moore wrote: > BTW, if you are intending to apply to GSoC (which we are likely to do > again thi

Re: [sympy] Convolution of a size-one pulse with itself

2015-01-02 Thread Matthew Rocklin
Hrm, that is unfortunate. Hopefully the issue helps. I've taken the liberty of renaming it to terms that I think will stand out in Sympain's minds, On Thu, Jan 1, 2015 at 9:51 PM, Mark Wiebe wrote: > I've tried a few different ways to get sympy to integrate a convolution of > a pulse from -0.5

Re: [sympy] Re: Wow. (was: Add pep8 config, use pep8 in travis (#8538))

2015-01-02 Thread Matthew Rocklin
Looking at the conversation you two look frustrated but still pretty civil; I'm actually impressed at how civil both of you are given that it's a PEP8 conversation. I have experienced far less civil and constructive conversations on PRs in SymPy without them being locked to people officially liste

Re: [sympy] Writing a fast pattern matcher, updates and questions

2014-11-29 Thread Matthew Rocklin
Matching against identities can be valuable. Writing out several variations for a intended single pattern feels like a hack. Or at least, that was my experience with my matrix expressions system. I wasn't able to cleanly add in identities so I shoved in lots more patterns. Things worked. The p

Re: [sympy] Writing a fast pattern matcher, updates and questions

2014-11-27 Thread Matthew Rocklin
Response in line On Wed, Nov 26, 2014 at 3:19 PM, James Crist wrote: > All, > > In my spare time, I've been working on implementing a fast pattern matcher > that accounts for Associative and Commutative symbols. It's going to be a > while before I'm ready to release the code (it needs some serio

Re: [sympy] The slowest of the slow

2014-09-26 Thread Matthew Rocklin
The stats test could be made significantly faster. Probably in many of these cases tests could be sped up with little effort. Knowing where to focus this effort seems really helpful. Thanks! On Sep 26, 2014 4:23 PM, "Peter Brady" wrote: > One of the reasons for the poor maintenance of the @slow

Re: [sympy] stats module

2014-09-25 Thread Matthew Rocklin
Yeah, wow, that expression and plot does look horrible. Looks like a bug to me. Generally integration on piecewise functions probably isn't as pretty as integration on normal distributions. On Wed, Sep 24, 2014 at 8:29 AM, clemens novak wrote: > Hello, > > i'm using sympy 0.7.5. and ran into t

Re: [sympy] ufuncify now creates actual ufuncs

2014-08-27 Thread Matthew Rocklin
Cool On Wed, Aug 27, 2014 at 8:07 PM, James Crist wrote: > I still need to do some cleanups and add tests, but I finally have this > working and thought I'd share. I'm really happy with this: > > In [1]: from sympy import * > > In [2]: a, b, c = symbols('a, b, c') > > In [3]: expr = (sin(a) + s

Re: [sympy] SymPy 0.7.6 release

2014-08-26 Thread Matthew Rocklin
Harsh's work isn't yet in. https://github.com/sympy/sympy/pull/7523 On Tue, Aug 26, 2014 at 9:28 PM, Tim Lahey wrote: > All of Kundan's pull requests that I reviewed have been merged, so unless > he did some work after the deadline, all of his are in. Nothing from his > work should block the r

Re: [sympy] Autowrap, ufuncify, and matrices

2014-08-14 Thread Matthew Rocklin
1. Maybe if mat is NULL then we malloc? But probably the answer is what you suggest with an explicit kwarg 2. Theano has a solution for this. It may be worth looking at how they handle broadcasting. While this is accessible through SymPy it looks like the SymPy documentation on this feature i

Re: [sympy] Matrix Code Generation Opinion Thread

2014-08-05 Thread Matthew Rocklin
> > @Matthew: > > Thanks, I think a lot of people could really use this. What my main goal > is right now is to get the basework down for *evaluating* single matrices > with expressions as elements. After that I plan on working though > correlating MatrixExpr with blas/lapack functionality so that

Re: [sympy] Matrix Code Generation Opinion Thread

2014-08-04 Thread Matthew Rocklin
Thank you for working on this. I think that this is important work. I would express my views by they happen to be completely in line with Tim's response which mostly says that your intuition on this problem seems sensible. Thanks again, -Matt On Mon, Aug 4, 2014 at 4:13 PM, Jason Moore wrote:

Re: [sympy] SymPy talk at PyData Berlin

2014-07-29 Thread Matthew Rocklin
bclassing the printer, > but we would also gladly accept pull requests that added this). > > Aaron Meurer > > On Tue, Jun 10, 2014 at 8:58 AM, Matthew Rocklin > wrote: > > We do have ccode and fcode for C and Fortran > > > > In [25]: fcode(sin(x)**2) > > Out[

Re: [sympy] Draft for a new pattern matcher

2014-07-19 Thread Matthew Rocklin
> Hmm. What's wrong with x = Wild('x', integer=True, odd=True), like Symbol? +1 On Sat, Jul 19, 2014 at 9:58 AM, Sergey Kirpichev wrote: > On Monday, July 14, 2014 11:36:19 AM UTC+4, F. B. wrote: >> >> x = Wild('x') >> x.is_integer().OddQ() >> >> > Hmm. What's wrong with x = Wild('x', intege

Re: [sympy] Re: Pattern matching

2014-07-19 Thread Matthew Rocklin
> On Thursday, July 17, 2014 7:07:19 PM UTC-7, Matthew wrote: >> >> The benefit of pattern matching is that 1 complex if-then-else >> constructions are hard to write well. >> > > Writing 10,000 rules and being sure that you have 100% coverage of all > possible case and no overlap is > a challen

Re: [sympy] Re: Pattern matching

2014-07-17 Thread Matthew Rocklin
I should correct my previous e-mail and say that the popularity of *this kind of rich pattern matching* has been dead since the 90s. On Thu, Jul 17, 2014 at 7:07 PM, Matthew Rocklin wrote: > The benefit of pattern matching is that 1 complex if-then-else > constructions are hard to

Re: [sympy] Re: Pattern matching

2014-07-17 Thread Matthew Rocklin
The benefit of pattern matching is that 1 complex if-then-else constructions are hard to write well. Richard the popularity of pattern matching has been pretty much dead since the 90s. That being said it isn't a poor crutch, languages like Maude, Elan, and more recently Stratego/XT demonstrat

Re: [sympy] FOL Constants and Unification

2014-07-17 Thread Matthew Rocklin
The problem with a separate class is that you suddenly need make new subclasses for lots of different situations (exprs, sets, matrices). Although maybe Soumya is working in a simpler setting. On Thu, Jul 17, 2014 at 4:52 PM, Aaron Meurer wrote: > On Thu, Jul 17, 2014 at 6:50 PM, Matt

Re: [sympy] FOL Constants and Unification

2014-07-17 Thread Matthew Rocklin
What is the class of constants that you'd like to include in your expressions? Are they all valid sub-expressions? If so, and if you're ok with a hack, you could always differentiate between constant Symbols and wild-card Symbols by using some odd convention, like the names start with `~` or they

Re: [sympy] Moments of a normal distribution

2014-07-16 Thread Matthew Rocklin
Cool. It's nice to see SymPy used in this way. On Wed, Jul 16, 2014 at 5:04 PM, Justin Vincent wrote: > A little notebook that came out of this work, is case anyone is interested: > > http://nbviewer.ipython.org/github/justinvf/algorithmshop/blob/master/20140715-mixture-models/pearson_gaussian

Re: [sympy] Moments of a normal distribution

2014-07-15 Thread Matthew Rocklin
Use sympy.stats, not sympy.statistics In [1]: x, mu = symbols('x,mu', real=True) In [2]: sigma = symbols('sigma', positive=True) In [3]: from sympy.stats import * In [4]: X = Normal('X', mu, sigma) In [5]: moment? Type:function String form: File:/home/mrocklin/workspace/sympy/

Re: [sympy] Re: Meeting sometime this week?

2014-07-09 Thread Matthew Rocklin
@Fred, the problems that Jason has are small matrices containing many complex scalar expressions. Is Theano still competitive for these applications? I'm +1 on adding support for sympy.Matrix -like functionality to fcode and ccode. On Wed, Jul 9, 2014 at 11:52 AM, Frédéric Bastien wrote: > >

Re: [sympy] Draft for a new pattern matcher

2014-07-04 Thread Matthew Rocklin
Only semi-related, but here is a small pattern matching project. It's strictly for non-associative operators and so not appropriate for SymPy. It does function decently though https://github.com/mrocklin/unification On Fri, Jul 4, 2014 at 12:49 AM, F. B. wrote: > > > On Friday, July 4, 2014

Re: [sympy] Draft for a new pattern matcher

2014-07-03 Thread Matthew Rocklin
> By the way, that's another major problem. Mathematica allows to write any expression tree, even those that are mathematically incorrect. In SymPy, many constructors raise exceptions if they don't recognize the arguments. The pattern matcher could incur into this problem if the rewrite rules are n

Re: [sympy] Converting dict containing SymPy objects to JSON

2014-06-21 Thread Matthew Rocklin
Sympy terms can be serialized/deserialized somewhat robustly with str and sympify. On Jun 20, 2014 11:53 AM, "Aaron Meurer" wrote: > You should probably just store the name of the symbol in the dictionary as > a string. You may also want to do that for the floats if precision issues > come up. >

Re: [sympy] GSoC Reunion Lottery

2014-06-12 Thread Matthew Rocklin
I don't think Google is paying expenses. I think that you're responsible for airfare and hotel. On Thu, Jun 12, 2014 at 10:39 AM, Aaron Meurer wrote: > This year, instead of a mentor summit, Google is having a "reunion", > which is open to all current and former GSoC participants (students, >

Re: [sympy] SciPy 2014 SymPy BoF

2014-06-11 Thread Matthew Rocklin
ust SymPy devs, then >> we can discuss the future of the project (or whatever). If there are a >> lot of non-devs, it can be a panel for questions or something like >> that. A Q/A style is great for avoiding the issue you are worried >> about if there are a lot of SymPy use

Re: [sympy] SymPy talk at PyData Berlin

2014-06-10 Thread Matthew Rocklin
We do have ccode and fcode for C and Fortran In [25]: fcode(sin(x)**2) Out[25]: ' sin(x)**2' In [26]: ccode(sin(x)**2) Out[26]: 'pow(sin(x), 2)' These don't support matrices though. The Theano code printer produces Theano expressions. The Theano project then compiles these expressions dow

Re: [sympy] Re: Help with Vector

2014-06-08 Thread Matthew Rocklin
point. But in that case, would the API remain the same? What > you suggest, would involve either- > > A. modifying the code for trigsimp itself > > or > > B. having a 'trigsimp' method in Vector itself (already done this) > > > > > On Sun, Jun 8, 2

Re: [sympy] Re: Help with Vector

2014-06-07 Thread Matthew Rocklin
1. How do I ensure methods like 'trigsimp' work with these classes? Currently, passing a vector like *(sin(a)+cos(a))**2*i - j* to trigsimp returns the correct answer mathematically, _but_ the instance is of type Add (instead of the expected VectorAdd). How do I prevent this? I ran into this when

Re: [sympy] Re: pattern replacement for complex numbers and manual factorization

2014-06-07 Thread Matthew Rocklin
Also I'm glad to see people using strategies. I've since pulled it out to an external package. Although this wouldn't support SymPy tree traversals like bottom_up without slightly more work. https://github.com/logpy/strategies On Sat, Jun 7, 2014 at 6:38 PM, Matthew Rocklin

Re: [sympy] Re: pattern replacement for complex numbers and manual factorization

2014-06-07 Thread Matthew Rocklin
> I think that SymPy needs a better term rewriting system. And also a better pattern matcher. @Franz Are you interested in doing work in this area? On Sat, Jun 7, 2014 at 10:39 AM, F. B. wrote: > Sorry instead of rl try to put lambda x: next(rl(x)) into the exhaust ( > ... ) expression. > > -

Re: [sympy] Proposal for StackExchange site for Sage and ALL its subcomponents

2014-06-05 Thread Matthew Rocklin
Stackoverflow seems sufficient for SymPy. I think that the SymPy questions benefit from being within the broader stackoverflow framework. They get broad exposure and more consistent review/moderation. I don't think that the Sage/SymPy community is large enough to power a self-sustained stack exc

Re: [sympy] SciPy 2014 SymPy BoF

2014-06-05 Thread Matthew Rocklin
If this is just folks entering a room and chatting then yeah, i can moderate that (assuming someone like Aaron doesn't want to take charge). If it's a few SymPy folks having a panel discussion then I'm also happy to come with a few prepared insighful/annoying questions to get the discussion starte

Re: [sympy] SymPy talk at PyData Berlin

2014-06-05 Thread Matthew Rocklin
I only looked at one of his notebooks but my synopsis is that he uses SymPy to derive a matrix of scalar expressions using basic math and derivatives. He then translates these equations by hand into numpy expressions. He then does some application specific analysis. >From the SymPy perspective i

Re: [sympy] SciPy 2014 SymPy BoF

2014-06-04 Thread Matthew Rocklin
Also attending and happy to participate. Probably not willing to organize. Kyle were you just gauging interest or were you asking for someone to spearhead the BOF. On Wed, Jun 4, 2014 at 11:09 AM, Aaron Meurer wrote: > I will be at the conference and will definitely attend anything SymPy > re

Re: [sympy] Implementing Neural Networks in sympy

2014-05-24 Thread Matthew Rocklin
Beware that computations in SymPy are much much slower than computations in Theano. Also symbolic computations that involve many many operations quickly become very complex. On Sat, May 24, 2014 at 4:52 AM, AS1 wrote: > Hi, > I want to use sympy to implement a symbolic neural network. I have w

[sympy] Planet SymPy

2014-05-21 Thread Matthew Rocklin
Can anyone recommend an RSS e-mail delivery mechanism? I'd like to follow our GSoC students posts on planet.sympy but have stopped regularly visiting my normal RSS readers. Also, just a general recommendation for folks to check out the blogposts. There are already a few up there. I find that fol

Re: [sympy] Simplification question

2014-05-19 Thread Matthew Rocklin
Just to increase awareness we *do* have a sexy search mechanism in SymPy living in sympy.strategies.tree (by my definition of sexiness). In [1]: from sympy.strategies.tree import greedy, brute In [2]: funcs = [simplify, expand, fu, powsimp, sqrtdenest] In [3]: objective = lambda x: len(str(x))

Re: [sympy] Simplification question

2014-05-19 Thread Matthew Rocklin
Short answer, "No." In full generality what you're describing is actually a challenging search problem. We've thought about attacking this problem more rigorously in SymPy but haven't gotten around to it except in a few small cases like trig simplification (see fu function). On Mon, May 19, 201

Re: [sympy] Failing doctest for as_dict method

2014-05-15 Thread Matthew Rocklin
Hi Joachim, Often times when people first send e-mails to the mailing list it takes a while for it to get through. I wouldn't blame them for sending multiple times. I've been guilty of this in the past. Hi Abhishek, You have a variable other, in your method definition that is never defined. M

Re: [sympy] Re: ContinuousRV bug?

2014-05-14 Thread Matthew Rocklin
Generally when debugging sympy.stats I recommend inspecting the integrals that it produces using the evaluate=False keyword. Sympy.stats almost always shoves off most of the hard work onto another SymPy module like integrals. In [1]: from sympy.stats import * In [2]: X = ContinuousRV(x, exp(-x),

Re: [sympy] vector expressions with unspecified dimension

2014-04-28 Thread Matthew Rocklin
I'd love to have someone implement matrix derivative. This shouldn't be hard for someone who understands them well. On Mon, Apr 28, 2014 at 7:37 PM, Aaron Meurer wrote: > These little issues with the transpose are the reason this isn't > implemented yet. > > Aaron Meurer > > On Mon, Apr 28, 20

Re: [sympy] SymbolicC++

2014-04-28 Thread Matthew Rocklin
This seems to be going down the same path as previous conversations. I don't think that anyone will come away satisfied. I recommend that both sides resist the urge to fight. Alternatively Richard and Joachim, perhaps the two of you would enjoy continuing this conversation privately off list?

[sympy] Policy on `is_foo` predicates

2014-04-28 Thread Matthew Rocklin
When making a predicate on a sympy class should we always use is_foo as in is_Real or should we use isfoo as in isinstance? What is the standard style for denoting that something is a predicate? This came up in https://github.com/sympy/sympy/pull/7346 for Set.issubset / Set.is_subset. -- You re

Re: [sympy] MatrixSymbol and diff function

2014-04-25 Thread Matthew Rocklin
Yeah, just to be clear, while I'll argue pretty strongly against injecting Symbol I should say that it's a perfectly rational thing to do. Clifford I'm actually pretty impressed that you touched this fairly deep issue. Have you been developing on SymPy long? On Fri, Apr 25, 2014 at 2:22 PM, Aar

Re: [sympy] MatrixSymbol and diff function

2014-04-25 Thread Matthew Rocklin
It is convenient to know that all information about a term is in it's type and it's .args. This is true for *almost *all of sympy and it makes it very convenient to interact with from other systems. Any occasion where this doesn't occur (e.g. Symbol, Integer, AppliedPredicate) ends up being a hug

Re: [sympy] MatrixSymbol and diff function

2014-04-25 Thread Matthew Rocklin
Matrix expressions use new assumptions so assumptions are stored outside of the expression. There are good reasons for this. See distinction here http://matthewrocklin.com/blog/work/2013/02/05/Assuming/ . See example here http://scicomp.stackexchange.com/questions/74/symbolic-software-packages-f

Re: [sympy] Questions about the goals of CSymPy

2014-04-25 Thread Matthew Rocklin
Yeah, it's a pretty swell algorithm. Kudos to Chris Smith. It's also a great usecase of the strategies / decision tree stuff. I'm happy to go over this with anyone if they're interested. On Fri, Apr 25, 2014 at 9:01 AM, Ondřej Čertík wrote: > all of the patterns in a good data structure

Re: [sympy] MatrixSymbol and diff function

2014-04-25 Thread Matthew Rocklin
Yeah, Aaron has been on me to remove the string from MatrixSymbol. My opinion is that we should allow non-basics in args. This will help us avoid recreating all of Python. I generally lose this argument. Where I win though is with the claim that Symbol is way too magical and big to be used in M

Re: [sympy] Questions about the goals of CSymPy

2014-04-25 Thread Matthew Rocklin
> > I do not know what exactly these are. I read that AC unification can be polynomial, which sounds like a potential performance bottleneck; do we really need it? >>> >>> Given expression (like sin(2*x) + cos(2*x)) we need to match against many >>> possible patterns (like, ever

Re: [sympy] MatrixSymbol and diff function

2014-04-24 Thread Matthew Rocklin
I haven't thought about this issue much. Generally speaking though MatrixElement and derivatives and Matrix Expressions are absolutely in a not so perfect state. Help here is welcome. On Thu, Apr 24, 2014 at 4:16 PM, Aaron Meurer wrote: > If we override _eval_derivative on MatrixElement can w

Re: [sympy] Questions about the goals of CSymPy

2014-04-24 Thread Matthew Rocklin
> > > > We only need things > >> like multi-pattern unification and AC unification. >> > > I do not know what exactly these are. > I read that AC unification can be polynomial, which sounds like a > potential performance bottleneck; do we really need it? Given expression (like sin(2*x) + cos(2*x)

Re: [sympy] Questions about the goals of CSymPy

2014-04-24 Thread Matthew Rocklin
> > > By the way, is there any implementation of MiniKanren in C++? Maybe that > in such a case one could try to write some algorithms in a rule-based > format (as in MiniKanren), then either load these rules through SymPy and > LogPy, or through CSymPy and some other parsing library (or maybe even

Re: [sympy] Questions about the goals of CSymPy

2014-04-23 Thread Matthew Rocklin
j, I think that folks would generally be more comfortable if we better understood the strategy for eventual SymPy-CSymPy integration. Right now I don't have a good handle on this. From far away it's not apparent that this is a major design goal of CSymPy. On Wed, Apr 23, 2014 at 3:43

Re: [sympy] Questions about the goals of CSymPy

2014-04-23 Thread Matthew Rocklin
iciency cost, and I need to make > sure that the > speed of the C++ core is optimal. > > The time frame is roughly this summer, when we implement enough features > to be useful for PyDy and do some serious benchmarking on real world > problems. > After that it would be good time t

Re: [sympy] Questions about the goals of CSymPy

2014-04-23 Thread Matthew Rocklin
ompatibility with SymPy >> immediately. But >> there could be significant speed/efficiency cost, and I need to make >> sure that the >> speed of the C++ core is optimal. >> >> The time frame is roughly this summer, when we implement enough features >> to be us

Re: [sympy] Questions about the goals of CSymPy

2014-04-23 Thread Matthew Rocklin
Perhaps a good target workflow would be something like the following from sympy import * from csympy import * ... do work as usual ... In other words it would be nice for csympy to take over from sympy where it has functionality, but for sympy-proper to fill in all of the holes. Ondrej, is this

Re: [sympy] Questions about the goals of CSymPy

2014-04-23 Thread Matthew Rocklin
Just wanted to pop in and say that I really like this conversation. Question, how fast could sympy core be if we were to pull out some of the assumptions logic until a final step at the end. What stops core from reaching polys speed? On Apr 23, 2014 9:08 AM, "Ondřej Čertík" wrote: > On Wed, Apr

Re: [sympy] SymPy args and multiple dispatch

2014-04-15 Thread Matthew Rocklin
I really like this idea (though perhaps that's to be expected :) ) -- 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 g

Re: [sympy] SymPy args and multiple dispatch

2014-04-15 Thread Matthew Rocklin
> > > Performance? > Somebody (you) said that MD does not come for free. > I brought this up. I can't get a MD call to go below about a microsecond. This is a few times slower than a Python call. It's many times faster than your average SymPy operation. If anyone wanted to try to get it to go

Re: [sympy] Re: Tensor refactory

2014-04-11 Thread Matthew Rocklin
e. I mean the core as in the base > classes Basic, Expr, Add, Mul (and to some extend the numbers). Stuff > that *everything* uses. Not everything uses the sets. Unless I'm > missing some very core use of the sets. > > Aaron Meurer > > On Fri, Apr 11, 2014 at 11:05 AM, Matt

Re: [sympy] Re: Tensor refactory

2014-04-11 Thread Matthew Rocklin
The benefit of sets is that everyone can understand it but it still has enough complex elements (ProductSet, EmptySet) to capture the complexity of a lot of the more challenging systems (though probably not quite as challenging as tensors.) On Fri, Apr 11, 2014 at 9:05 AM, Matthew Rocklin wrote

Re: [sympy] Re: Tensor refactory

2014-04-11 Thread Matthew Rocklin
eurer wrote: > Oh, that's even better. Then we don't have to touch the core, and we > can merge even experimental things faster. > > Aaron Meurer > > On Fri, Apr 11, 2014 at 10:40 AM, Matthew Rocklin > wrote: > > Sets is a good play module for this purpose. Un

Re: [sympy] Re: Tensor refactory

2014-04-11 Thread Matthew Rocklin
Sets is a good play module for this purpose. Union and Intersection simplify pairwise much like Add and Mul would. I like the pairwise methods we have but the strategy to orchestrate them could use some cleaning up. Might be a good place to build intuition. See https://github.com/sympy/sympy/pu

Re: [sympy] zip() argument after * must be a sequence

2014-04-09 Thread Matthew Rocklin
Yeah, that's pretty fantastic. I'm curious to know how much work was involved. Is it possible to push your changes back to our codebase? We'd be happy to enable this. On Wed, Apr 9, 2014 at 3:38 PM, Ondřej Čertík wrote: > On Wed, Apr 9, 2014 at 3:43 AM, Groover wrote: > > I now have sympy gi

Re: [sympy] zip() argument after * must be a sequence

2014-04-05 Thread Matthew Rocklin
One low tech way around this problem is for Andy to fix iron Python compatibility issues in sympy as he runs into them. Presumably he has a suitable environment. For example he could find where we call this zip and wrap the arguments in a list and submit that as a change to sympy. Alternatively

Re: [sympy] zip() argument after * must be a sequence

2014-04-05 Thread Matthew Rocklin
They are the same. I was just suggesting x**y over pow(x, y). Mostly because that's my aesthetic preference. Feel free to ignore. By googling unicode_escape_decode() takes no arguments I run into a stackoverflow question that references using Python from F# so I'm going to guess that this is mo

Re: [sympy] zip() argument after * must be a sequence

2014-04-05 Thread Matthew Rocklin
Also, any feedback from using SymPy with IronPython? We don't get a lot of feedback from that community, your thoughts/concerns here would be appreciated. On Sat, Apr 5, 2014 at 8:40 AM, Matthew Rocklin wrote: > Also, feel free to use x**2 rather than pow(x, 2) . Your integrand here

Re: [sympy] zip() argument after * must be a sequence

2014-04-05 Thread Matthew Rocklin
Also, feel free to use x**2 rather than pow(x, 2) . Your integrand here is not the same as what you put in to the integral calculator. On Sat, Apr 5, 2014 at 8:38 AM, Matthew Rocklin wrote: > Symbol should be upper case. Other than that everything is fine. You > also might want to

Re: [sympy] zip() argument after * must be a sequence

2014-04-05 Thread Matthew Rocklin
Symbol should be upper case. Other than that everything is fine. You also might want to update your sympy version at some point In [1]: from sympy import * In [2]: x = Symbol('x') In [3]: d = diff(2 * pow(x, 2), x) In [4]: d Out[4]: 4*x In [5]: length = integrate(sqrt(1 + pow(d, 2)), (x, 5, 10

Re: [sympy] StackOverflow

2014-04-04 Thread Matthew Rocklin
I did this and was pleasantly surprised. I found a couple of good questions about modules that I work on. It's nice hearing how people use SymPy and provided me with ideas for future development (BTW, we should support solve for matrix expressions apparently). In short, it's good to get input fr

Re: [sympy] error when taking mixture of inverse gamma distributions

2014-04-04 Thread Matthew Rocklin
the list... > > Aaron Meurer > > > On Fri, Apr 4, 2014 at 4:17 PM, Matthew Rocklin wrote: > >> Done. You should announce that tip to the list. There were indeed some >> good questions on there. SO is a good way to keep our collective ear to >> the ground. >>

Re: [sympy] error when taking mixture of inverse gamma distributions

2014-04-04 Thread Matthew Rocklin
es (there are doozies, of course, but the worst > questions are closed automatically). > > Aaron Meurer > > > On Tue, Apr 1, 2014 at 9:48 AM, Matthew Rocklin wrote: > >> First, thanks for posting the question on stack overflow, I think that we >> should use

Re: [sympy] Add multiple dispatch as external dependency

2014-04-03 Thread Matthew Rocklin
I add an on_ambiguity callback in https://github.com/mrocklin/multipledispatch/pull/12 On Thu, Apr 3, 2014 at 7:53 AM, Matthew Rocklin wrote: > But again, the codebase is small. You're going to have a tough time > convincing me to change back to using MRO over issubclass. You'

Re: [sympy] Add multiple dispatch as external dependency

2014-04-03 Thread Matthew Rocklin
rrors instead of warnings when ambiguities are detected. On Thu, Apr 3, 2014 at 7:36 AM, Matthew Rocklin wrote: > > Why was the MRO-using code so involved? > > No particular recollection on this. It could also be that it was just > done before I understood the problem as wel

Re: [sympy] Add multiple dispatch as external dependency

2014-04-03 Thread Matthew Rocklin
rchholz wrote: > Am 02.04.2014 23:02, schrieb Matthew Rocklin: > >> The first incarnation of multipledispatch used mro. It worked. The code >> to detect ambiguities and select between multiple implementations in the >> multiple input case was fairly involved. I'

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
> > My point is, the order comes from the input itself, not from the registry. > AKA, you should use MRO. MRO satisfied monotonicity, which I think for > multiple dispatch basically says that if you subclass a class, it won't > change which function it will dispatch to (see > https://www.python.org

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
Sent from my mobile phone. > On Apr 2, 2014 4:42 PM, "Matthew Rocklin" wrote: > >> If it is possible to catch warnings then we could catch an MD warning and >> raise an error in SymPy if we wanted. My PRs introducing MD into SymPy >> include a tiny sympy.dispatch

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
x27;s priorities. On Wed, Apr 2, 2014 at 3:33 PM, Matthew Rocklin wrote: > Not all of the ties result from ambiguities. For example the signatures >>> (int,) and (float,) tie. Which should come first in the toposort? >>> >> >> For what input? >> > &g

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
> > Not all of the ties result from ambiguities. For example the signatures >> (int,) and (float,) tie. Which should come first in the toposort? >> > > For what input? > How MD operates now is that it forms a graph of signatures with an edge between two signatures if one is more specific than th

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
all ambiguities. On Wed, Apr 2, 2014 at 2:04 PM, Aaron Meurer wrote: > And going back to my original comments, wouldn't changing tie breaking or > mro schemes down the line be API breaks? > > Aaron Meurer > > > On Wed, Apr 2, 2014 at 4:02 PM, Matthew Rocklin wrote: >

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
the dispatched class that comes last in the > mro. > > Aaron Meurer > > > On Wed, Apr 2, 2014 at 3:58 PM, Matthew Rocklin wrote: > >> The multipledispatch project does not think hard about multiple >> inheritance in an intelligent way. It uses issubclass in order t

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
:56 PM, Joachim Durchholz wrote: > Am 02.04.2014 22:32, schrieb Matthew Rocklin: > > The multipledispatch project detects such ambiguous situations and raises >> a >> warning when the ambiguity is created/detected (at import time). >> > > Ah, that's good. &g

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
of __mro__? What happens > when you dispatch on a diamond inheritance? > > Aaron Meurer > > > On Wed, Apr 2, 2014 at 3:32 PM, Matthew Rocklin wrote: > >> The multipledispatch project detects such ambiguous situations and raises >> a warning when the ambiguity is create

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
The multipledispatch project detects such ambiguous situations and raises a warning when the ambiguity is created/detected (at import time). If the developers don't do anything about it then multipledispatch selects one of the implementations to take precedence pseudo-randomly. http://multiple-di

Re: [sympy] Re: Tensor refactory

2014-04-02 Thread Matthew Rocklin
Right, but ideally A(i, -i, j) and A(j, -i, i) *wouldn't unify. *Actually in this sort of case I suppose that they would because it could be that i == j. Generally speaking though unification variables do need match consistently within a term. (a, a) does not match to (1, 2). Perhaps we could c

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
a head with a relatively short memory. On Wed, Apr 2, 2014 at 10:51 AM, Joachim Durchholz wrote: > Am 02.04.2014 17:05, schrieb Matthew Rocklin: > > >>> >>> 1) On multidispatch itself: You can have either modularity or freeness >>> from surprises (this has been

Re: [sympy] Re: Tensor refactory

2014-04-02 Thread Matthew Rocklin
Yeah, Wild subclasses from Expr, alas. The logpy solution is to have a dispatched isvar function. It seems to me that the all tensor indices are in some sense wild. Shouldn't A[i, -i] unify to A[j, -j] ? On Wed, Apr 2, 2014 at 9:41 AM, F. B. wrote: > OK, after the last PR has been merged, I

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
, Apr 2, 2014 at 9:43 AM, Matthew Rocklin > wrote: > > There is a fair amount of logic in the call to ambiguities. Ordering > also > > does a topological sort. Those are algorithmic but are both done at > import > > time. > > > > One optimization would be

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
wrote: > On Wed, Apr 2, 2014 at 9:18 AM, Matthew Rocklin > wrote: > >> > >> As far as performance goes --- what are the bottlenecks? Is Julia's > >> multipledispatch the same fast? > >> If it is faster, can multipledispatch be made faster too? > >

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
In general I'm happy to do so. I'd like to wait until people actually starts to gain a following/developers though. On Wed, Apr 2, 2014 at 8:15 AM, Ondřej Čertík wrote: > On Wed, Apr 2, 2014 at 9:09 AM, Matthew Rocklin > wrote: > > It is possible to do either of these t

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
> > > As far as performance goes --- what are the bottlenecks? Is Julia's > multipledispatch the same fast? > If it is faster, can multipledispatch be made faster too? > Julia does dispatch at compile time, we do it at runtime. As implemented now this requires a dictionary lookup. I can imagine

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
r 2, 2014 at 4:22 AM, Joachim Durchholz wrote: > >> Am 02.04.2014 04:10, schrieb Matthew Rocklin: >> >> As a reminder, SymPy currently doesn't depend on any external libraries, >>> so >>> this particular move also represents a policy shift. This potenti

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
> > > 1) On multidispatch itself: You can have either modularity or freeness > from surprises (this has been discussed before - essentially, if you have > modularity, adding a module with new MD definitions can change dispatch > decisions for related combinations of types). > This isn't a problem i

Re: [sympy] Re: Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
> By the way, what about using the test cases to tag the types of all of SymPy's methods by the @dispatch decorator? Beware that multiply dispatched functions *do* incur a microsecond of overhead. This does not come for free. In [1]: from multipledispatch import dispatch In [2]: def f(x): ..

Re: [sympy] Add multiple dispatch as external dependency

2014-04-02 Thread Matthew Rocklin
t; > > What are your plans for multiple dispatch as a project? > > > > Why can't this just be included in SymPy? > > > > Do any other projects use multipledispatch, to your knowledge? > > > > How stable is the API? Will we need to worry about compatibility

  1   2   3   4   5   6   7   8   >