Open source mathematical software I want some recommendation on which software I should install on my computer. I'm looking for an open source program for general abstract mathematical purposes (as opposed to applied mathematics). 
I would likely use it for group theory, number theory, algebraic geometry and probably polytopes. 
The kind of program I have in mind is Mathematica or Matlab. Although probably those are not designed for abstract mathematics.
Any suggestions?
 A: Kenzo and Chomp are for computing homology. Kenzo for instance can take an arbitrary abstract simplicial complex and compute the simplicial homology groups, and it has various spaces already built in. You can compute the homology of products and other neat things with it.
A: Here are some links.


*

*Axiom and Maxima are good general purpose computer algebra systems.

*DataMelt is a free Java-based math software with a lot of examples

*GAP is a system for computational discrete algebra (with particular emphasis on computational group theory).

*PARI/GP is a CAS for fast computations in number theory.

*SAGE is a kind of unified framework for several systems, including GAP, PARI, and Maxima.

*Octave is a system for numerical computations (it is close to Matlab).

*Cadabra is a computer algebra system designed for the solution of the field theory problems.

*CoCoA stands for "Computations in commutative algebra".

*KANT / KASH stands for "Computational Algebraic Number Theory".

*Macaulay 2 is a system for research in commutative algebra and algebraic geometry.

*Snap is a computer program for studying arithmetic invariants of hyperbolic 3-manifolds.

*Symmetrica is an object oriented computer algebra system for representations, combinatorics and applications of symmetric groups.

A: For commutative algebra and algebraic geometry, in addition to the already mentioned CoCoA, there is Singular.
A: For all sorts of Groebner bases-related computation (I believe you might need some at least for questions in algebraic geometry), I would recommend Bergman (http://servus.math.su.se/bergman/).
A: I'll second the votes for Sage, Macsyma as Maxima and Wxmaxima, Scilab, Octave, R, and GAP.
For kids to play with are KGeometry KiG (K-interactive-Geometry), letting you draw out geometric relationships and actively move points around, letting all defined subcomponents change with it: e.g. draw three points, define+draw the line segments between the points, define+draw the perpendicular bisectors of these line segments, define+draw a circle that touches the three points of the triangle.  Now drag any of the three points of the triangle around and watch all of the defined components move along to remain the bisectors / intersections / circles consistently.  It's a great way to play around with geometric constructions.
Also, you can't go wrong with using awk, sed, and bash on the command line.
A: Michael Rubinstein's lcalc is a fast and easy-to-use program for calculating values of L-functions including the Riemann zeta function. It can be downloaded from:
http://pmmac03.math.uwaterloo.ca/~mrubinst/L_function_public/L.html
A: The only mathematical software I've learned to use so far is gnuplot, which does 2D and 3D plots.  
It's very easy to use, at least for basic tasks such as "plot $x \log(x)$ for $0 \leq x \leq 1$".  It comes ready-installed on many Linux distributions.  
A: I am using SAGE for computing over elliptic curves. It is very convenient and has lots of implementations of algorithms. But I have not found a way to instal in under windows environment without virtual box.
A: I like kig. Very useful software for simple geometric constructions. Also it can help if you want to make a figure for a paper. 
A: I like LiE for computations with Lie algebras, especially roots and weights computations, plethysms,...  It also has a web form interface.
A: ... and probably polytopes.
I recommend polymake for general polytope computations, LattE for lattice-point enumeration, Normaliz for computations related to lattice polytopes, and 4ti2 for Gröbner basis computations.
A: We are taught to use Sage to replace Matlab and Mathematica, now it also supports the online version via web browser which is very convenient and cross-platform.
In addition, Sage is python based, it's easy to combine python programming which is more and more popular in scientific computation nowadays.
A: REDUCE is also an interesting free computer algebra system to have a look at.
It allows especially quantifier elimination by means of Redlog library (http://redlog.eu)
The following is from the REDUCE homepage (http://reduce-algebra.com):
REDUCE is an interactive system for general algebraic computations of interest to mathematicians, scientists and engineers. It has been produced by a collaborative effort involving many contributors. Its capabilities include:


*

*expansion and ordering of polynomials and rational functions;

*substitutions and pattern matching in a wide variety of forms;

*automatic and user controlled simplification of expressions;

*calculations with symbolic matrices;

*arbitrary precision integer and real arithmetic; 

*facilities for defining new functions and extending program syntax; 

*analytic differentiation and integration; bullet factorization of polynomials;

*facilities for the solution of a variety of algebraic equations; 

*facilities for the output of expressions in a variety of formats;

*facilities for generating optimized numerical programs from symbolic input; 

*calculations with a wide variety of special functions;

*Dirac matrix calculations of interest to high energy physicists.



A: GAP is fantastic for group theory, combinatorics and and number theory. Sage is becoming very popular and essentially includes GAP as well.
A: Oberwolfach recently started a site listing mathematical software, sorted by subject:
Oberwolfach References on Mathematical Software.
A: The kind of program I have in mind is Mathematica or Matlab.  Altough probably those are not designed por abstract mathematics.
What would be extremely useful to the progress of abstract mathematics would be a library of mathematical algorithms which were formally verified for correctness.  Results obtained via such a library could be routinely cited in research papers without any doubt as to their correctness.  The authors of SAGE suggest open source software as a means of achieving "research grade" mathematical software in [ http://www.ams.org/notices/200710/tx071001279p.pdf ][ http://wstein.org/mathsoftbio/history.pdf ], but arguably they don't go far enough.
None of the "open source" mathematical software mentioned here currently meets this standard; the closest is C-CoRN [ http://c-corn.cs.ru.nl/ ], a library of constructive mathematics for the Coq proof assistant.
Now don't get me wrong, building a comprehensive library of formalized mathematics covering even the undergrad curriculum would be a vast undertaking.  But the benefits would be huge, not just for computational mathematics but for all kinds of mathematical practice.  The main obstacle is the nature of the work involved, which tends to be tedious and offering little reward to professional mathematicians, if occasionally playful and addictive.  Perhaps undergraduate students should be encouraged to take courses in logic and contribute to such efforts.
A: Rubinstein's lcalc is part of Sage
http://www.sagemath.org/doc/reference/sage/lfunctions/lcalc.html
A: Scilab (http://www.scilab.org/) is also numerical software which is free and open source, akin to Octave and Matlab. It's been developed at INRIA and ENPC.  I also highly recommend Octave for numerical analysis and statistical analysis.
Maxima is also on many gnu/linux installations and can be used in a text window or terminal without any graphics.  The WxMaxima front end works in a graphical-user-environment and has better visualization of formulas and allows for menu-level interaction, instead of having to have all of the commands memorized.
A: I can't believe that Python and its vast scientific application libraries are not mentioned in this thread. Let me be little bit bias and mention projects like PyDSTool. What makes Maple or Mathematica language simpler than Python? Similarly time proven but proprietary computer algebra system MuPad now a part of MATLAB is not mentioned. FreeMat, the cleanest (other two being GNU Octabe and Scilab) reimplementation of MATLAB API, is also not mentioned. PostScript, page description language (arguably proprietary), is not mentioned. It is wonderful language for teaching geometry and programming pictures.
P.S. I was surprised that people even mentioned things like Maple and Mathematica. I personally have not meet a person who had a look at the source code of these two systems.
However, I have friends who have worked for MathWorks and have seen the source code of MATLAB.
A: I recommend PascGalois Project software for visualizing abstract mathematics. Classroom resources also available.
A: I would recommend SCaVis (Scientific Computation and Visualization Environment). First, it is Java and runs on any platform. I has a nice editor and you can program in 4 scripting languages (including Python, Ruby). The graphics includes 3D. 
There is also about 300 examples and very extensive SCaVis online manual which covers


*

*Functions (parametric, not-parametric)

*General math (integration, differentiations)

*Linear algebra

*Data analysis, mining, histograms

*Statistics

*Symbolic calculations 


and all of this can be integrated with plot canvaces in 2D and 3D.
A: Haven't yet tried it out, but Julia seems to be an interesting recent language with focus on (fast) mathematics.
A: DataMelt numeric software is close to what you need. This math  program is free and includes many numeric libraries.
