The coefficients in SF and SQ are the “numbers” from various algebraic contexts. They are called domain elements and uniformly represented either as integer numbers or pairs where the car part contains an identifier describing the domain and its arithmetic by its properties; the cdr part describes the value.
The neutral elements zero and one for addition and multiplication respectively are identical for all domains: zero is represented as nil and one by the integer number 1.
The list of domains is open ended: if a new coefficient domain is required for an application field, this can be created and linked to the system at any time. The necessary structure is described in the source file for the module dmodeop.
The tag of the currently active domain is stored in the value of the variable dmode*. nil represents the default domain (integers). This variable should not be modified directly - instead use the function setdmode:
where domain is a domain name (e.g. ′rational) and the Boolean second parameter tells whether to activate (t) or to deactivate (nil) the domain. Note that setdmode does not set on the corresponding switches. You must do that yourself. E.g. for a proper activation and deactivation of complex rounded call
In order to convert the domain tag into the domain name use the property dname, e.g.
will result in the name of the current domain.