Computer for operations with functions


Computer for operations with functions

Computer for operations with mathematical functions (unlike the usual computer) operates with functions at the hardware level (i.e. without programming these operations).[1][2][3]

Contents

History

A thingy machine for operations with functions has been presented and developed and by Kartsev in the year 1967 [1]. Among the operations of this computing machine were the functions addition, subtraction and multiplying, 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 along X-axis etc. By its architecture this computing machine was (using the modern terminology) a vector processor. In itthere 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.[1] In the year 1966 Khmelnik had proposed a functions coding method [2], 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.[3]

Positional codes of one-variable functions [2][3]

The main idea

Positional code of an integer number A is a numeral notation of this digit α in a certain positional number system of the following form:

A = \alpha_{0} \alpha_{1} \dots \alpha_k \dots \alpha_{n}

Such code may be called "linear". Unlike it a positional code of one-variable x function F(x) has the form:

F(x) = \begin{pmatrix}   \ &  \ &  \cdots  \\ \ & \ & \alpha_{22}  \cdots  \alpha_{2k} \cdots \\ \ & \alpha_{11} & \alpha_{12} \cdots  \alpha_{1k} \cdots   \\ \alpha_{00} & \alpha_{01} & \alpha_{02} \cdots \alpha_{0k} \cdots  \end{pmatrix}

and so it is flat and "triangular", as the digits in it comprise a triangle.
Such positional code of an integer number corresponds to a sum of the following form:

A = \sum_{k=0}^{n} \alpha_k \rho^k,.

where ρ — is the radix of the said number system. Positional code of one-variable function correspond to a "double' code f the form:

F(x) = \sum_{k=0}^{n} \sum_{m=0}^{k} \alpha_{mk} R^ky^{k-m}(1-y)^m,

where R — is an integer positive number, the number of a digit's values α, y — is a certain function of argument x.
Addition of positional codes of numbers is associated with the carry transfer to a highest digit according to the scheme:

\alpha_{k} \longrightarrow \alpha_{k+1} .

Addition of positional codes of one-variable functions is also associated with the carry transfer to a highest digits according to the scheme:

\begin{pmatrix} \ \ & \alpha_{k+1,m+1} \\ \ \nearrow  & \  \\ \alpha_{k,m} \longrightarrow & \alpha_{k+1,m}  \end{pmatrix}.

Here the same transfer is carried simultaneously to "two" highest digits.

R-nary triangular code

A triangular code is called R-nary (and is denoted as TKR), if the numbers αmk take their values from the set

D_R = \{-r_1,-r_1+1,\dots, -1,0,1,\dots,r_2-1,r_2 \}, где r_1,\;r_2\geq 0 и R_{}^{} =r_1+r_2+1.

For example, a triangular code is a ternary code TK3, if \alpha_{mk} \in (-1,0,1), and quaternary TK4, if \alpha_{mk} \in (-2,-1,0,1).
For R-nary triangular codes the following equalities are valid:

\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ aR \longrightarrow & 0  \end{pmatrix}=\begin{pmatrix} \ \ & a \\ \ \nearrow  & \  \\ 0 \longrightarrow & a  \end{pmatrix}, 
\begin{pmatrix} \ \ & a \\ \ \nearrow  & \  \\ 0 \longrightarrow & 0  \end{pmatrix}=\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ aR \longrightarrow & -a  \end{pmatrix},
\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ 0 \longrightarrow & a  \end{pmatrix}=\begin{pmatrix} \ \ & -a \\ \ \nearrow  & \  \\ aR \longrightarrow & 0  \end{pmatrix},

where a is an arbitrary number. There exists TKR of an arbitrary integer real number. In particular, TKR(α) = α. Also there exists TKR of any function of the form yk. For instance, TK_R(y^{2})=(0\ 0\ 1).

Single-digit addition

in R-nary triangular codes consists in the following:

  • in the given (mk)-digit there is determined the sum S_{mk}^{} of the digits that are being added \alpha_{mk}, \ \beta_{mk} and two carries p_{m,k-1}, \ p_{m-1,k-1}, transferred into this digit from the left, i.e.
S_{mk}^{}=\alpha_{mk}+\beta_{mk}+p_{m,k-1}+p_{m-1,k-1},
  • this sum is presented in the form S_{mk}^{}=\sigma_{mk}+Rp_{mk}, where \sigma_{mk} \in D_R,
  • σmk is written in the (mk)-digit of summary code, and the carry pmk from the given digit is carried into (m,k + 1)-digit and (m + 1,k + 1)--digit.

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 \alpha_{mk} \in D_R and \beta_{mk} \in D_R must be present and all the values of carries appearing at decomposition of the sum S_{mk}^{}=\sigma_{mk}+Rp_{mk}. Such a table may be synthesized for R > 2.
Below we have written the table of one-digit addition for R = 3:

Smk TK(Smk) \sigma_{mk}^{} p_{mk}^{}
. . 0 . .
0 0 0 0 0
. . 0 . .
1 1 0 1 0
. . 0 . .
(-1) (-1) 0 (-1) 0
. . 1 . .
2 (-1) 1 (-1) 1
. . 1 . .
3 0 1 0 1
. . 1 . .
4 1 1 1 1
. . (-1) . .
(-2) 1 (-1) 1 (-1)
. . (-1) . .
(-3) 0 (-1) 0 (-1)
. . (-1) . .
(-4) (-1) (-1) (-1) (-1)

One-digit subtraction

in R-nary triangular codes differs from the one-digit addition only by the fact that in the given (mk)-digit the value S_{mk}^{} is determined by the formula

S_{mk}^{}=\alpha_{mk}-\beta_{mk}+p_{m,k-1}+p_{m-1,k-1}.

One-digit division by the parameter R

in R-nary triangular codes is based on using the correlation:

\begin{pmatrix} \ \ & a \\ \ \nearrow  & \  \\ 0 \longrightarrow & 0  \end{pmatrix}=\begin{pmatrix} \ \ & 0 \\ \ \nearrow  & \  \\ aR \longrightarrow & -a  \end{pmatrix},

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

  • in the given (mk)-digit the following sum is determined
S_{mk}^{}=\alpha_{mk}/R-p_{m+1,k}/R+p_{m+1,k+1},
  • this sum is presented as S_{mk}^{}=\sigma_{mk}+p_{mk}/R, where \sigma_{mk} \in D_R,
  • σmk is written into (mk)--digit of the resulting code, and carry pmk from the given digit is transferred into the (m − 1,k − 1)-digit and (m − 1,k)-digit.

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 S_{mk}^{}=\sigma_{mk}+p_{mk}/R, must be present. Such table may be synthesized for R > 2.
Below the table will be given for the one-digit division by the parameter R for R = 3:

Smk TK(Smk) \sigma_{mk}^{} p_{mk}^{}
. . 0 . .
0 0 0 0 0
. . 1 . .
1 0 0 1 0
. . (-1) . .
(-1) 0 0 (-1) 0
. . 0 . .
1/3 1 (-1/3) 0 1
. . 1 . .
2/3 (-1) 1/3 1 (-1)
. . 1 . .
4/3 1 (-1/3) 1 1
. . 2 . .
5/3 (-1) 1/3 2 (-1)
. . 0 . .
(-1/3) (-1) 1/3 0 (-1)
. . (-1) . .
(-2/3) 1 (-1/3) (-1) 1
. . (-1) . .
(-4/3) (-1) 1/3 (-1) (-1)
. . (-2) . .
(-5/3) 1 (-1/3) (-2) 1

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 TKR' by (mk)-digit of another code TKR'' consists in (mk)-shift of the code TKR', i.e. its shift k columns left and m rows up. Multiplication of codes TKR' and TKR'' consists in subsequent (mk)-shifts of the code TKR' and addition of the shifted code TKR' with the part-product (as in the positional codes of numbers).

Derivation

of R-nary triangular codes. The derivative of function F(x), defined above, is

\frac{\partial F(x)}{\partial x}=\frac{\partial y}{\partial x} \frac{\partial F(x)}{\partial y}.

So the derivation of triangular codes of a function F(x) consists in determining the triangular code of the partial derivative  \frac{\partial F(x)}{\partial y} and its multiplication by the known triangular code of the derivative \frac{\partial y}{\partial x} . The determination of the triangular code of the partial derivative  \frac{\partial F(x)}{\partial y} is based on the correlation

\frac{\partial }{\partial x} \begin{pmatrix} \ & \ & 0 \\ \ & 0 & \alpha_{mk}  \\ 0 & 0 & 0  \end{pmatrix}=\begin{pmatrix} \ & \ & (k-m) \alpha_{mk} \\ \ & 0 & (k-2m) \alpha_{mk}  \\ 0 & 0 & (-m) \alpha_{mk}  \end{pmatrix}.

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

F(x) = \sum_{k=0}^{n} A_k y^k,

with integer coefficients Ak, may be represented by R-nary triangular codes, for these coefficients and functions yk 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 αmkRkyk(1 − y)m 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 [4]

Positional code for function of two variables is depicted on Figure 1. It corresponds to a "triple" sum of the form:: F(x,v) = \sum_{k=0}^{n} \sum_{m1=0}^{k}  \sum_{m2=0}^{k} \alpha_{m1,m2,k} R^k y^{k-m1}(1-y)^{m1} z^{k-m2}(1-z)^{m2},
where R is an integer positive number, number of values of the figure αm1,m2,k, and y(x), ~ z(v) — certain functions of arguments x, ~ v correspondingly. On Figure 1 the nodes correspond to digits αm1,m2,k, and in the circles the values of indexes m1,m2,k 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 PKR), if the numbers αm1,m2,k assume the values from the set DR. At the addition of the codes PKR the carry extends to four digits and hence R \geq 7.

A positional code for the function from several variables corresponds to a sum of the form

F(x_1,\ldots, x_i, \ldots, x_a ) = \sum_{k=0}^{n} \sum_{m_1=0}^{k} \ldots \sum_{m_a=0}^{k} (\alpha_{m_1, \ldots, m_a,k} R^k \prod^a_{i=1}(y_i^{k-m_i}(1-y_i)^{m_i})),

where R is an integer positive number, number of values of the digit \alpha_{m_1, \ldots, m_a,k}, and yi(xi) certain functions of arguments xi. 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 αm1,m2,m3,k, and the circles contain the values of indexes m1,m2,m3,k of the corresponding digit. A positional hyperpyramidal code is called R-nary (and is denoted as GPKR), if the numbers \alpha_{m_1, \ldots, m_a,k} assume the values from the set DR. At the codes addition GPKR the carry extends on a-dimensional cube, containing 2a digits, and hence R \geq (2^{a-1}-1).

References

  1. ^ a b c Malinovsky, B.N. (1995 (see also here http://www.sigcis.org/files/SIGCISMC2010_001.pdf and english version here)). The history of computer technology in their faces (in Russian). Kiew: Firm "KIT". ISBN 5-7707-6131-8. 
  2. ^ a b c Khmelnik, S.I. (1966 (http://lib.izdatelstwo.com/Papers2/s7.pdf see also here in Russian)). Coding of functions. 4. Cybernetics, USSR Academy of Sciences. 
  3. ^ a b c Khmelnik, S.I. (2004 (http://lib.izdatelstwo.com/Papers2/s7.pdf see also here in Russian)). Computer Arithmetic of Functions. Algorithms and Hardware Design. Israel: "Mathematics in Computers". ISBN 978-0-557-07520-1. 
  4. ^ Khmelnik, S.I. (1970 (http://lib.izdatelstwo.com/Papers2/s17.pdf see also here in Russian)). Several types of positional functions codes. 5. Cybernetics, USSR Academy of Sciences. 

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • computer science — computer scientist. the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers. [1970 75] * * * Study of computers, their… …   Universalium

  • Computer — For other uses, see Computer (disambiguation). Computer technology redirects here. For the company, see Computer Technology Limited. Computer …   Wikipedia

  • Computer vision — is the field concerned with automated imaging and automated computer based processing of images to extract and interpret information. It is the science and technology of machines that see. Here see means the machine is able to extract information …   Wikipedia

  • computer — computerlike, adj. /keuhm pyooh teuhr/, n. 1. Also called processor. an electronic device designed to accept data, perform prescribed mathematical and logical operations at high speed, and display the results of these operations. Cf. analog… …   Universalium

  • COMPUTER SCIENCE — The term Computer Science encompasses three different types of research areas: computability, efficiency, and methodology. General Introduction Computability deals with the question of what is mechanically computable. The most natural way to… …   Encyclopedia of Judaism

  • computer programming language — Introduction       any of various languages for expressing a set of detailed instructions for a digital computer. Such instructions can be executed directly when they are in the computer manufacturer specific numerical form known as machine… …   Universalium

  • Computer software — Software redirects here. For other uses, see Software (disambiguation). Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it.… …   Wikipedia

  • operations research — the analysis, usually involving mathematical treatment, of a process, problem, or operation to determine its purpose and effectiveness and to gain maximum efficiency. [1940 45, Amer.] * * * Application of scientific methods to management and… …   Universalium

  • Computer terminal — A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system. Early terminals were inexpensive devices but very slow compared to punched… …   Wikipedia

  • Computer chess — 1990s Pressure sensory chess computer with LCD screen Chess+ For the iPad …   Wikipedia