I've addressed this at the issue: https://github.com/sympy/sympy/issues/9593


Jason
moorepants.info
+01 530-601-9791

On Tue, Jun 30, 2015 at 9:40 PM, Mike Roberts <[email protected]>
wrote:

> Hi friends, please allow me to introduce myself. My name is Mike Roberts.
> I am a computer science PhD student at Stanford. I've been using sympy
> recently to help me solve some fun optimization problems.
>
> I have encountered some unexpected behavior in the
> sympy.utilities.autowrap module. I believe I am running into an
> undocumented hard-coded limit on the number of symbols I can pass into
> sympy.utilities.autowrap.ufuncify(...). Here is the code snippet that
> demonstrates the unexpected behavior I'm seeing.
>
> from pylab import *
> import sympy
> import sympy.utilities.autowrap
>
> zero_expr = sympy.sympify("0")
>
> num_syms           = 31
> syms               = [ sympy.Symbol("x_%02d"%i) for i in range(num_syms) ]
> vals               = zeros(len(syms))
> zero_expr_ufuncify =
> sympy.utilities.autowrap.ufuncify(args=syms,expr=zero_expr,backend="numpy",verbose=True)
>
> # works
> print zero_expr_ufuncify(*vals)
> print
>
> num_syms           = 31
> syms               = [ sympy.Symbol("x_%099d"%i) for i in range(num_syms) ]
> vals               = zeros(len(syms))
> zero_expr_ufuncify =
> sympy.utilities.autowrap.ufuncify(args=syms,expr=zero_expr,backend="numpy",verbose=True)
>
> # also works
> print zero_expr_ufuncify(*vals)
> print
>
> num_syms           = 32
> syms               = [ sympy.Symbol("x_%02d"%i) for i in range(num_syms) ]
> vals               = zeros(len(syms))
> zero_expr_ufuncify =
> sympy.utilities.autowrap.ufuncify(args=syms,expr=zero_expr,backend="numpy",verbose=True)
>
> # doesn't work
> print "about to evaluate ufunc with 32 args..."
> print zero_expr_ufuncify(*vals)
> print
>
> The first two calls to zero_expr_ufuncify(*vals) behave as expected,
> returning 0.0. But the last call to zero_expr_ufuncify(*vals) causes a
> segmentation fault. The exact error I'm getting is as follows.
>
> Segmentation fault: 11
>
> The only difference between these calls is that
> sympy.utilities.autowrap.ufuncify(...) was called with symbol lists of
> different lengths. For both behaves-as-expected calls, the corresponding
> symbol list is of length 31. For the does-not-behave-as-expected call, the
> corresponding symbol list is of length 32.
>
> Note that the second call has a corresponding symbol list of length 31,
> but the symbols have very long names. Since this call behaves as expected,
> I believe this is not a problem of the generated C code having too many
> ASCII characters on a single line.
>
> Note that I also found a post describing a similar issue on the Google
> Group. However, the code example from the Google Group is targeting a
> Fortran backend. Therefore, I believe the issue on the Google Group is
> different to the one I'm reporting here.
>
>
> https://groups.google.com/forum/#!searchin/sympy/ufuncify/sympy/kgzcR8Qu7s4/RAGTw7A0I3oJ
>
> I'm running sympy 0.7.6-1, which I installed via the Canopy Package
> Manager on OSX Yosemite 10.10.3, 64 bit.
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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/3655b314-fd8e-4945-b397-c4ccadb9b9b1%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/3655b314-fd8e-4945-b397-c4ccadb9b9b1%40googlegroups.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 [email protected].
To post to this group, send email to [email protected].
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/CAP7f1AgNR-1%3D24r_%3DhWTpxAZdLYL0gfXVM3W3PYE0gHno1m_Zw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to