SymbolicC++ favicon

SymbolicC++

SymbolicC++ uses C++ and object-oriented programming to develop a computer algebra system. Object-oriented programming is an approach to software design that is based on classes rather than procedures. This approach maximizes modularity and information hiding. Object-oriented design provides many advantages. For example, it combines both the data and the functions that operate on that data into a single unit. Such a unit (abstract data type) is called a class. We use C++ as our object-oriented programming language for the following reasons: C++ allows the introduction of abstract data types. Thus we can introduce the data types used in the computer algebra system as abstract data types. The language C++ supports the central concepts of object-oriented programming: encapsulation, inheritance, polymorphism (including dynamic binding) and operator overloading. It has good support for dynamic memory management and supports both, procedural and object-oriented programming. A less abstract form of polymorphism is provided via template support. We overload the operators

GAP

GAP

GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a pro ...

Giac/Xcas

Giac/Xcas

Giac/Xcas is a free computer algebra system for Windows, Mac OS X and Linux/Unix (license GPL3, for commercial dual-license co ...

Scilab

Scilab

Scilab is a scientific software package for numerical computations providing a powerful open computing environment for enginee ...