>
> 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
> 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
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
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
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
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
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
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
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
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
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
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
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
>
> @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
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:
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[
> 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
> 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
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
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
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
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
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
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/
@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:
>
>
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
> 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
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.
>
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,
>
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
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
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
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
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
> 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.
>
> -
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
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
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
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
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
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
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))
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
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
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),
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
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?
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
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
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
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
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
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
>
>
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
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
>
>
> > 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)
>
>
> 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
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
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
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
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
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
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
>
>
> 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
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
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
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
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
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
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
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
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
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
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
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
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.
>>
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
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'
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
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'
>
> 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
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
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
>
> 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
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:
>
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
: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
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
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
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
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
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
, 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
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?
> >
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
>
>
> 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
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
>
>
> 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
> 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):
..
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 - 100 of 711 matches
Mail list logo