[sage-support] How to install sagemathcloud on local computer?
Hello! I'd like to install sagemathcloud on my own computer to lunch it and try to patch it. How can I install sagemathcloud? I downloaded files from github and tried to lunch it but I haven't ~/.sagemathcloud directory I tried to find installation instructions via Yandex and Google but I didn't find anything. Best regards, Andrei Shirshov. -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
[sage-support] Re: How to install sagemathcloud on local computer?
I'd like to install sagemathcloud on my own computer to lunch it and try to patch it. Sorry, launch, not lunch :) -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
Re: [sage-support] How to install sagemathcloud on local computer?
On Sat, Mar 15, 2014 at 6:04 AM, Андрей Ширшов sh.andr@gmail.com wrote: Hello! I'd like to install sagemathcloud on my own computer to lunch it and try to patch it. How can I install sagemathcloud? I downloaded files from github and tried to lunch it but I haven't ~/.sagemathcloud directory I tried to find installation instructions via Yandex and Google but I didn't find anything. Best regards, Andrei Shirshov. Hi, SageMathCloud is not available for local install. -- William -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout. -- William Stein Professor of Mathematics University of Washington http://wstein.org -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
[sage-support] [ANN] OpenOpt Suite release 0.53: Stochastic programming addon now is BSD-licensed
hi all, I'm glad to inform you about new OpenOpt Suite release 0.53: Stochastic programming addon http://openopt.org/StochasticProgrammingnow is available for free (license: BSD) Some minor changes -- Regards, D. http://openopt.org/Dmitrey -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
[sage-support] sage: %runfile test.spyx ----------- output redirection to a file
sage: %runfile test.spyx compiles the file test.spyx, but output is shown in the terminal. The output is too large. How to redirect the output to a file like $ ./test.spyx out.txt -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
[sage-support] Re: trouble with deepcopy
On Thursday, March 13, 2014 3:05:22 PM UTC-7, Lee Worden wrote: sage: s = symbolic_expression( 'a(x)' ) sage: s.substitute_function( sage.symbolic.function_factory.function('a'), sage.symbolic.function_factory.function('A') ) A(x) sage: t = deepcopy( s ) Since symbolic expressions are not mutable, you shouldn't have a need to make deep copies of them. The behaviour does seem problematic, though. The problem you are seeing stems from: sage: sage.symbolic.function_factory.function('a') == s.operator() True sage: sage.symbolic.function_factory.function('a') == t.operator() False It looks like deep copy is a little too eager: it shouldn't make a copy of the function 'a', but it does. You end up with a different function (accessible via t.operator() ) which also prints as 'a' but isn't equal to the function 'a' you can create via sage.symbolic.function_factory.function. Basically, you got what you asked for: a COPY of the function, not the function itself. Something fishy is going on, though, because sage: a=s.operator() sage: deepcopy(a) a sage: deepcopy(a) == a True sage: deepcopy(a) is a False sage: deepcopy(a)(x).substitute_function( : sage.symbolic.function_factory.function('a'), : sage.symbolic.function_factory.function('A') ) A(x) so a function object by itself does get deepcopied correctly, but when it's sitting in an expression it is not. -- You received this message because you are subscribed to the Google Groups sage-support group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
Re: [sage-support] Re: Optimizing this function with Cython
On Fri, Mar 14, 2014 at 2:03 PM, Georgios Tzanakis gtzana...@gmail.com wrote: On Fri, Mar 14, 2014 at 4:49 PM, Robert Bradshaw rober...@math.washington.edu wrote: Note that intL[i][introws[i]] + j %w == 0: would probably be just (or nearly) as fast as ((int(tupleL[i])[int(rows[i])])+j %w)==0 Good to know, thanks.. If you're going to be dealing with arrays of ints you might want to look into NumPy Hmm.. I wish I knew that earlier, I deal with many of such arrays. and/or memory views for even more speed. Could you elaborate a bit on that? Or just give me a link? https://www.google.com/search?q=numpy+cython On Thu, Mar 13, 2014 at 7:58 PM, Georgios Tzanakis gtzana...@gmail.com wrote: Hi Simon, I really appreciate your thorough answer! Indeed there was a bug and I had to do a couple of changes to the code, but I understood a lot of things about how to use Cython and was able to use it properly and have improvements. On top of that, I didn't know about the timeit function which is a life saver. Everything is clear.. Thank you, sir! Best, George On Thu, Mar 13, 2014 at 8:48 AM, Simon King simon.k...@uni-jena.de wrote: Hi! On 2014-03-12, geo909 gtzana...@gmail.com wrote: But I'm still not sure how to use things properly. So, for instance, is the following optimization reasonable? (there is an ~30% increase in speed from pure python code) It is easy to get more. But first: Is there a bug in your code? You write if all( [(L[i][rows[i]]+j %w)==0] ): Thus, the argument to all is a list with precisely one item. If it is not a bug, then you should replace it with if (L[i][rows[i]]+j%w)==0: I assume that it is not a bug, and thus I used this improvement in all my attempts that I describe below. # L: A list of tuples of positive integers, each having a couple of hundred elements. # L itself has length at most 3 or 4. # e: A tuple of integers. e has length no more than a couple of hundred. # w a small integer Since there is frequent access to the items of L and e, you should tell Cython that L is a list and that e is a tuple. Also, itertools.product yields tuples, so, rows in your function is a tuple. Again, there is frequent acces to the items, thus, you should declare that rows is a tuple. On the other hand, commonzeros is accessed at most a couple of times, thus, no need to make it cdef int. But it seems to me that the most important line is (after removing the needless all) this: if (L[i][rows[i]]+j %w)==0: Let's try to be particularly careful here, since it occurs in an inner loop, and the annotation appears dark yellow. The items of L are tuples. Thus, one could do (tupleL[i])[rows[i]]+j to make access to the tuple items faster. Furthermore, the items in the tuple L[i] are ints, and we want to add it with an int. Hence, if ((int(tupleL[i])[rows[i]])+j %w)==0: will make it faster (actually, inserting the int makes the execution time drop to 50% compared with a version that only has tuple). With L = [tuple([randint(1,10^8) for i in range(400)]), tuple([randint(1,10^8) for i in range(300)]), tuple([randint(1,10^8) for i in range(500)]), tuple([randint(1,10^8) for i in range(200)])] e = tuple([randint(1,10^8) for i in range(350)]) w = 5 and a pure Python version of your function (where I have replaced the all(...) as indicated above), I get sage: timeit(myfunction(L,e,w)) 5 loops, best of 3: 1.11 s per loop However, when cythoning your function as follows {{{ %cython import itertools def myfunction(list L, tuple e, int w): cdef int lenL = len(L) cdef int i,j cdef tuple rows for rows in itertools.product(range(w), repeat=lenL): commonzeros=0 for j in e: for i in range(lenL): if ((int(tupleL[i])[int(rows[i])])+j %w)==0: commonzeros+=1 if commonzeros==4: return(1) return(0) }}} I get sage: timeit(myfunction(L,e,w)) 5 loops, best of 3: 18.6 ms per loop If you now look at the annotated version of the function, you'll see that for rows in itertools.product remains dark yellow. So, if one wanted to optimise further, one should try to improve that. Since you iterate over len(L) copes of range(w) (rather than over the product of lists of different size), it should be not too difficult to write a custom iterator in Cython. But perhaps the speedup (111 ms -- 18.6 ms) is good enough for you? Best regards, Simon -- You received this message because you are subscribed to a topic in the Google Groups sage-support group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sage-support/S9eXmSVoo9E/unsubscribe. To