Computer for operations with functions

A computer for operations with (mathematical) functions (unlike the usual computer) operates with functions at the hardware level (i.e. without programming these operations).
History.
A computing machine for operations with functions was presented and developed by Mikhail Kartsev in 1967. Among the operations of this computing machine were the functions addition, subtraction and multiplication, functions comparison, the same operations between a function and a number, finding the function maximum, computing indefinite integral, computing definite integral of derivative of two functions, derivative of two functions, shift of a function along the X-axis etc. By its architecture this computing machine was (using the modern terminology) a vector processor or "array processor", a central processing unit (CPU) that implements an instruction set containing instructions that operate on one-dimensional arrays of data called "vectors". In it there has been used the fact that many of these operations may be interpreted as the known operation on vectors: addition and subtraction of functions - as addition and subtraction of vectors, computing a definite integral of two functions derivative— as computing the vector product of two vectors, function shift along the X-axis – as vector rotation about axes, etc. In 1966 Khmelnik had proposed a functions coding method, i.e. the functions representation by a "uniform" (for a function as a whole) positional code. And so the mentioned operations with functions are performed as unique computer operations with such codes on a "single" arithmetic unit.
Positional codes of one-variable functions.
The main idea.
The positional code of an integer number formula_1 is a numeral notation of digits formula_2 in a certain positional number system of the form
Such code may be called "linear". Unlike it a positional code of one-variable formula_4 function formula_5 has the form:
and so it is "flat" and "triangular", as the digits in it comprise a triangle.
The value of the positional number formula_1 above is that of the sum
where formula_9 is the radix of the said number system. The positional code of a one-variable function correspond to a 'double' code of the form
where formula_11 is an integer positive number, quantity of values that taken formula_2, and formula_13 is a certain function of argument formula_4.
Addition of positional codes of numbers is associated with the carry transfer to a higher digit according to the scheme
Addition of positional codes of one-variable functions is also associated with the carry transfer to higher digits according to the scheme:
Here the same transfer is carried simultaneously to "two" higher digits.
"R"-nary triangular code.
A triangular code is called "R-nary" (and is denoted as formula_17), if the numbers formula_18 take their values from the set
For example, a triangular code is a ternary code formula_22, if formula_23, and quaternary formula_24, if formula_25.<br>
For "R"-nary triangular codes the following equalities are valid:
where formula_27 is an arbitrary number. There exists formula_17 of an arbitrary integer real number. In particular, formula_29. Also there exists formula_17 of any function of the form formula_31. For instance, formula_32.
Single-digit addition.
in R-nary triangular codes consists in the following:
This procedure is described (as also for one-digit addition of the numbers) by a table of one-digit addition, where all the values of the terms formula_45 and formula_46 must be present and all the values of carries appearing at decomposition of the sum formula_38. Such a table may be synthesized for formula_48<br>
Below we have written the table of one-digit addition for formula_49: 
One-digit subtraction.
in R-nary triangular codes differs from the one-digit addition only by the fact that in the given formula_33-digit the value formula_34 is determined by the formula
One-digit division by the parameter R.
in R-nary triangular codes is based on using the correlation:
from this it follows that the division of each digit causes carries into two lowest digits. Hence, the digits result in this operation is a sum of the quotient from the division of this digit by R and two carries from two highest digits. Thus, when divided by parameter R
This procedure is described by the table of one-digit division by parameter R, where all the values of terms and all values of carries, appearing at the decomposition of the sum formula_56, must be present. Such table may be synthesized for formula_48<br>
Below the table will be given for the one-digit division by the parameter R for formula_49:
Addition and subtraction.
of R-nary triangular codes consists (as in positional codes of numbers) in subsequently performed one-digit operations. Mind that the one-digit operations in all digits of each column are performed simultaneously.
Multiplication.
of R-nary triangular codes. Multiplication of a code formula_66 by formula_33-digit of another code formula_68 consists in formula_33-shift of the code formula_66, i.e. its shift k columns left and m rows up. Multiplication of codes formula_66 and formula_68 consists in subsequent formula_33-shifts of the code formula_66 and addition of the shifted code formula_66 with the part-product (as in the positional codes of numbers).
Derivation.
of R-nary triangular codes. The derivative of function formula_5, defined above, is 
So the derivation of triangular codes of a function formula_5 consists in determining the triangular code of the partial derivative formula_79 and its multiplication by the known triangular code of the derivative formula_80. The determination of the triangular code of the partial derivative formula_79 is based on the correlation
The derivation method consists of organizing carries from mk-digit into (m+1,k)-digit and into (m-1,k)-digit, and their summing in the given digit is performed in the same way as in one-digit addition.
Coding and decoding.
of R-nary triangular codes. A function represented by series of the form 
with integer coefficients formula_84, may be represented by R-nary triangular codes, for these coefficients and functions formula_85 have R-nary triangular codes (which was mentioned in the beginning of the section). On the other hand, R-nary triangular code may be represented by the said series, as any term formula_86 in the positional expansion of the function (corresponding to this code) may be represented by a similar series.
Truncation.
of R-nary triangular codes. This is the name of an operation of reducing the number of "non"-zero columns. The necessity of truncation appears at the emergence of carries beyond the digit net. The truncation consists in division by parameter R. All coefficients of the series represented by the code are reduced R times, and the fractional parts of these coefficients are discarded. The first term of the series is also discarded. Such reduction is acceptable if it is known that the series of functions converge. Truncation consists in subsequently performed one-digit operations of division by parameter R. The one-digit operations in all the digits of a row are performed simultaneously, and the carries from lower row are discarded.
Scale factor.
R-nary triangular code is accompanied by a scale factor M, similar to exponent for floating-point number. Factor M permits to display all coefficients of the coded series as integer numbers. Factor M is multiplied by R at the code truncation. For addition factors M are aligned, to do so one of added codes must be truncated. For multiplication the factors M are also multiplied.
Positional code for functions of many variables.
Positional code for function of two variables is depicted on Figure 1. It corresponds to a "triple" sum of the form:: formula_87,<br>
where formula_11 is an integer positive number, number of values of the figure formula_89, and formula_90 — certain functions of arguments formula_91 correspondingly. On Figure 1 the nodes correspond to digits formula_89, and in the circles the values of indexes formula_93 of the corresponding digit are shown. The positional code of the function of two variables is called "pyramidal". Positional code is called R-nary (and is denoted as formula_94), if the numbers formula_89 assume the values from the set formula_96. At the addition of the codes formula_94 the carry extends to four digits and hence formula_98. 
A positional code for the function from several variables corresponds to a sum of the form 
where formula_11 is an integer positive number, number of values of the digit formula_101, and formula_102 certain functions of arguments formula_103. A positional code of a function of several variables is called "hyperpyramidal". Of Figure 2 is depicted for example a positional hyperpyramidal code of a function of three variables. On it the nodes correspond to the digits formula_104, and the circles contain the values of indexes formula_105 of the corresponding digit. A positional hyperpyramidal code is called R-nary (and is denoted as formula_106), if the numbers formula_101 assume the values from the set formula_96. At the codes addition formula_106 the carry extends on "a"-dimensional cube, containing formula_110 digits, and hence formula_111.