Go to the first, previous, next, last section, table of contents.

## Types of indeterminates

An algebraic object is recognized as an indeterminate when it can be a (so-called) variable in polynomials. An ordinary indeterminate is usually denoted by a string that start with a small alphabetical letter followed by an arbitrary number of alphabetical letters, digits or `_'. In addition to such ordinary indeterminates, there are other kinds of indeterminates in a wider sense in Asir. Such indeterminates in the wider sense have type polynomial, and further are classified into sub-types of the type indeterminate.

`0`
ordinary indeterminate
An object of this sub-type is denoted by a string that start with a small alphabetical letter followed by an arbitrary number of alphabetical letters, digits or `_'. This kind of indeterminates are most commonly used for variables of polynomials.
``` [vtype(a),vtype(aA_12)];
[0,0]
```
`1`
undetermined coefficient
The function `uc()` creates an indeterminate which is denoted by a string that begins with `_'. Such an indeterminate cannot be directly input by its name. Other properties are the same as those of ordinary indeterminate. Therefore, it has a property that it cannot cause collision with the name of ordinary indeterminates input by the user. And this property is conveniently used to create undetermined coefficients dynamically by programs.
``` U=uc();
_0
 vtype(U);
1
```
`2`
function form
A function call to a built-in function or to an user defined function is usually evaluated by Asir and retained in a proper internal form. Some expressions, however, will remain in the same form after evaluation. For example, `sin(x)` and `cos(x+1)` will remain as if they were not evaluated. These (unevaluated) forms are called `function forms' and are treated as if they are indeterminates in a wider sense. Also, special forms such as `@pi` the ratio of circumference and diameter, and `@e` Napier's number, will be treated as `function forms.'
``` V=sin(x);
sin(x)
 vtype(V);
2
 vars(V^2+V+1);
[sin(x)]
```
`3`
functor
A function call (or a function form) has a form fname(args). Here, fname alone is called a functor. There are several kinds of functors: built-in functor, user defined functor and functor for the elementary functions. A functor alone is treated as an indeterminate in a wider sense.
``` vtype(sin);
3
```

Go to the first, previous, next, last section, table of contents.