-
-
Notifications
You must be signed in to change notification settings - Fork 180
Home
Matthew Rennekamp edited this page Jan 8, 2017
·
4 revisions
Welcome to the website wiki! Check for validity of various elements (such as links, markup, etc.) with https://validator.w3.org/. The Gitter is https://gitter.im/sagemath/website.
Long-term goals of Sagemath: (found at bottom of http://doc.sagemath.org/html/en/tutorial/introduction.html)
- Useful: Sage’s intended audience is mathematics students (from high school to graduate school), teachers, and research mathematicians. The aim is to provide software that can be used to explore and experiment with mathematical constructions in algebra, geometry, number theory, calculus, numerical computation, etc. Sage helps make it easier to interactively experiment with mathematical objects.
- Efficient: Be fast. Sage uses highly-optimized mature software like GMP, PARI, GAP, and NTL, and so is very fast at certain operations.
- Free and open source: The source code must be freely available and readable, so users can understand what the system is really doing and more easily extend it. Just as mathematicians gain a deeper understanding of a theorem by carefully reading or at least skimming the proof, people who do computations should be able to understand how the calculations work by reading documented source code. If you use Sage to do computations in a paper you publish, you can rest assured that your readers will always have free access to Sage and all its source code, and you are even allowed to archive and re-distribute the version of Sage you used.
- Easy to compile: Sage should be easy to compile from source for Linux, OS X and Windows users. This provides more flexibility for users to modify the system.
- Cooperation: Provide robust interfaces to most other computer algebra systems, including PARI, GAP, Singular, Maxima, KASH, Magma, Maple, and Mathematica. Sage is meant to unify and extend existing math software.
- Well documented: Tutorial, programming guide, reference manual, and how-to, with numerous examples and discussion of background mathematics.
- Extensible: Be able to define new data types or derive from built-in types, and use code written in a range of languages.
- User friendly: It should be easy to understand what functionality is provided for a given object and to view documentation and source code. Also attain a high level of user support.