Jump to content

SymbolicC++

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Symcpp (talk | contribs) at 15:31, 3 February 2010 (Created page with '{{Userspace draft|source=ArticleWizard|date={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}} {{Infobox_Software | name = SymbolicC++ | logo = | screenshot = ...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)


SymbolicC++
Developer(s)Yorick Hardy, Willi-Hans Steeb and Tan Kiat Shi
Stable release
3.24 / May 27, 2009; 15 years ago (2009-05-27)
Written inC++
Operating systemCross-platform
TypeMathematical software
LicenseGPL
Websitehttp://issc.uj.ac.za/symbolic/symbolic.html

SymbolicC++ is a general purpose computer algebra system embedded in the programming language C++. It is free software released under the terms of the GNU General Public License. SymbolicC++ can be used by simply including a C++ header file or by linking against a library.

History

SymbolicC++ is described in a series of books on computer algebra. The first book[1] described the first version of SymbolicC++. In this version the main data type for symbolic computation was the Sum class. The list of available classes included

Example:

  1. include <iostream.h>
  2. include "rational.h"
  3. include "msymbol.h"

int main(void) {

Sum<int> x("x",1);
Sum<Rational<int> > y("y",1);
cout << Int(y, y);       // => 1/2 yˆ2
y.depend(x);
cout << df(y, x);        // => df(y,x)
return 0;

}

The second version[2] of SymbolicC++ featured new classes such as the Polynomial class and initial support for simple integration. Subsequently support for Gröbner bases was added[3].

The third version[4] features a complete rewrite of SymbolicC++ and was released in 2008. This version encapsulates all symbolic expressions in the Symbolic class.

Newer versions are available from the SymbolicC++ website.

Examples

#include <iostream>
#include "symbolicc++.h"

using namespace std;

int main(void)
{
 Symbolic x("x");
 cout << integrate(x, x); // => 1/2 xˆ2
 Symbolic y("y");
 cout << df(y, x);        // => 0
 cout << df(y[x], x);     // => df(y[x],x)
 return 0;
}
XXXXXXXXXXXXXXXX

Further examples can be found in the books listed below[5][6].

See also

References

  1. ^ Tan Kiat Shi and Steeb, W.-H. (1997). SymbolicC++: An introduction to Computer Algebra Using Object-Oriented Programming Springer-Verlag, Singapore
  2. ^ Tan Kiat Shi, Steeb, W.-H. and Hardy, Y (2000). SymbolicC++: An Introduction to Computer Algebra using Object-Oriented Programming, 2nd extended and revised edition, Springer-Verlag, London
  3. ^ Kruger, P.J.M (2003). Gröbner bases with Symbolic C++, M. Sc. Dissertation, Rand Afrikaans University
  4. ^ Hardy, Y, Tan Kiat Shi and Steeb, W.-H. (2008). Computer Algebra with SymbolicC++, World Scientific Publishing, Singapore
  5. ^ Steeb, W.-H. (2008). The Nonlinear Workbook: Chaos, Fractals, Cellular Automata, Neural Networks, Genetic Algorithm, Gene Expression Programming, Wavelets, Fuzzy Logic with C++, Java and SymbolicC++ Programs, fourth edition World Scientific Publishing, Singapore
  6. ^ Steeb, W.-H. (2007). Continuous Symmetries, Lie Algebras, Differential Equations and Computer Algebra, second edition World Scientific Publishing, Singapore