sympy: what's wrong with this picture?

Mensanator mensanator at aol.com
Mon Mar 3 19:24:30 EST 2008


On Mar 3, 4:53 pm, Carl Banks <pavlovevide... at gmail.com> wrote:
> On Mar 3, 4:47 pm, Mensanator <mensana... at aol.com> wrote:
>
>
>
>
>
> > On Mar 3, 2:49 pm, Carl Banks <pavlovevide... at gmail.com> wrote:
>
> > > On Mar 3, 3:40 pm, Mensanator <mensana... at aol.com> wrote:
>
> > > > Notice anything funny about the "random" choices?
>
> > > > import sympy
> > > > import time
> > > > import random
>
> > > > f = [i for i in sympy.primerange(1000,10000)]
>
> > > > for i in xrange(10):
> > > >   f1 = random.choice(f)
> > > >   print f1,
> > > >   f2 = random.choice(f)
> > > >   print f2,
> > > >   C = f1*f2
> > > >   ff = None
> > > >   ff = sympy.factorint(C)
> > > >   print ff
>
> > > > ##  7307 7243 [(7243, 1), (7307, 1)]
> > > > ##  4091 6829 [(4091, 1), (6829, 1)]
> > > > ##  8563 2677 [(2677, 1), (8563, 1)]
> > > > ##  4091 6829 [(4091, 1), (6829, 1)]
> > > > ##  8563 2677 [(2677, 1), (8563, 1)]
> > > > ##  4091 6829 [(4091, 1), (6829, 1)]
> > > > ##  8563 2677 [(2677, 1), (8563, 1)]
> > > > ##  4091 6829 [(4091, 1), (6829, 1)]
> > > > ##  8563 2677 [(2677, 1), (8563, 1)]
> > > > ##  4091 6829 [(4091, 1), (6829, 1)]
>
> > > > As in, "they're NOT random".
>
> > > > The random number generator is broken by the sympy.factorint()
> > > > function.
>
> > > > Random.choice() works ok if the factorint() function commented out.
>
> > > > ##  6089 1811 None
> > > > ##  6449 1759 None
> > > > ##  9923 4639 None
> > > > ##  4013 4889 None
> > > > ##  4349 2029 None
> > > > ##  6703 8677 None
> > > > ##  1879 1867 None
> > > > ##  5153 5279 None
> > > > ##  2011 4937 None
> > > > ##  7253 5507 None
>
> > > > This makes sympy worse than worthless, as it f***s up other modules.
>
> > > Dude, relax.
>
> > > It's just a bug--probably sympy is messing with the internals of the
> > > random number generator.  It would be a simple fix.  Instead of
> > > b****ing about it, file a bug report.
>
> > I did.
>
> > > Or better yet, submit a patch.
>
> > I would if I knew what the problem was.
>
> > I posted it here because someone recommended it.
> > I'm simply un-recommending it. Those who don't care
> > needn't pay any attention. Those who do should be
> > glad that faults are pointed out when found.
>
> 1. You can point out the faults of a program without insults and
> vulgarity

Did I insult someone?

And "fuck" in the context I used it means "messes with".
Now you know that the writer of that superbowl commercial
for almonds wanted to say "Robert Goulet fucks with your stuff".
But, due to censorship, changed it to "messes with".

>
> 2. You must be terribly difficult to please if one bug is enough to
> recommend against a program as "worse than worthless"

While we're on the subject of English, the word "worthless"
means "has no value". So, a program that doesn't work would
generally be "worthless". One that not only doesn't work but
creates side effects that cause other programs to not work
(which don't have bugs) would be "worse than worthless".

I'm not hard to please at all. I'm planning a later report
where I test sympy's factoring with that of the MIRACL library's
factor.exe program. It too, has a serious bug (and I'm not
a good enough C programmer to know how to fix it) but I have
a Python based workaround even though the MIRACL library
has no Python interface. But any mention I ever make of this
program will mention this bug in case anyone wants to use it.

>
> 3. You must be terribly naive if you expect a freeware program with a
> version number of 0.5.12 not to have bugs

No, but I guess I'm naive thinking that when someone posts a link to
such a program that he's recommending going and trying it out. That
is why they're making it available, isn't it? For people to try out
so they can get free testing? Aren't I doing my part? Should I just
uninstall it and forget it?

>
> Carl Banks




More information about the Python-list mailing list