Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Computer for operations with functions

From Wikipedia, the free encyclopedia
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
icon
This article'slead sectionmay be too short to adequatelysummarize the key points. Please consider expanding the lead toprovide an accessible overview of all important aspects of the article.(May 2011)
This articlemay be too technical for most readers to understand. Pleasehelp improve it tomake it understandable to non-experts, without removing the technical details.(January 2022) (Learn how and when to remove this message)
icon
This articleneeds attention from an expert in Computing. The specific problem is:This needs the help of somebody who can read Kartsev's papers and understand them.WikiProject Computing may be able to help recruit an expert.(August 2025)
(Learn how and when to remove this message)

Withincomputer engineering andcomputer science, acomputer for operations with (mathematical) functions (unlike the usualcomputer) operates withfunctions at thehardware level (i.e. without programming these operations).[1][2][3]

History

[edit]

A computing machine for operations with functions was presented and developed by Mikhail Kartsev in 1967.[1] 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, computingindefinite integral, computingdefinite integral ofderivative of two functions, derivative of two functions, shift of a function along the X-axis etc. By itsarchitecture this computing machine was (using the modern terminology) avector processor orarray processor, acentral processing unit (CPU) that implements an instruction set containing instructions that operate onone-dimensional arrays of data calledvectors. 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.[1] In 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

[edit]

Source:[2][3]

The main idea

[edit]

The positional code of an integer numberA{\displaystyle A} is a numeral notation of digitsα{\displaystyle \alpha } in a certainpositional number system of the form

A=α0α1αkαn{\displaystyle A=\alpha _{0}\alpha _{1}\dots \alpha _{k}\dots \alpha _{n}}.

Such code may be called "linear". Unlike it a positional code of one-variablex{\displaystyle x} functionF(x){\displaystyle F(x)} has the form:

F(x)=(    α22α2k α11α12α1kα00α01α02α0k){\displaystyle 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 isflat and "triangular", as the digits in it comprise a triangle.

The value of the positional numberA{\displaystyle A} above is that of the sum

A=k=0nαkρk{\displaystyle A=\sum _{k=0}^{n}\alpha _{k}\rho ^{k}},

whereρ{\displaystyle \rho } is the radix of the said number system. The positional code of a one-variable function correspond to a 'double' code of the form

F(x)=k=0nm=0kαmkRkykm(1y)m{\displaystyle F(x)=\sum _{k=0}^{n}\sum _{m=0}^{k}\alpha _{mk}R^{k}y^{k-m}(1-y)^{m}},

whereR{\displaystyle R} is an integer positive number, quantity of values that takenα{\displaystyle \alpha }, andy{\displaystyle y} is a certain function of argumentx{\displaystyle x}.

Addition of positional codes of numbers is associated with thecarry transfer to a higher digit according to the scheme

αkαk+1{\displaystyle \alpha _{k}\longrightarrow \alpha _{k+1}}.

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

(  αk+1,m+1  αk,mαk+1,m){\displaystyle {\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 totwo higher digits.

R-nary triangular code

[edit]

A triangular code is calledR-nary (and is denoted asTKR{\displaystyle TK_{R}}), if the numbersαmk{\displaystyle \alpha _{mk}} take their values from the set

DR={r1,r1+1,,1,0,1,,r21,r2}{\displaystyle D_{R}=\{-r_{1},-r_{1}+1,\dots ,-1,0,1,\dots ,r_{2}-1,r_{2}\}}, wherer1,r20{\displaystyle r_{1},\;r_{2}\geq 0} andR=r1+r2+1{\displaystyle R_{}^{}=r_{1}+r_{2}+1}.

For example, a triangular code is a ternary codeTK3{\displaystyle TK_{3}}, ifαmk(1,0,1){\displaystyle \alpha _{mk}\in (-1,0,1)}, and quaternaryTK4{\displaystyle TK_{4}}, ifαmk(2,1,0,1){\displaystyle \alpha _{mk}\in (-2,-1,0,1)}.
ForR-nary triangular codes the following equalities are valid:

(  0  aR0)=(  a  0a),(  a  00)=(  0  aRa),(  0  0a)=(  a  aR0){\displaystyle {\begin{pmatrix}\ \ &0\\\ \nearrow &\ \\aR\longrightarrow &0\end{pmatrix}}={\begin{pmatrix}\ \ &a\\\ \nearrow &\ \\0\longrightarrow &a\end{pmatrix}},\quad {\begin{pmatrix}\ \ &a\\\ \nearrow &\ \\0\longrightarrow &0\end{pmatrix}}={\begin{pmatrix}\ \ &0\\\ \nearrow &\ \\aR\longrightarrow &-a\end{pmatrix}},\quad {\begin{pmatrix}\ \ &0\\\ \nearrow &\ \\0\longrightarrow &a\end{pmatrix}}={\begin{pmatrix}\ \ &-a\\\ \nearrow &\ \\aR\longrightarrow &0\end{pmatrix}}},

wherea{\displaystyle a} is an arbitrary number. There existsTKR{\displaystyle TK_{R}} of an arbitrary integerreal number. In particular,TKR(α)=α{\displaystyle TK_{R}(\alpha )=\alpha }. Also there existsTKR{\displaystyle TK_{R}} of any function of the formyk{\displaystyle y^{k}}. For instance,TKR(y2)=(0 0 1){\displaystyle TK_{R}(y^{2})=(0\ 0\ 1)}.

Single-digit addition

[edit]

in R-nary triangular codes consists in the following:

Smk=αmk+βmk+pm,k1+pm1,k1{\displaystyle S_{mk}^{}=\alpha _{mk}+\beta _{mk}+p_{m,k-1}+p_{m-1,k-1}},

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αmkDR{\displaystyle \alpha _{mk}\in D_{R}} andβmkDR{\displaystyle \beta _{mk}\in D_{R}} must be present and all the values of carries appearing at decomposition of the sumSmk=σmk+Rpmk{\displaystyle S_{mk}^{}=\sigma _{mk}+Rp_{mk}}. Such a table may be synthesized forR>2.{\displaystyle R>2.}
Below we have written the table of one-digit addition forR=3{\displaystyle R=3}:

SmkTK(Smk)σmk{\displaystyle \sigma _{mk}^{}}pmk{\displaystyle p_{mk}^{}}
..0..
00000
..0..
11010
..0..
(-1)(-1)0(-1)0
..1..
2(-1)1(-1)1
..1..
30101
..1..
41111
..(-1)..
(-2)1(-1)1(-1)
..(-1)..
(-3)0(-1)0(-1)
..(-1)..
(-4)(-1)(-1)(-1)(-1)

One-digit subtraction

[edit]

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

Smk=αmkβmk+pm,k1+pm1,k1{\displaystyle S_{mk}^{}=\alpha _{mk}-\beta _{mk}+p_{m,k-1}+p_{m-1,k-1}}.

One-digit division by the parameter R

[edit]

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

(  a  00)=(  0  aRa){\displaystyle {\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

Smk=αmk/Rpm+1,k/R+pm+1,k+1{\displaystyle S_{mk}^{}=\alpha _{mk}/R-p_{m+1,k}/R+p_{m+1,k+1}},

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

SmkTK(Smk)σmk{\displaystyle \sigma _{mk}^{}}pmk{\displaystyle p_{mk}^{}}
..0..
00000
..1..
10010
..(-1)..
(-1)00(-1)0
..0..
1/31(-1/3)01
..1..
2/3(-1)1/31(-1)
..1..
4/31(-1/3)11
..2..
5/3(-1)1/32(-1)
..0..
(-1/3)(-1)1/30(-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

[edit]

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

[edit]

of R-nary triangular codes. Multiplication of a codeTKR{\displaystyle TK_{R}'^{}} by(mk){\displaystyle (mk)}-digit of another codeTKR{\displaystyle TK_{R}''^{}} consists in(mk){\displaystyle (mk)}-shift of the codeTKR{\displaystyle TK_{R}'^{}}, i.e. its shift k columns left and m rows up. Multiplication of codesTKR{\displaystyle TK_{R}'^{}} andTKR{\displaystyle TK_{R}''^{}} consists in subsequent(mk){\displaystyle (mk)}-shifts of the codeTKR{\displaystyle TK_{R}'^{}} and addition of the shifted codeTKR{\displaystyle TK_{R}'^{}} with the part-product (as in the positional codes of numbers).

Derivation

[edit]

of R-nary triangular codes. The derivative of functionF(x){\displaystyle F(x)}, defined above, is

F(x)x=yxF(x)y{\displaystyle {\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 functionF(x){\displaystyle F(x)} consists in determining the triangular code of the partial derivativeF(x)y{\displaystyle {\frac {\partial F(x)}{\partial y}}} and its multiplication by the known triangular code of the derivativeyx{\displaystyle {\frac {\partial y}{\partial x}}}. The determination of the triangular code of the partial derivativeF(x)y{\displaystyle {\frac {\partial F(x)}{\partial y}}} is based on the correlation

x(  0 0αmk000)=(  (km)αmk 0(k2m)αmk00(m)αmk){\displaystyle {\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

[edit]

of R-nary triangular codes. A function represented by series of the form

F(x)=k=0nAkyk{\displaystyle F(x)=\sum _{k=0}^{n}A_{k}y^{k}},

with integer coefficientsAk{\displaystyle A_{k}}, may be represented by R-nary triangular codes, for these coefficients and functionsyk{\displaystyle y^{k}} 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(1y)m{\displaystyle \alpha _{mk}R^{k}y^{k}(1-y)^{m}} in the positional expansion of the function (corresponding to this code) may be represented by a similar series.

Truncation

[edit]

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

[edit]

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

[edit]

Source:[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)=k=0nm1=0km2=0kαm1,m2,kRkykm1(1y)m1zkm2(1z)m2{\displaystyle 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}},
whereR{\displaystyle R} is an integer positive number, number of values of the figureαm1,m2,k{\displaystyle \alpha _{m1,m2,k}}, andy(x), z(v){\displaystyle y(x),~z(v)} — certain functions of argumentsx, v{\displaystyle x,~v} correspondingly. On Figure 1 the nodes correspond to digitsαm1,m2,k{\displaystyle \alpha _{m1,m2,k}}, and in the circles the values of indexesm1,m2,k{\displaystyle {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 asPKR{\displaystyle PK_{R}}), if the numbersαm1,m2,k{\displaystyle \alpha _{m1,m2,k}} assume the values from the setDR{\displaystyle D_{R}}. At the addition of the codesPKR{\displaystyle PK_{R}} the carry extends to four digits and henceR7{\displaystyle R\geq 7}.

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

F(x1,,xi,,xa)=k=0nm1=0kma=0k(αm1,,ma,kRki=1a(yikmi(1yi)mi)){\displaystyle 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 _{i=1}^{a}(y_{i}^{k-m_{i}}(1-y_{i})^{m_{i}}))},

whereR{\displaystyle R} is an integer positive number, number of values of the digitαm1,,ma,k{\displaystyle \alpha _{m_{1},\ldots ,m_{a},k}}, andyi(xi){\displaystyle y_{i}(x_{i})} certain functions of argumentsxi{\displaystyle x_{i}}. 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{\displaystyle \alpha _{m1,m2,m3,k}}, and the circles contain the values of indexesm1,m2,m3,k{\displaystyle {m1,m2,m3,k}} of the corresponding digit. A positional hyperpyramidal code is called R-nary (and is denoted asGPKR{\displaystyle GPK_{R}}), if the numbersαm1,,ma,k{\displaystyle \alpha _{m_{1},\ldots ,m_{a},k}} assume the values from the setDR{\displaystyle D_{R}}. At the codes additionGPKR{\displaystyle GPK_{R}} the carry extends ona-dimensional cube, containing2a{\displaystyle 2^{a}} digits, and henceR(2a11){\displaystyle R\geq (2^{a-1}-1)}.

See also

[edit]

References

[edit]
  1. ^abcMalinovsky, B.N. (1995).История Вычислительной Техники в Лицах (in Russian). Kiev: Firm "KIT".ISBN 5-7707-6131-8. (Malinovsky, Boris Nikolaevich (2010). Anne Fitzpatrick (ed.).Pioneers of Soviet Computing(PDF). Translated by Emmanuel Aronie. Ahead of his Time. - English translation)
  2. ^abcKhmelnik, S.I. (1966)."Кодирование Функций" [Coding of functions](PDF).Cybernetics (in Russian).4. USSR Academy of Sciences. Archived fromthe original(PDF) on 2023-06-04.
  3. ^abcKhmelnik, S.I. (2004).Компьютерная арифметика функций. Алгоритмы и аппаратура [Computer Arithmetic of Functions. Algorithms and Hardware Design]. Russia/Israel: Mathematics in Computers.ISBN 978-0-557-07520-1.
  4. ^Khmelnik, S.I. (1970)."Несколко Типов Позиционных Кодов Функций" [Several types of positional functions' codes](PDF).Cybernetics (in Russian).5. USSR Academy of Sciences. Archived fromthe original(PDF) on 2023-06-04.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Computer_for_operations_with_functions&oldid=1311015500"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp