Field of numbers
This functionality does not run in MATLAB.
Dom::Numerical(x
)
Dom::Numerical
is the field of numbers.
Dom::Numerical
is the domain of numbers represented
by one of the kernel domains DOM_INT
, DOM_RAT
, DOM_FLOAT
,
or DOM_COMPLEX
.
Dom::Numerical
is of category Cat::Field
due to pragmatism.
This domain actually is not a field because bool(1.0 = float(3)
/ float(3))
returns FALSE
, for example.
Elements of Dom::Numerical
are usually not
created explicitly. However, if one creates elements using the usual
syntax, it is checked whether the input expression can be converted
into a number (see below).
This means that Dom::Numerical
is a façade
domain which creates elements of domain type DOM_INT
, DOM_RAT
, DOM_FLOAT
or DOM_COMPLEX
.
Every system function dealing with numbers can be applied, and computations
in this domain are performed efficiently.
Dom::Numerical
has no normal representation,
because 0
and 0.0
both represent
zero.
Viewed as a differential ring, Dom::Numerical
is
trivial. It only contains constants.
If x
is a constant
arithmetical expression such as sin(2)
or PI
+ 2
, the system function float
is applied to convert x
into
a floatingpoint approximation.
An error message is issued if the result of this conversion
is not of domain type DOM_FLOAT
or DOM_COMPLEX
.
Ax::canonicalRep
, Ax::systemRep
, Ax::efficientOperation
("_divide")
, Ax::efficientOperation
("_mult")
, Ax::efficientOperation
("_invert")
Dom::Numerical
contains numbers of the domains DOM_INT
, DOM_RAT
, DOM_FLOAT
and DOM_COMPLEX
:
Dom::Numerical(2), Dom::Numerical(2/3), Dom::Numerical(3.141), Dom::Numerical(2 + 3*I)
Constant arithmetical expressions are converted into a real
and complex floatingpoint number, respectively, i.e., into an element
of the domain DOM_FLOAT
or DOM_COMPLEX
(see the function float
for details):
Dom::Numerical(exp(5)), Dom::Numerical(sin(2/3*I) + 3)
Note that the elements of this domain are elements of kernel
domains, there are no elements of the domain type Dom::Numerical
!
An error message is issued for nonconstant arithmetical expressions:
Dom::Numerical(sin(x))
Error: The arguments are invalid. [Dom::Numerical::new]
Dom::Numerical
is regarded as a field, and
it therefore can be used as a coefficient ring of polynomials or as
a component ring of matrices, for example.
We create the domain of matrices of arbitrary size (see Dom::Matrix
) with numerical
components:
MatN := Dom::Matrix(Dom::Numerical)
Next we create a banded matrix, such as:
A := MatN(4, 4, [PI, 0, PI], Banded)
and a row vector with four components as a 1 ×4 matrix:
v := MatN([[2, 3, 1, 0]])
Vectormatrix multiplication can be performed with the standard
operator *
for
multiplication:
v * A
Finally we compute the determinant of the matrix A
,
using the function det
:
det(A)

"characteristic"  is zero. 