> > So this is it: > > Why is there not emphasize on sagemath.org about the fact that sage can also > > be used for natural sciences/engineering applications etc.? > > I think that first of all this would mean more users coming to sage. > > From my perspective, SAGE has evolved to the point where the main > thing holding it back from breaking into other areas is simply the > lack of a marketing plan. > > I have been working on a marketing plan for SAGE that has the > potential to significantly increase its natural sciences, engineering, > and mathematics user base in a relatively short period of time. If a > SAGE marketing sub-group were formed I would very much like to be > involved in order to give this marketing plan a try.
For natural sciences, physics, engineering, I think the most important part is sage.calculus. And there are still many things to improve in my opinion: * pattern matching * subexpression substitution * unifying and especially simplify the way to check the type of an expression. Now you need to do this ugly switch: def _is(e, what): import operator if what == "Mul": return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \ e._operator == operator.mul if what == "Add": return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \ e._operator == operator.add if what == "Pow": return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \ e._operator == operator.pow if what == "Div": return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \ e._operator == operator.div if what == "log": return isinstance(e, sage.calculus.calculus.SymbolicComposition) and \ bool(e._operands[0] == sage.all.log) if what == "exp": return isinstance(e, sage.calculus.calculus.SymbolicComposition) and \ bool(e._operands[0] == sage.all.exp) if what == "Function": return isinstance(e, sage.calculus.calculus.SymbolicComposition) elif what == "Rational": return isinstance(e, sage.rings.rational.Rational) elif what == "Real": return isinstance(e, sage.rings.real_mpfr.RealNumber) else: raise "Sorry, unknown 'class': %s" % what Those are just things I discovered when trying to port the limits from SymPy to SAGE. Then there are other things, for example: * working with unknown functions, expanding them in series, etc. (there is some trac ticket for that already) And I am sure one can find more, I haven't investigated more closely, just first impressions. I am sure all of the above will be fixed, sooner or later, so it's not a big deal. Ondrej --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---