Re: [sage-combinat-devel] Re: StandardTableaux broken

2013-10-17 Thread Jean-Yves Thibon
Hi Darij,


I still have a sage-5.4.1 with all combinat patches up to december 2012 on 
another machine, and t.descents()
does what I expect. I admit that descents is a bad name for this (these 
are the descents of the inverse
permutation of the row reading in French convention, in French we use 
reculs ( = recoils, or backsteps),
but it is traditional to use descents in English.

Btw, the name major index comes from the military rank of McMahon (Foata 
and Schutzenberger called it the major's index) ,
so there is only one major index 

All the best,
Jean-Yves 

Le mercredi 16 octobre 2013 22:07:38 UTC+2, Andrew Mathas a écrit :

 Hi Darij,

 I've not yet needed descent sets of tableaux in sage so I don't know what 
 the code did previously or what it does now in this respect. I would hope, 
 however, that a descents method for tableaux would return the descent set 
 of a tableau, so if you have ensured that this is now happening I think 
 that's great!

 Andrew

 On Wednesday, 16 October 2013 20:32:11 UTC+2, darijgrinberg wrote:

 Hello Jean-Yves, hello Andrew, 

 I guess I should have something to say about this but I don't really 
 understand what is happening. When I wrote the #7983 patch, I was 
 being annoyed by the fact that there was no method on the Tableaux 
 class computing what everyone in combinatorics calls the descents, 
 whereas the descents() method on tableaux was computing something 
 rather unrelated (that, moreover, depends only on the shape if the 
 tableau is semistandard). I suspect the descents() method was some 
 kind of helper function for Jack or H-L related code. Anyway, I 
 decided to rename the old descents() method into a less ambiguous name 
 and to make descents() compute the actual descents. But I've quickly 
 got talked out of this, as this would deprecate some userbase code, so 
 instead I added a standard_descents() method and left descents() 
 untouched (only adding the warning to its doc). I was working on 
 sage-main all the time. 

 Now, Jean-Yves (who, as far as I understand, has been using 
 sage-combinat) is saying he has been using descents() all the time and 
 since he is talking about standard tableaux, I assume that function 
 has been computing the actual descents rather than whatever it has 
 been computing on sage-main. Does this mean that the descents() 
 function on sage-combinat has been doing something completely 
 different from that on sage-main all the time before my #7983 patch? 
 That someone had done what I first had in mind (rename the old 
 descents() and reuse the name for the actual descents) long ago, and 
 now that my #7983 got merged in, the roles have switched? 

 Either way, sorry for contributing to this muckup and thanks a lot for 
 any help in understanding it. 

   Best regards, 
   Darij 



-- 
You received this message because you are subscribed to the Google Groups 
sage-combinat-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-combinat-devel] Re: StandardTableaux broken

2013-10-17 Thread Darij Grinberg
Hi Jean-Yves and everyone,

OK, so it seems that some patch on the sage-combinat queue as of
sage-5.4.1 solved the descents() problem in a more radical way than my
sage-main patch. When my patch got merged into sage-main, the
sage-combinat page would no longer apply, and so descents() once again
became the old weird faux-descents function, while the correct
descents function was now named standard_descents().

I wish I could confirm this but there seems to be no way to see the
sage-combinat patches without being on the queue, let alone to see the
old patches that are no longer in the queue.

Either way, we should think about descents() when we rewrite tableau.py.

  Best regards,
  Darij

On Thu, Oct 17, 2013 at 2:06 AM, Jean-Yves Thibon jythi...@gmail.com wrote:
 Hi Darij,


 I still have a sage-5.4.1 with all combinat patches up to december 2012 on
 another machine, and t.descents()
 does what I expect. I admit that descents is a bad name for this (these
 are the descents of the inverse
 permutation of the row reading in French convention, in French we use
 reculs ( = recoils, or backsteps),
 but it is traditional to use descents in English.

 Btw, the name major index comes from the military rank of McMahon (Foata
 and Schutzenberger called it the major's index) ,
 so there is only one major index 

 All the best,
 Jean-Yves

 Le mercredi 16 octobre 2013 22:07:38 UTC+2, Andrew Mathas a écrit :

 Hi Darij,

 I've not yet needed descent sets of tableaux in sage so I don't know what
 the code did previously or what it does now in this respect. I would hope,
 however, that a descents method for tableaux would return the descent set of
 a tableau, so if you have ensured that this is now happening I think that's
 great!

 Andrew

 On Wednesday, 16 October 2013 20:32:11 UTC+2, darijgrinberg wrote:

 Hello Jean-Yves, hello Andrew,

 I guess I should have something to say about this but I don't really
 understand what is happening. When I wrote the #7983 patch, I was
 being annoyed by the fact that there was no method on the Tableaux
 class computing what everyone in combinatorics calls the descents,
 whereas the descents() method on tableaux was computing something
 rather unrelated (that, moreover, depends only on the shape if the
 tableau is semistandard). I suspect the descents() method was some
 kind of helper function for Jack or H-L related code. Anyway, I
 decided to rename the old descents() method into a less ambiguous name
 and to make descents() compute the actual descents. But I've quickly
 got talked out of this, as this would deprecate some userbase code, so
 instead I added a standard_descents() method and left descents()
 untouched (only adding the warning to its doc). I was working on
 sage-main all the time.

 Now, Jean-Yves (who, as far as I understand, has been using
 sage-combinat) is saying he has been using descents() all the time and
 since he is talking about standard tableaux, I assume that function
 has been computing the actual descents rather than whatever it has
 been computing on sage-main. Does this mean that the descents()
 function on sage-combinat has been doing something completely
 different from that on sage-main all the time before my #7983 patch?
 That someone had done what I first had in mind (rename the old
 descents() and reuse the name for the actual descents) long ago, and
 now that my #7983 got merged in, the roles have switched?

 Either way, sorry for contributing to this muckup and thanks a lot for
 any help in understanding it.

   Best regards,
   Darij

 --
 You received this message because you are subscribed to the Google Groups
 sage-combinat-devel group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to sage-combinat-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-combinat-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-combinat-devel.
 For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
sage-combinat-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-combinat-devel] Re: StandardTableaux broken

2013-10-17 Thread Anne Schilling
Perhaps I can add a couple of words to Andrew's answer:

 I guess that the short (but harsh) answer is that if you have code which 
 relies upon some one else's code which is in the queue, but which is not yet 
 merged into sage, then there is no guarantee that
 your code will work next year, or even tomorrow. Any code which is merged 
 should still work or, at a minimum, it should provide useful error messages 
 to help you sort out what is going wrong (but this
 is only guaranteed in the first year after the change). I have certainly had 
 this problem with my own private code and with the code that I have 
 languishing in the queue.

It might be a misconception that code related to combinatorics is only in the
sage-combinat queue. Most code is merged into sage and distributed with each
release of sage. The sage-combinat queue is used to share code that is being
developed among researchers and developers. This code can indeed change any time
(some code might even be experimental). Hence, if you are interested in reliable
code it is better not to apply the sage-combinat queue.

To use only code in sage you can do

hg qpop -a
sage -br

or alternatively change to sage-main.

Also, since the development flow will soon change to git, the sage-combinat 
queue
will most likely disappear soon and/or will be replaced by a git fork or
git branches. This is forced upon us by the move to git, but it is a good
opportunity to change part of our work flow that has not worked so well.
For example, it might be good that under the git framework the linear queue
will change into a much flatter framework (since many patches do not actually 
depend
on each other).

 As I haven't used (or touched) the methods that you are having issues with I 
 don't know whether they were just in the queue or whether they were already 
 part of the official sage distribution. If
 these methods were already included in an official release then clearly the 
 review process has not worked properly in this instance and you have a 
 legitimate complaint.
 
 Looking at the patch queue, robinson_schensted_inverse was depreciated in 
 trac8392 http://trac.sagemath.org/attachment/ticket/8392. It seems to have 
 been replaced with RSK_inverse which just seems
 wrong to me: with tab-completion I don't see the need for random acronyms, 
 even relatively common ones like this one. (This probably just reflects my 
 own idiosyncrasies:)

Part of the deprecations have been reverted in

http://trac.sagemath.org/ticket/15142

Franco, Mike and I had also observed what Andrew just mentioned and asked the
authors to revert part of their changes.

I think the review process might not have worked so well recently. For big 
changes
like this a discussion should be done before completely revamping the
methods that already exist.

 Returning to the question of the descents method, irrespective of whether it 
 is backwardly compatible, I think it should the descent set of a tableau is 
 what any reasonable algebraic combinatorialist
 would expect this method to return. Anything else is implementation-bug and 
 it should be fixed.

I agree.

Best,

Anne

-- 
You received this message because you are subscribed to the Google Groups 
sage-combinat-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-combinat-devel] Re: StandardTableaux broken

2013-10-17 Thread Travis Scrimshaw
Hey Andrew and Jean-Yves,


 Looking at the patch queue, robinson_schensted_inverse was depreciated in 
 trac8392 http://trac.sagemath.org/attachment/ticket/8392. It seems to 
 have been replaced with RSK_inverse which just seems wrong to me: with 
 tab-completion I don't see the need for random acronyms, even relatively 
 common ones like this one. (This probably just reflects my own 
 idiosyncrasies:)


   There is also robinson_schensted_knuth[_inverse] methods in the global 
namespace with #15142 http://trac.sagemath.org/ticket/15142. And to get 
an output as a word, use the output='word' option. Note that the output 
will be an honest word object, not a permutation since non-standard 
permutations can break some of Permutations methods. If it is indeed a 
standard permutation, you can use output='permutation'.

 Well, I have changed descents to standard_descents, but I still have 
 problems
 with the next two lines of my file. I use robinson_schensted_inverse. I see
 that it is deprecated (and certainly it should be, it did not even return 
 a correct result
 one year ago and I had to patch it). So, deprecated, OK, but it still 
 exists,
 and returns a different type now. Instead of a word (as it should be) it 
 returns
 a list of two lists. This is bad. I can easily replace w by w[1]. But this
 is still not a word, and my function had to compute its descent 
 composition.
 So it fails. I replace w by Word(w[1]). It fails again, as words do not 
 have anymore
 a descents_composition ... So it is now
 Word(w[1]).standard_permutation().descents_composition(),
 and so on ...


   I see two possibilities to simplify this. The first is we add a 
descents_composition() method to words which just calls 
self.standard_permutation().descents_composition() (or perhaps its own 
optimized computation). The second would be to give RSK_inverse a checkargument 
which only checks for standardness if 
True and passes it to permutation if ouput='permutation'. I'm in favor of 
the former.

Best,
Travis


-- 
You received this message because you are subscribed to the Google Groups 
sage-combinat-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.


[sage-devel] Re: the __NO_INLINE__ constant in Sage's GCC

2013-10-17 Thread Nathann Cohen
Ahahaah. Thaaanks ! ;-)

Nathann

On Wednesday, October 16, 2013 11:46:54 AM UTC+2, Volker Braun wrote:

 On Wednesday, October 16, 2013 9:03:38 AM UTC+1, Nathann Cohen wrote:

 While messing around with #13352, I noticed that there was a 
 preprocessor constant in Sage's GCC named __NO_INLINE__ whose 
 purpose is, I guess, to prevent any function from being inlined. 


 Close, but no cigar. It is defined so your code can find out if gcc is 
 compiling it with -fno-inline (which is implicit in -O0):

 $ gcc -dM -E -  /dev/null | grep NO_INLINE
 #define __NO_INLINE__ 1
 $ gcc -dM -E -O1 -  /dev/null | grep NO_INLINE
 $ gcc -dM -E -O1 -fno-inline -  /dev/null | grep NO_INLINE
 #define __NO_INLINE__ 1

 Using it (as any preprocessor that starts with a double underscore) is of 
 course extremely compiler-dependent and best avoided. The main use for 
 __NO_INLINE__ is the glibc headers.

  


-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Should the Sage manual mention SageMathCloud?

2013-10-17 Thread Ondřej Čertík
On Wed, Oct 16, 2013 at 1:07 AM, Robert Bradshaw rober...@gmail.com wrote:
 On Sun, Oct 13, 2013 at 2:26 PM, William Stein wst...@gmail.com wrote:
 On Sun, Oct 13, 2013 at 1:16 PM, Vincent Delecroix
 20100.delecr...@gmail.com wrote:
 thought was that Sage is a math software, open source, with the aim of
 being a viable alternative to Ma*. There was no mention of a cloud
 which is just the incompatible with the open source project (as the
 FSF defines it).

 Why do you think that the existence of a cloud that provides an
 additional way to use Sage is compatible with Sage being an open
 source project?To me that's no different than claiming that the
 existence of websites running on servers running Linux is incompatible
 with Linux being an open source project.

 My very personal opinion is that the cloud is a bad
 way of making Sage popular: it makes the users dependent of a service.

 If good = not dependent  and bad = dependent, then indeed it is
 bad.  I do not define good and bad that way.   I'm more concerned with
 providing valuable services to people, making it easier for people to
 get work done, and providing ways to collaborate.   I want to grow the
 community of users of open source math software, and I'm probably not
 the first person to realize that a website-based approach is a
 powerful tool for addressing some of these goals.

 Up to now, I learned a lot with Sage and I hope that I contributed
 equivalently on teaching with it, going to Sage days, contributing
 with my code, etc. Sage was for me part of the public domain. If the
 cloud really becomes the main way of using Sage it will be for me like
 a dispossession. The cloud implies
  - the obligation of using the cloud to share code
  - no control on the execution of the softwares
  - no direct access to the source code
  - no way to use your own editor

 These are all valid concerns for anybody choosing whether or not to
 use Sage (or anything else) via any computer that isn't their own
 personal computer.  Even if a large number of people were to someday
 use Sage via the cloud, this doesn't mean that everybody does.  You
 can -- and will *always* be able to -- use Sage in any way you want
 (compatible with the GPL). If many more people are using Sage (in
 any way, cloud or not), then the number of contributions to Sage
 itself will increase, the quality of Sage goes up, getting support for
 Sage development gets easier, etc., which will mean that your personal
 cloud-free use of Sage will be improved.   Everybody wins in the Sage
 community wins.   User attention is a zero-sum game (unless there are
 new markets), so somebody has to loose in this scenario--it isn't us
 Sage users -- it's the Ma*'s.

 I actually don't think it's a zero-sum game; I'm hopeful Sage can also
 be useful to people who otherwise wouldn't even use a computer to do
 mathematics, and convenient/helpful enough for people to use computers
 for this kind of work even more. In other words, making the total pie
 bigger. Being a viable alternative to the Ma*s is at least as
 important to those who don't/can't have access to them as to those who
 do.

I view it the same way.


 It's worth pointing out that there is a risk here for cloud-free
 Sage. What you haven't done is clearly outline what part of the cloud
 product will be open and what parts won't be. At the one extreme, all
 the source, configuration, etc. is open and the value-add of the
 sagemath.com is a professionally-administered hosting with lots of
 hardware and support (which, yes, anyone could clone and try to
 compete with, though the original that devotes its profits to the
 improvement of Sage should attract the best/most devoted employees
 and, consequently, offer the best support). At the other end is a very
 closed system where bug-fixes and improvements to core Sage itself are
 withheld from the public version (which could be legal according to
 the GPL, if you're just distributing results, not code). My
 understanding is that the sagemath cloud won't live at either of these
 extremes, but I would consider it sad if peripheral things like the UI
 or better 3d graphics and interacts never made it out to the open
 source project.

 There's also the concern of lock-in. Ideally, a notebook could be
 created on the cloud, downloaded and run in a cloud-free way (say,
 on an airplane w/o internet, or on your department's latest hardware
 dedicated to your research, or over data to sensitive to trust to the
 cloud), then even re-uploaded. Delineating a concrete goal here would
 be good.

Cloud.sage now supports the IPython notebook, which has zero lock-in.
You can run exactly the same notebook locally, without internet access
(assuming of course that you have all the dependencies installed).

Before sage.cloud and ipython notebook a few years ago, even though I
really liked
the Sage notebook, it was only used for Sage, and so the community didn't
grow beyond it. I tried to disentangle it (with 

Re: [sage-devel] Transitivity of coercion discovery

2013-10-17 Thread Nils Bruin


On Monday, October 14, 2013 9:38:02 PM UTC-7, Robert Bradshaw wrote:

 This is definitely a bug,

This is now http://trac.sagemath.org/ticket/15303

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Should the Sage manual mention SageMathCloud?

2013-10-17 Thread Dr. David Kirkby
On 12 October 2013 18:21, William Stein wst...@gmail.com wrote:

 Maybe.  One important fact is that -- measured by downloads or website
 hits -- usage of Sage (the free software) has *not* grown at all in
 the last 3 years. For example, if you define number of active users as
 at http://trac.sagemath.org/ticket/1000, then the number of users has
 floated between 10,000 and 15,000 for several years.This suggests
 perhaps Sage is not fully succeeding at the mission statement I set
 for the project at the beginning, which is to provide a viable
 alternative to the Ma's, since they claim much larger active usage
 numbers.

I do wonder where they get their numbers from some times. Wolfram
Research claimed over a million users more than a decade ago, but why
do I see so few jobs wanting Mathematica skills? Search on a job site
for jobs needing MATLAB and there are tons of them. Do the same for
Mathematica, and there are very very few indeed. I do wonder how large
the user base of Mathematica really is.

Dave

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Transitivity of coercion discovery

2013-10-17 Thread Robert Bradshaw
The only primary embeddings are stored on the domain is for lifetime
implications. If we can detangle these two (which I've always wanted
to do) then we could always store them on the codomain. It is,
however, useful to be able to query a parent for embeddings (e.g. AA
- RR for any particular precision). Maybe this can always be handled
with an intermediate field that all the codomains know about.

As long as the coercion graph is constructed lazily, I don't know that
it's possible to respect the digraph model. For example, if we have X
- Y - Z, the mere creation of Y induces a coercion from X to Z that
might not have existed (or be easily detected) previously, and it's
hard to disallow this (though perhaps we can, I can't think of a valid
usecase right now).


On Tue, Oct 15, 2013 at 1:00 AM, Nils Bruin nbr...@sfu.ca wrote:
 On Tuesday, October 15, 2013 12:10:15 AM UTC-7, Simon King wrote:

 Ultimately, the coercion system is asking the involved parents which
 coercions they know of. There is no other location that would store
 coercions.


 That's how we implement it. If that's insufficient then we fail to properly
 implement the digraph model. We'll have to change at least one of our
 implementation or our model.

 For the purpose of path discovery, it is just a complication to have to
 consider both embedding and coerce_from. We'd be better off with only
 one. Then it's just a single backtrack process rather than a mixed

 Of course there are other reasons why we have both. After #14711, there are
 lifetime implications: A coercion registered as embedding ensures that
 domain keeps codomain alive, whereas one registered on coerce_from_list
 ensures that codomain keeps domain alive.

 I'd think it's better to not blur the two functions: Simply make the path
 discovery system have as little lifetime implications as possible (i.e.,
 store coercions weakened [this means: having only a weak reference to the
 domain if possible] on the codomain, a la coerce_from_hash) and in addition
 store separately, references domains_to_keep_alive and
 codomains_to_keep_alive to impose the correct lifetime implications.

 To a large extent, this could be done in the current model if the current
 coerce_from_list gets turned into a MonoDict, just as coerce_from_hash. The
 routine register_embedding would simply have to put the embedding in
 there, and perhaps keep putting it in other places too. Both
 `register_coercion` and `register_embedding` should probably adjust
 domains_to_keep_alive resp. codomains_to_keep_alive.

 --
 You received this message because you are subscribed to the Google Groups
 sage-devel group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Should the Sage manual mention SageMathCloud?

2013-10-17 Thread Robert Bradshaw
On Thu, Oct 17, 2013 at 3:18 PM, Dr. David Kirkby drkir...@gmail.com wrote:
 On 12 October 2013 18:21, William Stein wst...@gmail.com wrote:

 Maybe.  One important fact is that -- measured by downloads or website
 hits -- usage of Sage (the free software) has *not* grown at all in
 the last 3 years. For example, if you define number of active users as
 at http://trac.sagemath.org/ticket/1000, then the number of users has
 floated between 10,000 and 15,000 for several years.This suggests
 perhaps Sage is not fully succeeding at the mission statement I set
 for the project at the beginning, which is to provide a viable
 alternative to the Ma's, since they claim much larger active usage
 numbers.

 I do wonder where they get their numbers from some times. Wolfram
 Research claimed over a million users more than a decade ago, but why
 do I see so few jobs wanting Mathematica skills? Search on a job site
 for jobs needing MATLAB and there are tons of them. Do the same for
 Mathematica, and there are very very few indeed. I do wonder how large
 the user base of Mathematica really is.

I think (jobs needing Mathematica)  (jobs where Mathematica is/could
be used). In my (limited) experience, Matlab lends itself more to
being part of a full infrastructure/system which increases its
necessity to do a job vs. use whatever tool you're comfortable with.
The numeric vs. symbolic emphasis naturally biases it towards the
industry (jobs) vs. academia too. (I can't imagine an Math Prof.
listing that requires familiarity with Mathematica, outside of perhaps
teaching.)

Also, don't discount the (millions?) of college freshmen that use it
once a week in their calculus lab :).

- Robert

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Should the Sage manual mention SageMathCloud?

2013-10-17 Thread William Stein
On Thu, Oct 17, 2013 at 3:18 PM, Dr. David Kirkby drkir...@gmail.com wrote:
 On 12 October 2013 18:21, William Stein wst...@gmail.com wrote:

 Maybe.  One important fact is that -- measured by downloads or website
 hits -- usage of Sage (the free software) has *not* grown at all in
 the last 3 years. For example, if you define number of active users as
 at http://trac.sagemath.org/ticket/1000, then the number of users has
 floated between 10,000 and 15,000 for several years.This suggests
 perhaps Sage is not fully succeeding at the mission statement I set
 for the project at the beginning, which is to provide a viable
 alternative to the Ma's, since they claim much larger active usage
 numbers.

 I do wonder where they get their numbers from some times. Wolfram
 Research claimed over a million users more than a decade ago, but why
 do I see so few jobs wanting Mathematica skills? Search on a job site
 for jobs needing MATLAB and there are tons of them. Do the same for
 Mathematica, and there are very very few indeed. I do wonder how large
 the user base of Mathematica really is.

We can make a very, very rough estimate of the Mathematica revenue
based on the number of employees.   For example, to get a low-ball
lower bound, let's say 500 employees (*), which each cost $100K/year
on average; that's $50million/year in revenue.  If a Mathematica
seat costs on average $50/year, then that's 1 million seats.
There are other revenue sources, such as Wolfram|Alpha...

Conclusion: Mathematica probably sells more than 10,000 seats of
licenses a year, since selling only 10,000 seats wouldn't generate
enough revenue to sustain their employee base, unless they have many
other revenue streams.

With webapps (of all kinds -- gmail, cloud.sagemath, whatever) it';s
striking because the vendor knows exactly how many people use their
service, for how long each day, with what frequency, etc. There is no
guesswork at all in deducing usage.  WRI has enough control to know
how many legal copies of Mathematica get *installed*, but they know
little about how often they are used (unless Mathematica secretly
phones home, of course).   For example, I installed mathematica on my
laptop for a year, and didn't use it at all -- the first time I tried
to use it, was during a talk, and it failed due to the license running
out and me not noticing... :-)

 -- William

(*) http://en.wikipedia.org/wiki/Wolfram_Research says 400+
employees.  In 2008, their website said 650+ and Eric Weistein told
me (in person) that they were expanding a lot then.


 Dave

 --
 You received this message because you are subscribed to the Google Groups 
 sage-devel group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Should the Sage manual mention SageMathCloud?

2013-10-17 Thread William Stein
On Thu, Oct 17, 2013 at 3:42 PM, Robert Bradshaw
rober...@math.washington.edu wrote:
 On Thu, Oct 17, 2013 at 3:18 PM, Dr. David Kirkby drkir...@gmail.com wrote:
 On 12 October 2013 18:21, William Stein wst...@gmail.com wrote:

 Maybe.  One important fact is that -- measured by downloads or website
 hits -- usage of Sage (the free software) has *not* grown at all in
 the last 3 years. For example, if you define number of active users as
 at http://trac.sagemath.org/ticket/1000, then the number of users has
 floated between 10,000 and 15,000 for several years.This suggests
 perhaps Sage is not fully succeeding at the mission statement I set
 for the project at the beginning, which is to provide a viable
 alternative to the Ma's, since they claim much larger active usage
 numbers.

 I do wonder where they get their numbers from some times. Wolfram
 Research claimed over a million users more than a decade ago, but why
 do I see so few jobs wanting Mathematica skills? Search on a job site
 for jobs needing MATLAB and there are tons of them. Do the same for
 Mathematica, and there are very very few indeed. I do wonder how large
 the user base of Mathematica really is.

 I think (jobs needing Mathematica)  (jobs where Mathematica is/could
 be used). In my (limited) experience, Matlab lends itself more to
 being part of a full infrastructure/system which increases its
 necessity to do a job vs. use whatever tool you're comfortable with.
 The numeric vs. symbolic emphasis naturally biases it towards the
 industry (jobs) vs. academia too. (I can't imagine an Math Prof.
 listing that requires familiarity with Mathematica, outside of perhaps
 teaching.)

 Also, don't discount the (millions?) of college freshmen that use it
 once a week in their calculus lab :).

In fall 2013, a record 21.8 million students are expected to attend
American colleges and universities, constituting an increase of about
6.5 million since fall 2000 (source). [1]

That's just in the US.   So worldwide there are likely well over a
million people taking collage math classes (for which Mathematica is
useful) right now.   Anecdotally, a substantial fraction use Wolfram
(alpha) to help with their homework...

[1] http://nces.ed.gov/fastfacts/display.asp?id=372


 - Robert

 --
 You received this message because you are subscribed to the Google Groups 
 sage-devel group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Transitivity of coercion discovery

2013-10-17 Thread Nils Bruin

On Thursday, October 17, 2013 3:33:33 PM UTC-7, Robert Bradshaw wrote:

 As long as the coercion graph is constructed lazily, I don't know that 
 it's possible to respect the digraph model. For example, if we have X 
 - Y - Z, the mere creation of Y induces a coercion from X to Z that 
 might not have existed (or be easily detected) previously, and it's 
 hard to disallow this (though perhaps we can, I can't think of a valid 
 usecase right now). 

 It seems to me that the digraph can certainly not be expected to be 
independent of time. So indeed, if X, Z are first created, they are not 
related. Only when Y gets created with an embedding into Z and a coercion 
from X do we get a path. Presently I think the absence of a coercion 
between X and Z also gets cached, so if this absence was discovered before 
the creation of Y then even after the creation of Y one would find no 
coercion.

It's pretty obvious that to get strict conformance, one would have to scrub 
caches for possibly invalidated data when the graph gets modified. One 
wouldn't just want to invalidate all of the cache, though. So finding a 
workable balance (perhaps not invalidating any cache?) would be preferable.

Considering a real-world (but probably ill-advised) example:

K.a=NumberField(x^2-2)
Kt.t=K[]
L.b=NumberField(t^2-a,embedding=RR(2^(1/4)))

It doesn't actually work, because the embedding argument to L is silently 
ignored, but the example would imply (after the fact) an embedding of K 
into R via L. One shouldn't allow this, because one could easily imply 
multiple embeddings for number fields via extensions that would not agree.

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: how to run doctests?

2013-10-17 Thread Travis Scrimshaw


 See http://trac.sagemath.org/ticket/14582 :)

  
Still on my todo list...but I'm now waiting until we switch to the git 
workflow, which should make the patchbomb easier to swallow...

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
sage-devel group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.