Table of Contents
1. Introduction
1.1 License
2. A Tour of GiNaC
2.1 How to use it from within C++
2.2 What it can do for you
3. Installation
3.1 Prerequisites
3.2 Configuration
3.3 Building GiNaC
3.4 Installing GiNaC
4. Basic Concepts
4.1 Expressions
4.1.1 Note: Expressions and STL containers
4.2 Automatic evaluation and canonicalization of expressions
4.3 Error handling
4.4 The Class Hierarchy
4.5 Symbols
4.6 Numbers
4.6.1 Tests on numbers
4.6.2 Numeric functions
4.6.3 Converting numbers
4.7 Constants
4.8 Sums, products and powers
4.9 Lists of expressions
4.10 Mathematical functions
4.11 Relations
4.12 Integrals
4.13 Matrices
4.14 Indexed objects
4.14.1 Indexed quantities and their indices
4.14.2 Substituting indices
4.14.3 Symmetries
4.14.4 Dummy indices
4.14.5 Simplifying indexed expressions
4.14.6 Predefined tensors
4.14.6.1 Delta tensor
4.14.6.2 General metric tensor
4.14.6.3 Minkowski metric tensor
4.14.6.4 Spinor metric tensor
4.14.6.5 Epsilon tensor
4.14.7 Linear algebra
4.15 Non-commutative objects
4.15.1 Clifford algebra
4.15.1.1 Dirac gamma matrices
4.15.1.2 A generic Clifford algebra
4.15.2 Color algebra
4.16 Hash Maps
5. Methods and Functions
5.1 Getting information about expressions
5.1.1 Checking expression types
5.1.2 Accessing subexpressions
5.1.3 Comparing expressions
5.1.4 Ordering expressions
5.2 Numerical Evaluation
5.3 Substituting expressions
5.4 Pattern matching and advanced substitutions
5.4.1 Matching expressions
5.4.2 Matching parts of expressions
5.4.3 Substituting expressions
5.4.4 Algebraic substitutions
5.5 Applying a Function on Subexpressions
5.6 Visitors and Tree Traversal
5.7 Polynomial arithmetic
5.7.1 Expanding and collecting
5.7.2 Degree and coefficients
5.7.3 Polynomial division
5.7.4 Unit, content and primitive part
5.7.5 GCD, LCM and resultant
5.7.6 Square-free decomposition
5.8 Rational expressions
5.8.1 The normal method
5.8.2 Numerator and denominator
5.8.3 Converting to a polynomial or rational expression
5.9 Symbolic differentiation
5.10 Series expansion
5.11 Symmetrization
5.12 Predefined mathematical functions
5.12.1 Overview
5.12.2 Multiple polylogarithms
5.13 Complex Conjugation
5.14 Solving Linear Systems of Equations
5.15 Input and output of expressions
5.15.1 Expression output
5.15.2 Expression input
5.15.3 Archiving
6. Extending GiNaC
6.1 What doesn't belong into GiNaC
6.2 Symbolic functions
6.2.1 A minimal example
6.2.2 The cosine function
6.2.3 Function options
6.2.4 Functions with a variable number of arguments
6.3 GiNaC's expression output system
6.3.1 Print methods for classes
6.3.2 Print methods for functions
6.3.3 Adding new output formats
6.4 Structures
6.4.1 Example: scalar products
6.4.2 Structure output
6.4.3 Comparing structures
6.4.4 Subexpressions
6.4.5 Archiving structures
6.5 Adding classes
6.5.1 GiNaC's run-time type information system
6.5.2 A minimalistic example
6.5.3 Automatic evaluation
6.5.4 Optional member functions
6.5.5 Other member functions
7. A Comparison With Other CAS
7.1 Advantages
7.2 Disadvantages
7.3 Why C++?
A. Internal Structures
A.1 Expressions are reference counted
A.2 Internal representation of products and sums
B. Package Tools
B.1 ginac-config
B.2 `AM_PATH_GINAC'
B.2.1 Configuring a package that uses `AM_PATH_GINAC'
B.2.2 Example of a package using `AM_PATH_GINAC'
C. Bibliography
Concept Index
This document was generated
by root on July, 11 2005
using texi2html