# 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.

# `domtype`

Data type of an object

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

```domtype(`object`)
```

## Description

`domtype(object)` returns the domain type (the data type) of the object.

For most data types, the domain type as returned by `domtype` coincides with the type returned by the function `type`. Only for expressions of domain type `DOM_EXPR`, the function `type` yields a distinction according to the 0-th operand. Cf. Example 2.

In contrast to most other functions, `domtype` does not flatten arguments that are expression sequences.

## Examples

### Example 1

Real floating-point numbers are of domain type `DOM_FLOAT`:

`domtype(12.345)`

Complex numbers are of domain type `DOM_COMPLEX`. The operands may be integers (`DOM_INT`), rational numbers (`DOM_RAT`), or floating-point numbers (`DOM_FLOAT`). The operands can be accessed via `op`:

```domtype(1 - 2*I), op(1 - 2*I); domtype(1/2 - I), op(1/2 - I); domtype(2.0 - 3.0*I), op(2.0 - 3.0*I)```

### Example 2

Expressions are objects of the domain type `DOM_EXPR`. The type of expressions can be queried further with the function `type`:

```domtype(x + y), type(x + y); domtype(x - 1.0*I), type(x - 1.0*I); domtype(x*I), type(x*I); domtype(x^y), type(x^y); domtype(x[i]), type(x[i])```

### Example 3

`domtype` evaluates its argument. In this example, the assignment is first evaluated and `domtype` is applied to the return value of the assignment. This is the right hand side of the assignment, i.e., `5`:

`domtype((a := 5))`

`delete a:`

### Example 4

Here the identifier `a` is first evaluated to the ```expression sequence````3, 4`. Its domain type is `DOM_EXPR`, its type is `"_exprseq"`:

`a := 3, 4: domtype(a), type(a)`

`delete a:`

### Example 5

`factor` creates objects of the domain type `Factored`:

`domtype(factor(x^2 - x))`

### Example 6

`matrix` creates objects of the domain type `Dom::Matrix``()`:

`domtype(matrix([[1, 2], [3, 4]]))`

### Example 7

Domains are of the domain type `DOM_DOMAIN`:

`domtype(DOM_INT), domtype(DOM_DOMAIN)`

### Example 8

`domtype` is overloadable, i.e., a domain can pretend to be of another domain type. The special `slot``"dom"` always gives the actual domain:

```d := newDomain("d"): d::domtype := x -> "domain type d": e := new(d, 1): e::dom, type(e), domtype(e)```

`delete d, e:`

## Parameters

 `object` Any MuPAD® object

## Return Values

Data type, i.e., an object of type `DOM_DOMAIN`.

`object`