Cadabra
Computer algebra system for field theory problems
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cadabra::DisplayBase Class Referenceabstract

Description

Base class for all display classes.

A key difficulty with printing is to figure out when to print additional brackets for objects which would otherwise not render correctly. For example, a sum inside a product need brackets, but it does not need brackets when it is given as an argument to a function, because then the brackets are already there from the function call.

#include <DisplayBase.hh>

Inheritance diagram for cadabra::DisplayBase:
cadabra::DisplayMMA cadabra::DisplaySympy cadabra::DisplayTerminal cadabra::DisplayTeX

Public Member Functions

 DisplayBase (const Kernel &, const Ex &)
 
void output (std::ostream &)
 
void output (std::ostream &, Ex::iterator)
 
virtual void dispatch (std::ostream &, Ex::iterator)=0
 

Protected Member Functions

virtual bool needs_brackets (Ex::iterator it)=0
 Determine if a node needs extra brackets around it. More...
 

Protected Attributes

const Extree
 
const Kernelkernel
 

Constructor & Destructor Documentation

DisplayBase::DisplayBase ( const Kernel k,
const Ex e 
)

Member Function Documentation

virtual void cadabra::DisplayBase::dispatch ( std::ostream &  ,
Ex::iterator   
)
pure virtual
virtual bool cadabra::DisplayBase::needs_brackets ( Ex::iterator  it)
protectedpure virtual

Determine if a node needs extra brackets around it.

Uses context from the parent node if necessary. Has to be implemented in a derived class, because the answer depends on the printing method (e.g. (a+b)/c needs brackets when printed like this, but does not need brackets when printed as {a+b}{c}).

Implemented in cadabra::DisplayMMA, cadabra::DisplaySympy, cadabra::DisplayTerminal, and cadabra::DisplayTeX.

void DisplayBase::output ( std::ostream &  str)
void DisplayBase::output ( std::ostream &  str,
Ex::iterator  it 
)

Member Data Documentation

const Kernel& cadabra::DisplayBase::kernel
protected
const Ex& cadabra::DisplayBase::tree
protected

The documentation for this class was generated from the following files: