# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

# Dom::Real

Field of real numbers

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

## Syntax

```Dom::Real(`x`)
```

## Description

`Dom::Real` is the field of real numbers represented by elements of the kernel domains `DOM_INT`, `DOM_RAT`, `DOM_FLOAT`, and `DOM_EXPR`.

`Dom::Real` is the domain of real numbers represented by expressions of type `DOM_INT`, `DOM_RAT` or `DOM_FLOAT`. An expression of type `DOM_EXPR` is considered as a real number if it is of type `Type::Arithmetical` and if it contains no indeterminates which are not of type `Type::ConstantIdents` and if it contains no imaginary part. See Example 2.

`Dom::Real` has category `Cat::Field` due to practical reasons. This domain actually is not a field because ```bool(1.0 = 1e100 + 1.0 - 1e100)``` returns `FALSE` for example.

Elements may not have an unique representation, for example ```bool(0 = sin(2)^2 + cos(2)^2 - 1)``` returns `FALSE`.

Elements of `Dom::Real` are usually not created explicitly. However, if one creates elements using the usual syntax, it is checked whether the input expression can be converted to a number. This means `Dom::Real` is a façade domain which creates elements of domain type `DOM_INT`, `DOM_RAT`, `DOM_FLOAT`, or `DOM_EXPR`.

`Dom::Real` has no normal representation, because `0` and `0.0` both represent zero.

Viewed as a differential ring, `Dom::Real` is trivial, it contains constants only.

`Dom::Real` has the domain `Dom::Complex` as its super domain, i.e., it inherits each method which is defined by `Dom::Complex` and not re-implemented by `Dom::Real`. Methods described below are re-implemented by `Dom::Real`.

## Superdomain

`Dom::Complex`

## Examples

### Example 1

The following lines demonstrate how to generate elements of `Dom::Real`. The rational and the floating-point numbers are elements of the real numbers:

`Dom::Real(2/3)`
``` ```
`Dom::Real(0.5666)`
``` ```

### Example 2

The numbers `PI` and `sin(2)` are real numbers whereas `sin(2/3 * I) + 3` and `sin(x)` for general symbolic `x` are not real numbers. If we try to create the elements `Dom::Real(sin(2/3 * I) + 3)` and `Dom::Real(sin(x))` an error message is produced.

`Dom::Real(PI)`
``` ```
`Dom::Real(sin(2))`
``` ```
`Dom::Real(sin(2/3 * I) + 3)`
```Error: The arguments are invalid. [Dom::Real::new] ```
`Dom::Real(sin(x))`
```Error: The arguments are invalid. [Dom::Real::new] ```

## Parameters

 `x` An expression of type `DOM_INT`, `DOM_RAT`, or `DOM_FLOAT`. An expression of type `DOM_EXPR` is also allowed if it is of type `Type::Arithmetical` and if it contains no indeterminates which are not of type `Type::ConstantIdents` and if it contains no imaginary part.

## Methods

expand all

#### Mathematical Methods

`_less(x, y)`

`_leequal(x, y)`

`_power(z, n)`

`conjugate(x)`

`Im(x)`

`random()`

`random(n)`

`random(m .. n)`

This method returns a random number generator which creates positive integer between 0 and n - 1.

This method returns a random number generator which creates positive integer between m and n.

`Re(x)`

#### Conversion Methods

`convert(x)`