GB2480262A - An algorithm for cyclic compression and decompression of a data sequence - Google Patents

An algorithm for cyclic compression and decompression of a data sequence Download PDF

Info

Publication number
GB2480262A
GB2480262A GB1007798A GB201007798A GB2480262A GB 2480262 A GB2480262 A GB 2480262A GB 1007798 A GB1007798 A GB 1007798A GB 201007798 A GB201007798 A GB 201007798A GB 2480262 A GB2480262 A GB 2480262A
Authority
GB
United Kingdom
Prior art keywords
piat
data sequence
coefficients
polynomial
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1007798A
Other versions
GB201007798D0 (en
Inventor
Jonathan Attia
Bernard Pinot
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Etsem Ltd
Original Assignee
Etsem Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Etsem Ltd filed Critical Etsem Ltd
Priority to GB1007798A priority Critical patent/GB2480262A/en
Publication of GB201007798D0 publication Critical patent/GB201007798D0/en
Publication of GB2480262A publication Critical patent/GB2480262A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/66Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
    • H04L29/06659
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention relates to a cyclic form of compression that does not depend upon the form of data being compressed. An initial data sequence undergoes a first level of compression and that compressed data can itself undergo a further level of compression. The compression continues in this cyclic manner until a highly compressed final data sequence is achieved. A separate index is used to indicate the level of compression, i.e. the number of cycles performed. Decompression essentially involves reversing the compression method. The compression/de compression technique is based on an algorithm, named the "PIAT Method" (403), which finds and manipulates the coefficients of polynomials. It starts with an initial or generator polynomial and governs the generation of associated polynomials. It is possible to "jump" from the initial data sequence to the highly compressed data without calculating any of the intervening levels of compression. The compressed final data sequence is essentially an encrypted form of the initial data, with the index serving as a decryption key.

Description

METHOD OF COMPRESSING AND APPARATUS CONFIGURED TO
COMPRESS A DATA SEQUENCE
FIELD
The present invention relates to a method of compressing and an apparatus configured to compress a data sequence.
BACKGROUND
Data can be represented digitally as a sequence of bits (binary digits).
Modification of digital data is inherently a mathematical process of operating on numbers. A certain amount of background mathematical knowledge is required to understand how data is modified and to gain a good understanding of the present invention.
Homer's Scheme, the Newton-Raphson Method for finding polynomial roots, Taylor and Maclaurin Series Expansions, and Pascal's Triangle provide a background to the developments in mathematics that have led to, but are encompassed by, the present invention and also put it into historical context. They are outlined below.
Homer's Scheme Homer's Scheme (1819), named after the British mathematician William Homer, is a popular method for approximating the roots of a polynomialP(x)= ax +a_1x' +...+a1x+a0, wherea0,a1,...a_1,aare called the "coefficients" of F(x).
The roots, denoted herein asx, of the polynomialP(x) are those values ofx for which the image ofP(x):=ax" +a1x" +...+a1x +a0is zero, i.e. the values off for which 0 Although Homer's Scheme is attributed to Homer, it also has origins in Chinese mathematics from the Han Dynasty. The Chinese mathematician Ch'in Chiu-shao is believed to have arrived at an equivalent form in 1247 based on methods of root extraction from the Chiu Chang Suan Shu ("The Nine Chapters of Mathematics"), which is believed to date back to around 100AD. Sometimes, Homer's Scheme is referred to as the Ch'in-Horner Scheme or Method.
FIG. 1 shows Homer's Scheme where, in the initial step, a new set of coefficients {b10,. . . b1,, } is defined as: First Stage Second Stage nth Stage 15:= b2:= := b1x + b2,_1: b1x + b1,_1 b12x + a1:= b2,2x + b10:= b1x + a0 These new coefficients can be seen by following the arrows in FIG. 1 from the upper leftmost corner to the bottom rightmost corner.
is the Homer coefficient in the Ith row and n -j + 1 column of Homer's Scheme. It lies under the initial coefficient For example, for a third-degree polynomial, i.e. where n 3,b,, = b32 is the coefficient on the third row and second column (n -j + I = 3-2 + 1 = 2) of Homer's Scheme and lies under the initial coefficient a_+1 = a3_21 a2.
By first factoring out x and the substituting the new coefficients into the result, P(x)can be rewritten in the nested form: P(x) = a0 + x[ai ÷ x[a2 + .. . x[ani + =b JJ] a0 + x a1 + x a2 + . . . x a1 + b1x =a0+x a1+xb12 =a0+b11x=b10
------_____J
Thus, P(x) = b10.
For some polynomials, the roots are relatively easy to find and there are many elementary methods for doing so. For example, to find the roots of the polynomialP(x) = x2 -16, i.e. the values ofxfor which P(x)= 0, some of the approaches are: Taking A Square Root P(x)=Ox2_16=Ox2I6x±,Jj±4 Thusf=-4andf =4.
Perfect Square P(x)is in the form of a perfect so P(x) = x2 -16 = (x + 4Xx -4). This can only equal zero when x =4 orx -4.
Rational Root Theorem P(x)is in the formP(x) = af +a1x"' +...+a1x+a0where the coefficients {a1} are integer values. According to the Rational Root Theorem, if a!= Oand a0!= 0, then each rootx' is in the form x* = where p is an integer factor of a0 and q is an integer q factor of a. The list of all possible roots can be found by calculating the value of± p-for q all possible values of p and q and then testing whether these possible values are indeed rootsxofP(x).
In the numerical example above, P(x) = -6. The possible values forparel,2,4,8,l6and the only possible value ofqisl. The possible roots are, thus: +!,+.,+±,+!. +! 1 1 1 1' 1 It can be verified that the only values which satisfy P(x) 0 are ± 4.
Quadratic Equation Since P(x)= x2 -16 is in the form P(x)= ax2 +bx+c, where a = 1,b = 0,c = -16, its roots can be found by: * _b±Jb2_4ac x= 2a Thus, the roots of P(x) = x2 -16 are: _o±.,1o2_4.1.(_16) =.L+4 21 2 2 TrIal And Error Another approach is to take a guess as to the possible root and then revise the guess in some predetermined manner. For example, takingx = 2 as a reasonable guess, we find that: P(2)=22-16=4-16=-12!=0 We then try another value, sayx = 3 because we need to increase the value of x2 in P(x): P(3)=3216=9_16=_3!=O We might then tryx = 4 and find that it solves P(x)= 0. In fact, for such a simple polynomial, it is likely that, after a moment's thought, it would be evident that the roots arex* =±4.
The above methods are suitable for finding roots of simple polynomials. However, for a higher-order polynomial such as P(x) = x3 -9x2 + 23x -15, the above methods either do not apply or are rather more complicated. This polynomial is not a perfect square, we cannot manipulate and take roots and it is not a quadratic. We could use trial and error.
One well-known method for approximating the roots of a polynomial such as this is the Newton-Raphson method.
Newton-Raphson The Newton-Raphson method was initially devised by the British mathematician Sir Issac Newton in 1669 and was first published in 1685. It computed a series of polynomials to arrive at an approximation of the roots x'. Newton's method was simplified by fellow British mathematician Joseph Raphson who described Newton's method in terms of a series of better approximations x1 of the root x starting from an initial approximation of the rootx. Raphson's work was published in 1690.
Like Newton, who is credited along with the German mathematician Gottfried Leibniz for devising Calculus in the 1660s, Raphson apparently did not notice the link with Calculus in his approximation method. It was another British mathematician, Thomas Simpson, who described the link in 1740, some 80 years before Homer's Scheme was described in 1819.
FIG. 2 illustrates the Newton-Raphson method.
Given an initial guess x of a root x* of a polynomial P(x), a better approximation to the actual rootxis the point x1 where the tangent to the P(x)at the initial guess x,, crosses the x -axis.
The tangent to the P(x)at the initial guess x can be found from elementary Calculus in the following manner: P'(x)= P(x)-p(x1) xn-xn+I However, since x1 is the point at which the tangent crosses the x -axis, we can use that (x÷1) = 0. Thus:
= P(x)-0 xn -xn+I xn -xn+i
P
-P(x) Accordingly, we simply make an initial guess of the value of x and continue the Newton-Raphson method until a sufficiently accurate root has been found. Using the numerical example with an initial guess of x = 2: P(x)__x3_9x2 +23x-15 P'(x) = 3x2 -1 8x +23 P(x) {23_9.22+23.2_15) x =2-x =x -" =2-n fl+ (3.22_18.2+23) = 2-(8-36 + 46-15) = 2 ----2 + 3 = 5 (12-36+23) (-i) The Newton-Raphson method gives a better approximation x1 of the root of the polynomial asx, = 5. Indeed, it can be seen thatP(5)=53_9.52+23.5_15=125_225+115_15=O. Thus,x =5isaroot ofP(x)=x -9x2 +23x-15.
Had we chosen x = 0 as the initial guess, we would have calculated: P(x)= x3 -9x2 +23x-15 P'(x) = 3x2 -1 8x + 23 P(x) (3 902 + 23.0_Is) (0-0+0-15) Xfl=O_+X+I=Xfl-p(;)=O-(3.02_18.0+23) =0-(0-0+23) = 0-(-15) = !.. 0.65 (23) 23 =0.65-*x =x -P(n) __o.65_(o.653_9.o.652+23.0.65_15) " P'(x) (3.0652 -18.0.65+23) 0.65-(0.227-3.828+15-15) 0.65 _(-3.60) 0.65 + 0.28 = 0.93 (i.276-11.739 + 23) (12.54) This process can be continued until the sequence of root converges sufficiently close to the actual rootx*, which, in fact, in this case isx = 1.
Hornet's Scheme Another alternative is to use Homer's Scheme to approximate the roots. In fact, this method involves essentially the same calculations as the Newton-Raphson method but does not directly involve calculating differentials.
As explained above, the Netwon-Rapshon method involves calculating: fl+I=n 11 P 1⁄4; However, we know from above that, for a third-order polynomiai, (x) = bic and we will show later that P'(x) = b21. Thus, under Homer's Scheme, we can calculate x,,1 by: b10 Xn+I X,, -U2" The method of approximation under Homer's Scheme starts by identifying coefficients in the polynomial P(x) = x3 -9x2 + 23x -15 and preparing a table of Homer Coefficients. Using the same initial guess of; = 2 as under the Newton-Raphson Method,; =x0 =2: Zeroth a3 = 1 a2 -9 a1 23 a0 -15 l-iorner Stage Multiplication x0b13 2 xl = 2 x0b12 = 2 x -7 = -14 x0b11 = 2 x 9 = 18 by; 2 -First Homer = a3 = 1 b12 = a2 + x0k3 b11 = a1 + x0b12 b10 = a0 + x0b1 Stage (1=1) =-9+2=-7 =23-14=9 =-15+18=3 Multiplication x0b23 = 2 xl 2 x0b22 byx0=2-=2x-5=-10 Second b23 b13 = I b22 = b2 + x0b23 b21 = b11 + x0b22 Homer 7+25 Stage(i=2) Thus: x=2-x1 =xfl_!10=2_))=2÷3=5.
This gives exactly the same root as the Newton-Raphson method.
If we had used x x0 = 0: -10 -Zeroth a3 I a2 = -9 a1 = 23 a0 -15 Homer Stage Multiplication x0b13 = 0 x I = 0 x0b1,2 = 0 x -9 = 0 x0b11 = Ox 23 = 0 by; =0* First Homer b13 a3 = 1 111,2 = a2 + x0b13 b = a1 + x0b12 b10 = a0 + x0b11 Stage =9+09 23+0= 23 15+0 15 Multiplication x0b23 = 0 xl = 0 x0b22 =0 x -9=0 byx0 =2-* Second b23 b3 = I b22 = 1112 + x0b23 112! b11 + x0b22 HornerStage 9+09 =23+0=23 Thus: x =0-*x 1=x bo(_15)o15 065 b21 (23) 23 This also gives the same solution as would be obtained by the Newton-Raphson method. This value of x1 0.65 can then be used as a better estimate of the actual rootx* 1 under Homer's Scheme. It can be shown that, in this case, b = -3.60 and =12.54 such that: x1 0.65 -÷ x2 =; - 0.65- 0.65 + 0.28 = 0.93 Thus, one use of Homer's Scheme is to find or approximate the roots x' of a non-trivial polynomial P(x).
-11 -Homer's Scheme can also be used to evaluate the image of P(x) at a particular pointx0, i.e. it can be used to find the value: P(x0)= ax0 + a1x0"' + ...+ a1x0 +a0 = b10.
Homer's Scheme can further be used in long polynomial division, polynomial factorisation and also to find Taylor coefficients.
FIG. 3 illustrates a numerical example of the use of Homer's Scheme. To calculate the Homer coefficients of P(x) = 2x2 + lx -3 when x = x0 =3, the set Jof coefficients is defined as follows: b12:= a2 =2 b11:=x0b12+a1=3x2+l=6+1=7 b10:=x0b11 +a0 =(3x7)-3=21-3=18 This calculation, in which the coefficients {b1 0,k1,b2}can be seen in the second dotted box in FIG. 3.
According to Homer's scheme, P(3) = b10 = 18. This can be verified from the original polynomial as P(3) = 2 x (3)2 +1 x 3-3 = 2 x 9 + 3-3 = 18.
The Homer coefficients {b1 0,b11,b12}are also useful for performing polynomial long division, which is often referred to as "synthetic division".
-12 -Any polynomial P(x)can be divided by a non-zero polynomial g(x) such that: P(x) r(x) = q(x) + -, where deg r(x) < deg g(x).
g(x) g(x) In this expression, g(x) is referred to as the "divisor", q(x) is referred to as the "quotient" and r(x) as the "remainder".
The above expression can be trivially rewritten as: P(x)= q(x).g(x)+ r(x) To divide P(x)by a linear binomal (i.e. a first-order polynomial) in the form g(x) = x -x0, we have from above that: P(x) q(x).(x-xo)+ r(x) The special case of polynomial division by a linear binomial is known as Ruffini's Rule, which is named after the Italian mathematician Paolo Ruffini who described it in 1809, ten years before Homer's Scheme was described in 1819.
Since deg r(x) < deg g(x), and we know that deg g(x) deg(x -x0) = 1, we have thatdegr(x)< 1 = degr(x)= 0 r(x)= r, i.e. the remainder is a constant.
According to Homer's Scheme, P(x0) = for any polynomial. Since: P(x0)=q(x0).(x0-x0)÷r =q(x0).0+r=r g(x0) P(x0) r = b10 -13 -Thus, the remainderrof long polynomial division is equal to the final first-row Homer Coefficient b0. Alternatively, we can say that the value ofP(x)atx x0 is equal to the remainderr=b10whenP(x)is divided byx-x0. This is known as the Polynomial Remainder Theorem.
Furthermore, if P(x)is an nthdegree polynomial in the form P(x) = ax + a1x" + ... + a1x + a0, then q(x) will be an n-i thdegree polynomial in the form: q(x) = c_1x"1 + c2x2 +... + c1x + c0 From the above, we have that: P(x)= q(x).(x-x0)+r = ax + a1x+ ... + a1x + a0 = + cx+ ... + c1x + c0)(x-x)+ r P(x) =q(x) =g(x) =[c_1]x +[c_2 -c_1x0Jf' +... +[c0 -c1x0Jx+{r-c0x0] Equating coefficients gives: x -3 a = c,,1 = a x' -3 a,, = c_2 -c_1x0 c_2 = a_1 + c,,1x x' -3 a = C0 -cx0 => C1 = a1 + c1x0 x° -3a0 =r-c0x0 r=a0+c0x0 However, according to Homer's Scheme, we know that: -14 -b1:= a b11:= a1 + bx0 := a1 + b12x0 b10:= a0 + b11; Substituting this into the equated coefficients above: f -3 c,_1 a: x -* c2 = a,1 + = a1 + b1x0 =: x'-c0=a1+ c1xQ=a1+b12x0=:b}1 x°-3r=a0+c0x0=a1+b1x0=:b0 Returning back to the initial definition of the quotient q(x) and using this correspondence between the coefficients {c1}of the quotientq(x)with the first row Homer coefficients {b1 J, we have that: q(x) c_1x' + c_2x'2 +... + c2x + c1 = xnl + + ... + + This finally gives that: P(x) = (b1x' + b11x2 +... + b12x + b11). (x x0)+ b x) In summary, long polynomial division of an nm-degree polynomial function P(x)by a linear polynomial divisorg(x)in the formg(x)= x-x0gives an n1thdegree polynomial -15 -quotientq(x) having Homer's coefficients(b1,...,b11}as its coefficients {c_1,...c0}with a constant remainderr equal to the lowest-order first stage Homer coefficientk0divided by the divisorg(x).
By way of a numerical example, to divide a second-degree polynomial P(x) = + lx-3 by a linear polynomial g(x) x -, we know that: P(x) r, b1 18 -ç=q(x)+--7-yb12x+b11)+1 gx) gx) x-3) Thus, 2x2+lx-3 18 x-3 (x-3) Long polynomial division in the above numerical example can be performed "by hand" in the following elementary manner by way of a comparison: 2x +7 (x-3))2x +lx-3 2x2 -6x +7x-3 +7x-21 +18 Homer's Scheme clearly also gives a method for factorising P(x)by g(x) = (x -x0)since: P(x)=q(x)'g(x)+r In this numerical example, we, therefore, have that: -16 -q(x).g(x)+r =(2x+7Xx_3)+18=(2x2 -6x+7x-21)+18 =2x2 +x-3=P(x) Given a general third-order polynomial (for simplicity) P(x) = a3x3 + a2x2 + a1x + a0, we can populate a table for use under Homer's Scheme as follows: Zeroth Homer a3 a2 a1 a0 Stage Multiplication x0b13 x0b12 x0b11 by; -* First Homer a3 b12 = a2 + x0b13 b11 = a1 + x0b12 b a0 + x0b11 Stage Multiplication x0b23 x0b22 by; -Second Homer b23 b13 b22 = + x0b23 b21 b11 + x0b22 Stage Multiplication x0b33 by; -4 Third Homer b33 b23 b3,2 = b22 + x0b3,3 Stage To define the Homer coefficients: -17 -:= a3 b1,2:= a2 + x0b13 b11:= a1 + x0b12 bici:= a0 + x0b11 b23 b2,2:= b12 + x0b23 b21:= + x0b22 b33:= b23 b32:= b22 + x0b33 We know from the above, that we can write P(x)=q1(x).(x-x0)+r1, where: q1(x)=b13x2 +b12x+b11, and rj =b10 However, q1(x) can also be factorised under Homer's Scheme as follows: q1(x)= b13x2 + b12x + = q2(x) (x -r2, where: q1 (x) = (d1x+d0Xx -x0) + i [d1 J2 + [d0 -d1; }x + -d0x0} q(x) Equating coefficients gives: -* = d1 = d1 = b23 =:b23 x -b12 = d0 -d1 x0 d0 =k2 +b23x0 d0 =b22 =b23 =:b22 x0 -+b11 =r2 -d0 x0 r2 =b11 +b22x0 = r2 =b21 =:b21 -18 -Thus, it can be seen that the second polynomialq2(x)also has the Homer Coefficients as its coefficients and that the remainder of the polynomial factorisation is the lowest-order Homer coefficient on the second Homer row, 1,21: q1(x)= (b23x+b22Xx -x0)+ 2I q2(x) In the final step of the Homer Scheme, the first-order monomialq2(x)is factorised again: q2(x)=b2,,x+b2,2 =q3(x).(x-x0)÷r3,where: q2(x)= (e0)(x-x0)+r, =[e0]x+[r,-e0x0J q3(X) Equating coefficients gives: x -= e = e -=:b33 x° -b22 =i-e0 x0 =i =b22+b,,x0 i =b,2 =b3,3 Thus, it can be seen that the third polynomial q,(x) also has a Homer coefficients as its constant term and that the remainder of the polynomial factorisation is the lowest-order Homer coefficient b,2: q,(x)=(b33x-x0)+b,2 =q3(x) From above, we have that: P(x)=t3x2+b2x+b11.(x-x0)+b1,. q,(x)
-19 -Dividing both sides byg(x)= (x-x0)gives: P(x) = (k3x2 ÷ + kt)+ b10 (x-0) (x-x0) Dividing both sides again byg(x)=(x-x0)gives: P(x) 2 b13x2 + b12x + b11 + b1,0 2 (x-x) (x-xo) (x-x) However, we have from above that: qi(x)=b13x2+bi2x+bii -q2(x).(x-x0)+r2=(bx+b22).(x-x0)+b q2(x) r2 b3x2+b12x+b11 b21 I =(b23x+b22)+1 x-xoJ x-xo Substituting this into the earlier expression for P(x) 2 we have that: (x -x) P(x) -b13x2 + b12x + b11 _______ -b b21 b10 I \2 -+ I \2 - 23X + 2,21+ I + I x-x0) X-X0) ,X-X0) (X-X0) Dividing both sides again byg(x)=(x-x0)gives: P(x) -b23x+b22 ______ + b10 (x -x0)3 -(x -x0) + ( -x0)2 ( x0)3 However, we have from above that: -20 -q2(x)=b23x+b22 =q3(x).(x-x0)+, =(b33Xx-xo)+b q3(x) r3 b23x + b22 b32 / \ (x-xo) (X-X0 Substituting this into the earlier expression for P(x) , we have that: (x -xj P(x) -b2,3x + b2,2 b21 b1,0 -b32 b2, b10 3 / 2+ 3 33+f 2+ 3 (x-x0) X-X0) (x-x0) (-0) Ix-x0) (x-x0) (x-0) It will also be seen that multiplying both sides of this equation by(x-x0)3 gives: P(x)b33(x-x0+b32(x-x0)2+b21(x-x0)+b10.
This factorisation of P(x)can be used to find the derivative P'(x0)of P(x)atx = x0as follows: P(x) = b33 (x -x0)3 + b32 ( -0)2 + b21 (x -x0) + b10 P(x0)=b33(x0-x0)3 +b32(;-x0)2 +b21(x0-x0)+b10 b10 P(x0)=b0 -P'(x)= 3b33(x-x0)2 + 2b32(x-x0)+b21 = P'(x0) = 3b3,3 (x0-x0)2 + 2b32 (x0-x0) + b21 = 1i21 P'(x0)= b21 -+ P"(x) = 6b33 (x -x0) + 2b32 = P"(x0) = 6b33 (x0-x0) + 2b32 pm(X) = 6b33 P'(x0) = 6b33 -21 -
In summary, in the case of a third-order
polynomial P(x) = a3x3 + a2x2 + a1x + a0 (which can be extended for larger-order polynomials): Polynomial Factorisation 1 P(x) = (b13x2 +b2x+b11(x-x0)+b qi(x) [(3x+b22Xx_xo)+ b21](x_ x0)+ b10 q2(x) r2 = q3(x) r2 Polynomial Factorisation 2 P(x)=b33(x-x0+b32(x--x0)2+b21(x-x0)+b10 Polvjnomial Division P(x) =(b13x2+b12X+b11)+ ° (x-x0) * (x-x0) q(x) r2 P(x) , _____ b10 / \2 -ib2,3x + b22)+ / + / IX-X0) x) X-X0) x-x0) r3 P(x) -b + + b21 b10 (x-x0)3 (x-x0) (x-x0)2 +()3 Derivatives -22 -P(x0)= b10 P'(x0) = b21 P(x0) -b 2 -3,2 pm(X) b Taylor Series The Taylor Series of a mathematical function f(x) is a representation of that function as a sum of terms which include derivativesf'(x),f"(x),.. .,f(x)of that function at a particular pointx x0. It is named after the British mathematician Brook Taylor who described a general method for constructing such a series in 1715 some hundred years before Homer's Scheme was described in 1819. The problem of finding a finite sum of an infinite series had, however, been considered for many centuries before Taylor published his general method. A special case of the Taylor Series is the Maclaurin series, named after the British mathematician Cohn Maclaurin which also dates from the eighteenth century.
If the function is a polynomial of the form P(x) ax a0 + a1x +... + af, then the Taylor Series ofP(x)aboutx0 =Ocan be found as follows: P(x)=a0+a1x+...+ax =P(O)-a0+a1O+...+aO'=a0 Thus, a0 P'(x) 1a1 + 2a2x... + =P'(0)=1a1+2a2O...+na0"' =1a1 -23 - Thus, a1 -
I
P"(x)= 2x1a2 +3x2a3x...+n(n_1)ax_2 =P"(O)=2x1a2 +3x2a30...+n(n_1)a02 =2x1a2 Thus, a2 = 2x1 P(x) = -lXn -2)... (i)a0 =P(0)=n(n-1Xn-2)...(1)a =n!a n! p(n) (o) Thus, a0 Thus, the polynomial can be rewritten as: (o) "(o) 2 p(n)() ,, P(x)=a0-4-a1x+...+ax =(o)÷ x +...+ x 1! 2! n! a0 -._.-.d.-----J Oj C3 0,, This series is referred to as the Maclaurin Series, which is the special instance of the Taylor Series when x0 =0.
It can be shown that, for any x0: P(x)= P(x0)+ °(-0)+ P(x)2 +...+ P(x)fl This is referred to as the Taylor Series ofP(x)aboutx0 -24 -The above can be verified using an exemplary polynomial: P(x) = 2x2 + Jx -3.
Forx0 = O(Maclaurin Series): P(x) = 2x2 + Ix -3 P'(x) 4x +1 P"(x) 4 P(O)=2x02+IxO_3=_3 P'(0)=4x0+1=1 Thus: (o) (o) (o) 2 3 4 2 x 0! 1! 2! 1 1 2 =2x2 +lx-3 Forx0 = 3 (Taylor Series): P(x) = 2x2 + lx -3 P'(x) 4x +1 P(x) 4 P(3)=2x32+1x3-3=18 P'(3)4x3+113 Thus: P(x)=-)+1'1(,3)(X_3)+13)(X_3)2 =18+(x_3)+..(x_3)2 =18113x_39+2(x2 6x+9)=2x2 +(13-2x6)x+(18-39-i-2x9) = 2x2 + lx -3 FIG. 3 also shows how successive stages of Homer's Scheme can be used to find the ith Taylor Coefficient kXOI The value obtained at the final step of each level of stage of Homer's Scheme gives the corresponding Taylor Coefficient. In general, -25 -P(x0) In the above example, it can be seen that b10 = 0! = 18, _____ p"(3\ k)=l3andthatb2= =2. 1! 2!
The Taylor Series expansion of one special factorised polynomial is of particular interest. A Taylor Series expansion of the function P(x) = (i + can be found as follows: P(x) = (i + =P(o)=(i+o)" =i" =i Thus,P(0)=l.
P'(x) n(1 + =P'(0)=n(1+0)"' =n1'' Thus, (o) = P(x) n(n -iXi + "(o) = -IX1 + o) = -iXi)2 = -i) Thus, "(o) = -i).
P"(x) = n(n -i). . . (iXi + = -i). . . (1X1 + = n(n -i). . . (iXi)° = -i).. . (i) = Thus, p(n)(o) = n!.
Thus, the Taylor (Maclaurin) Series expansion for P(x)is: -26 - (o) pn(�) 2 p(n)() a0 + a1x+... ÷a,,x" = (o)+ x+ x + ...+ x -i 1! 2! 0 s.._..v.__d..d n n(n-1) 2 n! 1 a =1+-x+ x +...+ x +...+-x 1! 2! (n-i)!i! The form of the ith coefficient may already be familiar to the reader who is (n-z)!z! familiar with Pascal's Triangle.
Pascal's Triangle FIG. 4 shows an extract of the first eight rows of Pascal's Triangle. Pascal's Triangle is named after the French mathematician Blaise Pascal who described it in 1653. However, it was also known to mathematicians in India, Persia, China and Italy hundreds, and even thousands, of years earlier and goes by different names throughout the world.
The first row of Pascal's Triangle is usually called the zeroth (as opposed to the first) row. Pascal's Triangle is well-known and so a detailed description is omitted.
According to the Binomial Theorem, Pascal's Triangle can be used to find the binomial coefficients {a0,...a}of a binomial expansion of: (x+y) = =a0f +a1xy+...+a1' +ay.
It can be shown that(x + y)" = (Jx"'' , where a = [7] = i!(n" i)! -27 -The binomial coefficients[ jcan be found either by using the above factorial calculation or from inspecting the ith value on the nth row of Pascal's triangle.
Thus, for(x÷y)5: (+y)5 = i=01 = [0) OYO: +f 52 + [Jx3 + 5! = x+ xy+ x3y+ xy+ xy+ y 0!(5-O)! 1!(5-1)! 2!(5-2)! 3!(5-3)! 4!(5-4)! 5!(5-5)! 5! 5! 5! 3 2 5! 2 3 5! 5! =-x +-xy+----xy +-xy +-xy +-.-y 5! 4! 2!3! 3!2! 4! 5! = x5 + xy + x3y + 0x2y3 + xy4 + y5 As explained above, the values {a0,...,a5}can, as an alternative to the factorial method of calculation above, be obtained by reading-off the value directly from Pascal's Triangle. Since Pascal's Triangle is widely available, the look-up approach can be significantly quicker than calculating each of the values {a0,. . . , a5} using factorials. This is particularly true for large values of n and i.
In addition to providing the value of an associated binomial coefficient, (n'\ ______ a. = = also indicates the number of ways of selecting a number, i, of Iz) i!(n-:)! elements from a set containing n elements, where any particular element can only be selected once and where the order of the selected elements does not matter. This is often called the number of combinations "without repetition". For example, this could be used to find the number of different possible ways of winning a lottery, where the lottery -28 -balls are not replaced after they are drawn and the particular order of the lottery balls does not matter; only the specific numbers on the drawn balls matters.
By way of an example, supposing one had a bag with six balls in it: one green (G), one black (B), one white (W), one red (R), one yellow (Y) and one orange (0).
Firstly, to calculate the number of different permutations of balls (i.e. where the order of the balls does matter) you could select by taking three successive balls from the bag but replacing the drawn ball on each occasion (to allow repetition), you would have a choice of any one of six balls in the bag for the first pick, then any one of the six original balls for the second pick and, again, any one of the six original balls for the third and final pick. Thus, you would have 6 x 6 x 6 = 6 possible permutations if the selected ball were replaced after each draw. It is clear that the number of permutations of i elements from ann -element set where repetition is allowed is: n'.
Secondly, to calculate the number of different permutations of balls (i.e. where the order of the balls does matter) you could select by taking three successive balls from the bag without replacing the ones that have been taken, you would have a choice of any one of six balls in the bag for the first pick, then any one of the five remaining balls for the second pick and any one of the four remaining balls for the third and final pick.
Thus, you would have 6 x 5 x 4 = 120 different permutations of three balls from the six-ball bag. It will readily be seen that the number of permutations of I elements from a set of n elements without replacement (without repetition) is: P(n,i)= (n-i)! -29 -However, if the order of the balls is unimportant (i.e. moving from permutations to combinations), then, for example, in selecting the green, black and white balls, {G, B, w}, {G, w, B}, {B, G, w}, {B, w, G}, {w, G, B}and {w, B, G}are all equivalent to {G, B, w}. It will, thus, be seen that the number of combinations decreases by a factor of i! so that the number of combinations without repetition of i elements from an n -element set is: i. ii! Cn,z)= / z!n-i In the above example, the number of combinations without repetition can be read-off from Pascal's Triangle (in fact, the fourth value on the seventh row) or can be calculated using the factorial formula as: 6! 6x5x420 3) 3!(3)! 3x2x1 There are many known methods of data modification that employ mathematical techniques such as those described above. A subset of these methods is data compression: reducing the size of data.
FIG. 5 shows various known techniques for a type of data compression called "Iossless" data compression. Lossless data compression is a form of compression in which the data is compressed according to an algorithm which preserves all of the original data. In other words, it enables the compressed data to be decompressed back to its original form without any loss of information. A familiar example of lossless data compression is a "zipped" computer file which can be "unzipped" to recreate the original file.
-30 -In contrast, an example of so-called "lossy" data compression is compression of a WAV audio file into an MP3 audio file. This is because some of the data in the WAV file (lying outside the human audible range) is intentionally removed during the compression into MP3 format.
There are three main types of lossless data compression: entropy encoding, dictionary-based algorithms and heuristic reduction of entropy.
In entropy encoding, a codeword is assigned to each symbol in the data to be compressed. The more common the symbol, the shorter the codeword. Examples of entropy encoding are Arithmetic and Adaptive Arithmetic Encoding, Huffman Encoding (one-pass and two-pass), and Universal Code. An example of a dictionary-based algorithm is Lempel-Ziv 77/78. Examples of heuristic reduction of entropy encoding are the Burrows-Wheeler Transform, Move-To-Front and Prediction by Partial Matching.
Another known compression technique is Run-Length Encoding ("RLE"). RLE relies upon adjacent symbol or character repetitions in data. By way of an example, the first line of a 16x16 pixel icon, in which each pixel is either black (B) or white (W) could be BBBWBBWWWWWBBBBB. This can be compressed under the RLE technique as [3]BW[2]B[5]W[5]B, where the number in parentheses indicates the number of repetitions of the following symbol. An alternative data sequence such as BWBWBWBWBWBWBWBW cannot be compressed using RLE since there are no adjacent repetitions of individual symbols.
Current encoding techniques suffer from various drawbacks including the maximum amount of compression obtainable under the techniques, different rates of -31 -data compression for different input data types and a possible lack of security in relation to the compressed data.
The present invention is set against this backdrop.
STATEMENTS OF INVENTION
According to a first aspect of the invention, there is provided a method of compressing an initial data sequence, comprising non-entropically compressing the initial data sequence to obtain a compressed data sequence and generating an index indicating the level of compression of the compressed data sequence, whereby the initial data sequence can be recovered by applying the index to the compressed data sequence.
Unlike standard compression that is based on an entropic analysis of the source data, non-entropic compression under the PIAT Protocol operates directly on the input data. The PIAT Protocol provides various advantages over conventional encoding techniques, such as lossless data compression, on-the-fly data processing, insensitivity to the particular type of input data (exe, txt, jpg, ..), a once-compressed data stream is further compressible as many times as necessary in a cyclic manner.
According to a second aspect of the invention, there is provided a method of compressing an initial data sequence, comprising compressing the initial data sequence to obtain a compressed data sequence and generating an index indicating the level of compression of the compressed data sequence, the index being separable from the compressed data sequence, whereby the initial data sequence can be recovered by applying the separated index to the compressed data sequence.
-32 -The PIAT Protocol provides various advantages over conventional encoding techniques, such as lossless data compression, on-the-fly data processing, insensitivity to the particular type of input data (exe, txt, jpg, ...), a once-compressed data stream is further compressible as many times as necessary in a cyclic manner and secure encryption via compression since the index is separable from the compressed data and serves as a decryption key.
Compression may comprise dividing the initial data sequence into an ordered set of coefficients, each coefficient being a sub-sequence of the initial data sequence and reducing the magnitude of at least some of the coefficients to provide a reduced ordered set of coefficients, the reduced ordered set of coefficients defining the compressed data sequence.
The initial data sequence can be optimised, for example according to an optimisation heuristic so give the best possible compression under the PIAT Protocol.
Dividing the input data sequence into a set of coefficients is a particularly advantageous method of optimising the input data. For example, it makes it suitable for polynomial treatment which is an efficient basis for data compression under the PIAT Protocol. By reducing the magnitude of the coefficients in the ordered sets, the overall size of the data is reduced, i.e. the data is compressed.
The value of the index may be equal to the value of the division of, as numerator, the difference between the value of the second-smallest coefficient in the ordered set, and the value of the second-smallest coefficient in the ordered set modulo the value of smallest coefficient in the ordered set, and, as denominator, the value of smallest coefficient in the ordered set.
-33 -This provides an advantageous method of determining the value of the index, which is used to recreate the initial data sequence from the compressed data sequence, using the coefficients related to the input data sequence.
The coefficients in the ordered set may be arranged in magnitude order, and the compression may comprise a coefficient reduction cycle of subtracting a multiple of the second-largest coefficient from the largest coefficient to provide the largest coefficient in the reduced ordered set, subtracting a multiple of a coefficient from its immediately larger coefficient to provide the corresponding immediately larger coefficient in the reduced ordered set for all other coefficients in the ordered set, except for the smallest coefficient, and providing the smallest coefficient in the reduced ordered set with the same value as the smallest coefficient in the ordered set.
This provides a highly structured and reversible method for compressing an initial data sequence into a compressed data sequence.
Compression may comprise multiple coefficient reduction cycles, the magnitude of at least some of the coefficients being reduced during each cycle.
Multiple cycles of the highly structured and reversible method can be effected to give increasing compression rates with each cycle. The number of cycles can be chosen in an appropriate manner given the object of the compression (e.g. time versus compression rate).
The value of the multiple may be unity and the ordered set of coefficients and the reduced ordered set of coefficients may each comprise only two ordered coefficients.
-34 -These particular values of the multiple and of the coefficients give the optimum processing system under the PIAT Protocol at least in terms of the index and a simplified optimisation heuristic.
Compression may comprise calculating the reduced ordered set of coefficients directly from the ordered set of coefficients and using values located in the Carré de PIAT (CdP).
Direct calculation of the reduced coefficients can reduce the overall number of calculations required to achieve optimum data compression under the PIAT Protocol.
The method may comprise receiving the initial data sequence from a communications network or retrieving the initial data sequence from a memory.
The PIAT Protocol is particularly suited to processing such data sequences as would be used within a communications network or stored in memory.
The method may comprise transmitting the compressed data sequence and/or the index to a communications network or storing the compressed data sequence and/or the index in a memory. The method preferably comprises separating the index from the compressed data before transmission or storage.
The PIAT Protocol is particularly suited to processing such data sequences as would be used within a communications network or stored in memory. Separating the index from the compressed data increases the overall security of the compressed data.
The initial and compressed data sequences may be binary data sequences.
-35 -The PIAT Protocol is insensitive to the type of input data, but operates directly on binary data sequences which are typically used in computer hardware.
The method may further comprise compressing the index, preferably using entropy encoding or compression under the PIAT Protocol.
The index can be compressed whether to reduce the overall size of data compressed under the PIAT Protocol or to increase the security of the compressed data sequence.
According to a third aspect of the invention, there is provided a computer program comprising computer-readable instructions which, when executed, cause a data-processing apparatus to perform such methods. A computer-readabie medium or a signal may comprise the computer program.
According to a fourth aspect of the invention, there is provided an apparatus configured to compress an initial data sequence, the apparatus comprising a processor arranged to compress the initial data sequence to obtain a compressed data sequence, and generate an index indicating the level of compression of the compressed data sequence, the index being separable from the compressed data sequence, whereby the initial data sequence can be recovered by applying the separated index to the compressed data sequence.
According to a fourth aspect of the invention, there is provided an apparatus configured to compress an initial data sequence, the apparatus comprising a processor arranged to non-entropically compress the initial data sequence to obtain a compressed -36 -data sequence, and generate an index indicating the level of compression of the compressed data sequence, whereby the initial data sequence can be recovered by applying the index to the compressed data sequence.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: FIG. I shows the initial step of Homer's Scheme; FIG. 2 shows the Newton-Raphson method; FIG. 3 shows an example of how Homer's Scheme can be used to find the Taylor coefficients; FIG. 4 shows an extract of the first eight rows of Pascal's Triangle; FIG. 5 shows various conventional methods of lossless data compression; FIG. 6 shows the Protocol Stacks under the TCT/IP and OSI models; FIG. 7 shows data encapsulation under the TCP/IP Protocol; FIG. 8 shows an P datagram having a packet header and a data payload; FIG. 9 shows a PIAT router configured to operate under the PIAT Protocol; FIG. 10 shows an IP datagram having a data payload subject to cyclic PIAT compression and decompression; FIG. 11 shows an overview of a communications network operating under the PIAT Protocol; FIG. 12 shows the PIAT Algorithm for a polynomialP(X); FIG. 13 shows a numerical example of the PIAT Algorithm; FIG. 14 shows the Inverse PIAT Algorithm; FIG. 15 shows the PIAT Method; FIG. 16 shows the Inverse PIAT Method; FIG. 17 shows the Extended FIAT Method; -37 -FIG. 18 shows the Inverse Extended PIAT Method; FIG. 19 shows further rows of the Extended PIAT Method to give the same results as the PIAT Algorithm; FIGs. 20A, B and C show numerical examples of the PIAT Algorithm, the PIAT Method and the Inverse (Extended) PIAT Method forx0 = 1; FIGs. 21A, B and C show numerical examples of the PIAT Algorithm, the PIAT Method and the Inverse (Extended) PIAT Method forx0 = 2; FIG. 22 shows a binary and decimal representation of a data sequence; FIG. 23 shows a PIAT polynomial tree for compressing a data sequence; FIG. 24 shows a numerical example of polynomial reduction under the Inverse PIAT Method; FIG. 25 shows a numerical example of polynomial expansion under the PIAT Method; FIG. 26 shows a numerical example of polynomial reduction/expansion under the PIAT Protocol; FIG. 27 shows how the PIAT Algorithm can be used to construct the one-dimensional CdP, CdP,; FIG. 28 shows numerically how to populate the CdP1 using the PIAT Method; FIG. 29 shows the mapping between the Carré de PIAT (CdP) and Pascals Triangle; FIG. 30 shows an extract from the 1-dimensional CdP, denoted CdP1; FIG. 31 shows a numerical example of calculating a value in the CdP1; FIG. 32 shows a numerical example of mapping the CdP1 onto the CdP; FIG. 33 shows how the PIAT Algorithm can be used to construct the n-dimensional CdP, CdP; FIG. 34 shows an extract from the 2-dimensional Carré de PIAT, denoted CdP2; FIG. 35 shows an extract from the 3-dimensional Carré de PIAT, denoted CdP3; -38 -FIGs. 36A and 36B show a detailed numerical example of jumping from an initial PIAT Polynomial to the 200,000th associated Perfect PIAT polynomial; FIG. 37 shows a numerical example of reduction under the Inverse PIAT Method; FIG. 38 shows another numerical example of reduction under the Inverse PIAT Method subject to index correction; FIG. 39 shows the PIAT optimisation heuristic; FIG. 40 shows an overview of data compression under the PIAT Protocol; FIG. 41 shows an overview of data decompression under the PIAT Protocol; FIG. 42 shows compression and decompression of an index under the PIAT Protocol; FIG. 43 shows the different rates of data compression under PIAT, Huffman and RLE compression schemes; FIG. 44 shows a numerical example of Euclidean polynomial division; FIG. 45 shows a method of how to calculate P(X)at a pointx0; FIG. 46 shows a numerical example of how to calculate the value of a polynomialP(X) at a point;; FIG. 47 shows the PIAT Classification Space forx0 = I for the numbers between 0 and 109; FIG. 48 shows the PIAT Classification Space for; = I for the numbers between 0 and 299; FIG. 49 shows a graph of certain polynomials associated with the PIAT Classification Space for; = 1; FIG. 50 shows the PIAT Classification Space forx0 = 2for the numbers between 0 and 299; FIG. 51 shows a graph of certain polynomials associated with the PIAT Classification Space for; = 2; -39 -FIG. 52 shows a series of perfect couples as part of the PIAT Classification Space; FIG. 53 shows mapping and composite mapping functions within the PIAT Classification Space FIG. 54 shows an 8-bit PIAT classification space; FIG. 55 shows a 16-bit PIAT classification space; FIG. 56 shows the mathematical perimeter in relation to the PIAT Protocol; FIG. 57 shows various mathematical consequences under the PIAT Protocol; FIG. 58 shows the Restricted CdP, denoted CRdP; FIG. 59 shows numerical examples of calculations in relation to the CRdP; FIG. 60 shows the PIAT Triangle (TdP) and the Complementary PIAT Triangle (ThTdP); FIG. 61 shows a numerical calculation in relation to the hypotenuse of the TdP; FIG. 62 shows a system for cyclic PIAT encryption; FIG. 63 shows an extract from the CdP1 identifying the intersections of PIAT Triangles associated with prime numbers; FIG. 64 shows the PIAT Diagonal (DdP); FIG. 65 shows how the sequence of prime numbers can be determined using the Cd P1; FIG. 66 shows the algorithm for the sequence of prime numbers; FIG. 67 shows the General and Restricted Criterion of Primality; FIG. 68 shows the Rights of Primality DdPM; and FIG. 69 shows a summary of the remarkable properties of the CdP.
DETAILED DESCRIPTION
Data processing according to the PIAT Protocol will now be explained.
-40 -FIG. 6 shows the four-layer TCP/IP architecture model and how it corresponds to the seven-layer OSI model. Two layers of particular interest in relation to the present invention are the Application and Internet layers.
The Application layer, implemented in layer 7 of the TCP/IP model, defines how applications can exchange data with each other and how they can access the services of other layers. The Internet layer, implemented in layer 3 of the TCP/IP model, is responsible for addressing, packaging, and routing functions.
FIG. 7 shows data encapsulation according to the TCP/IP Protocol.
Data is transmitted according to the TCP/IP Protocol as packets of information; the packets having a header and a data or payload component. If one System, A, wishes to send data to another system, B, via the TCP/IP Protocol, the data passes through all seven layers of the TCP/IP Protocol Stack at both systems. At the sending system, system A, the data is formatted in the Application layer, layer 7, so that the Transport layer can handle the data. The Transport layer encapsulates the data and modifies the packet header so that the Internet layer, layer 3, can handle the data. This process continues until the data has passed through the TCP/IP Protocol Stack to the Physical Network layer, layer 1.
The data is then transferred via a communications network to the other system, System B. System B then reverses the encapsulation by passing the received encapsulated data through the layers of the TCP/IP Protocol Stack in the reverse order until it finally receives the original data in the Application layer, layer 7.
-41 -FIG. 8 shows the various fields of the header of an IP Datagram. The IP Datagram also includes a data component which does not form part of the header. As will be explained below, the data component can be compressed and encrypted according to the PIAT Protocol.
FIG. 9 shows a router 90 which operates under the PIAT Protocol. The router is similar to conventional routers but it also includes PIAT processors 91 which allow the router to operate under the PIAT Protocol. When data is received via an input port 92, it is modified by a PIAT processor; for example, either by way of compression or decompression. The modified data is then output via output ports 93. The router operates under the control of a processor 94 and can include a memory 95 which can store a computer-program 96 for performing operations under the PIAT Protocol. A switch fabric 97 allows routing of data packets within the router 90.
FIG. 10 shows a datagram under the PIAT Protocol, in which the data field of any IP datagram sent to a router undergoes a mathematical reduction in size (compression) via the PIAT processor. The compression is independent of the format of the data (exe, bin, txt, img, ...) being compressed. Unlike current techniques, compression according to the PIAT Protocol does not depend upon entropic factors. Furthermore, in contrast to known compression techniques, PIAT Compression can be performed multiple times to reduce the size of the data continuously in a cyclic manner. The router reduces the size of the data field each time it undergoes a cycle of PIAT Compression.
Furthermore, under the PIAT Protocol the data field is encrypted simultaneously with the reduction in size. This is because both the compressed data and an associated index indicating the level of compression are needed to decompress the compressed data and neither the compressed data nor the associated index individually resembles -42 -the original data. The original information in the data field is not accessible in plaintext by an unauthorised third party, such as an operator or a service provider, who does not also have the index.
These compression/decompression and encryption/decryption operations under the PIAT Protocol are possible in layer 3 and above.
FIG. 11 shows a possible network architecture 110 which implements the PIAT Protocol.
PIAT routers 111 in the network architecture 110 include PIAT processors (not visible), as discussed above, so that data transmitted within the network 112 is processed according to the PIAT Protocol. This means that the data within the network undergoes simultaneous compression and encryption, and simultaneous decompression and decryption under the PIAT Protocol.
Although the invention lies in the field of improved data processing techniques and the associated hardware, an explanation of the mathematics that led to the advantages realised by the invention is necessary to enable its understanding. Throughout the text below, various new terms will be introduced in French, since these are the terms originally used by the inventors.
The Algorithme de P/AT (AdP) The Algorithme de PIAT (PIAT Algorithm), denoted herein as AdP, takes its name from a portmanteau of the inventors' surnames: (Pl)not and (AT)tia. The AdP unifies the inventors' developments and represents a starting point for understanding the present invention.
-43 -In general terms, the PIAT Algorithm is an algorithm for finding and manipulating coefficients of polynomials. It starts with any initial polyriomialP(X)0of degreec and governs the generation of an infinite sequence of Associated PIAT Polynomials of increasing degree where each Associated PIAT Polynomial (x), is of degree 2' c such that: P(X)0 = acX" + a1X' + ... + a1X + a0 P(X)1 =bX2C +...-1-b1X+b0 where (a,b1,...,1)N P(X)r = + ...,x + The initial PIAT polynomial P(x)0will often be referred to herein as the "Generator PIAT Polynomial" and individual Associated PIAT Polynomials P(X)1,...,P(X),. will often be referred to herein as "Perfect PIAT Polynomials".
FIG. 12 shows the PIAT Algorithm.
The PIAT Algorithm starts with an Initial or Generator polynomial: = acXc + ac1X + ... + a1X + a0.
The initial coefficients {a,...,a0} are arranged in an ordered set and are used as an input into the PIAT Algorithm. The initial coefficients{a,...,a0}are arranged in a row in degree-order, where the highest-order coefficient (the "leading" coefficient) a is in the leftmost column (column zero) of the row. The lowest-order coefficient (the constant -44 -term) a0 is in the rightmost column (column c) of the row. The rows referred to in relation to the PIAT Algorithm are denoted as PPA and the columns referred to in relation to the PIAT Algorithm are denoted as 7pA Arranging the coefficients{a,...,a0}in this manner on the zeroth rowpPA 0 of the PIAT Algorithm is, in effect, the zeroth step of the PIAT Algorithm. This step is identical to the first step of Homer's Scheme which has been discussed extensively above and can be seen in FIG. 1.
In the first step of the PIAT Algorithm and with reference again to FIG. 12, the entire set of coefficients {a,... , a0) is multiplied by a value x0 and is shifted to the right directly below the initial arrangement in the zeroth row PPA = 0 to provide the first row pp4 = I of the PIAT Algorithm. Thus, in the first row p4 = lof the PIAT Algorithm, none of the initial coefficients lies directly below the highest-order coefficient a of the zeroth rowpPA = 0. In other words, the zeroth column y4 = Oof the first row p4 = us empty.
Below the second-highest-order coefficient a1 in the zeroth row PPA = 0, lies ax0.
Below the lowest-order coefficient a0 in the zeroth row p4 = 0, lies a1x0. The lowest-order coefficient a0x0 in the first rowp,, = 1, which is in column r4 = c + 1, does not lie below any coefficient {a,. . .,a0} from the zeroth rowp4 = 0.
This shifting process is repeated a total number of c times (c being the degree of the polynomial), each time multiplying all of the coefficients byx0 when moving to the -45 -immediately lower row PPA -PPA + land also shifting the resultant set of multiplied coefficients one column to the right y,,4 -* y,, +1. This results in a total number of c rows of shifted coefficients under one complete shifting-multiplication cycle of the PIAT Algorithm, i.e. so that PPA = c.
On the final row P4 c, the highest-order coefficient acx0" lies in column YPA = c a total number of c rows below the lowest-order coefficient a0 in the zeroth rowpi,4 = 0.
The lowest-order coefficient aoxoC on the final row p4 = c lies in column = 2c, and has no coefficients above it in any of the preceding rows p4 = 0,1,... , c -1.
At this stage the full set of shifted coefficients span a total of pi,4 = crows and i,4 = 2c +1 columns under the PIAT Algorithm.
After the total number of c steps of the PIAT Algorithm have been effected and the shifting-multiplication cycle is complete, all of the values in the zeroth column = 0 from the zeroth rowpi,4 Oto the cth rowp4 = care added together to give the highest-order coefficientb2in the second set of coefficients{b2,...b0}.
This is repeated for the first column r4 = iso that all of the coefficients in the first column = I from the zeroth row p4 = 0 to the cth row pi,4 = care added together to give the second highest-order coefficient b2_1 in the second set of coefficients {b2,. ..b0}.
-46 -The lowest-order coefficient in the second set of coefficients {b2,. . denoted b0, is found by adding all of the coefficients above it in the 2cth column YPA = 2c from the zeroth row PPA = 0 to the cth row p, = c.
It will be seen that the total number of coefficients in the second set {b2,.. b0} is 2c +1. Of these coefficients, the first c +1 coefficients {b2, b2_1,. , b, b} lie under the initial coefficients {a,.. . , a0} in columns rPA =0,...,cand the furtherccoefficients{b_1,b_2,...,b1,b0}lie to the right of the firstc+1coefficients{b2,b2_1,...,b+1,b}in columnsyPA = c+1,...,2c.
Mathematically, the firstc+lcoefficients {b2,b2_1,...,b+1,b}of the second set can be expressed in terms of the first set of coefficients {a,...,a0}as follows: b2 -+ b2 = a b21 -+ b2_1 = ax0 + b2_2 -b_2 a;2 + a_1x0 + a2 b+2 -b2 = ax02 + alxoc 3 +. + a3x0 + a2 -÷ b1 = acx0' + a 1x02 + . + a2x0 + a1 -* b = aexOc + + ÷ a1x0 + a0 = P(x0) Thus, in general: b *x01, whenjE{c,c+1,...,2c1,2c} The further c coefficients {b_, b_2,. . , b1, 1i} of the second set can be expressed in terms of the first set of coefficients {a,...,a0}as follows: -47 -c c-I 2 b, -+ = a_1; + a2x0 + + ax0 + a0x0 c c-I 3 2 b_2 -* b_2 a2x0 + a3x0 +... + ax0 + a0; c c-I 4 3 b3 -a3x0 + ax0 +... + ax0 + a0x0 b2 -÷ a2x0C + a1x01 + a0x02 -* = a1x0' + a0x0 b0 -+ b0 = Thus, in general: bj=Eaji.xo,whenjE{O,1,...,c-2,c-1} The increased set of coefficients {b2,...b0} can be used to construct the first Associated PIAT Polynomial P(X)1 = b2X2c + b21X2 + + b1X + b0 of degree 2c.
The process of shifting and multiplying byx0 can be repeated with the second set of coefficients {b2,...b0} corresponding to the first Associated PIAT polynornialP(X)1to generate a further set of4c+lcoefficients{c4c,...co} which can be used to construct the second Associated PIAT Polynomial (x)2. It will be clear that, in theory, an infinite number of Associated PIAT Polynomials (x),. can be constructed using the PIAT Algorithm, although the computational power required to do so becomes significantly more demanding for larger values of r FIG. 13 shows a numerica' example of how the PIAT Algorithm can be used to construct an infinite sequence of increasing-degree Associated PIAT -48 -Polynomials {P(x)0,P(x)1,...P(x)r}starting from a Generator PIAT Polynomial P(X)0.
In this example, the Generator PIAT Polynomial is P(X)0 = 6X4 + + + + In this example, the value of x0 is chosen to be unity, i.e.x0 = 1. The reason for this is so that the process of multiplication byx0 each time the set of coefficients is dropped to the next PIAT Algorithm row PPA -+ us greatly simplified.
It can be seen in FIG. 13 that each coefficient {b8,...,b0}in the first Associated PIAT Polynomial (x), is the sum of all of the coefficients in the column YPA = 0,. * YPA = 8 directLy above it.
As explained above, in order to calculate, for example, the fourth largest-order coefficientb5 in the first Associated PIAT Polynomial P(X), the calculation under the PIAT Algorithm where x0 = I would be: 15 =a4x03 -i-a3;2 +a2x0' +a1=6x13+5x12 +5xV +3=19.
Since 4 = c «= 5 «= 2c =8, this can equivalently be written in terms of the summation expression as: = a1+.x0 j = 5 -* = a15 *x01 x01 = a1.x0° +a11.x01 + a21 +a31 1=0 1=0 i=O 1=1 1=2 i=3 =a1+a2x0 +a3x02 -4-a4x03 =19 -49 -In order to calculate, for example, the third-smallest-order coetficientb2 in the first Associated PIAT Polynomial (x)1, the calculation under the PIAT Algorithm 1 =a2x04 ÷a1x03 +a0x02 =5x14+3x13+1x12 =9.
Since 0 «= 2 «= c =4, this can equivalently be written in terms of the summation expression as: b1 =a1_1 *x0' j=2 -= a21 = a + ax' + =a2x04 +a1x03 +a0x02 =5x14 +3x13 +1x12 =9 It can readily seen from FIG. 13 that the sequence of Associated PIAT Polynomials for the Generator PIAT Polynomial (x)0 is: P(X)0 [jx4 + [Jx3 + Jx2 + [Jx + {Xs+[11}X7+[16}X6+{19]X5+[2O]X4+[14}X3+[9]X2+[4]X1 + P(X)2 [j x'6 +[17}x'5 +[33}x'4 +{52}x'3 +[72]X12 +[86]x" +[95}x'° -1-[99]x9 + [ioo}x8 + [94]x7 + [83]x6 + [67]x5 + [48Jx4 + [28]x3 + [14Jx2 + [5]x' + {i] P(X) ={..jx+...
FIG. 14 shows the Inverse PIAT Algorithm.
-50 -The Inverse PIAT Algorithm is effectively the reverse of the PIAT Algorithm and enables a Generator polynomial P(X)0 to be uniquely constructed from an Associated or Perfect PIAT Polynomial P(x) = b2, X2' + ... + A. Like the PIAT Algorithm, the Inverse PIAT Algorithm is simplified in the case where x0 =1.
The highest-order coefficient in a Generator PIAT Polynomial P(X)0 acXc + . + a0, denoted a, can be found based on the first Associated PIAT Polynomial (x)1 by recalling that, according to the PIAT Algorithm, b2 = a.
The second-highest-order coefficient in the Generator PIAT Polynomial P(x)0, denoted a1, is found by recalling that, under the PIAT Algorithm: b21 = a_1 + ax0.
Thus,b2_1 =a1+ax0 a_1 =b21-ax0. =b2,
Continuing in this manner enables lowest-order coefficient in the Generator PIAT Polynomial P(X)0, denoted a0, to be found according to: b =a0 +a1x0 +...+ax0' =bc_aixo_..._acxoc.
Alternatively, the Inverse PIAT Algorithm can be effected by starting with the lowest-order coefficientb0 in the first Associated PIAT Polynomial P(X)1 and reversing the PIAT Algorithm by division and subtraction: -51 -b0 a0-b0=a0x0 a0=--xo c-I c c-I b1 -a0; a1 -b1 a1x0 + a0; a1 = xo -b1 aIxoc + a_2x0 +... + a0x0 a_ = -a_2x0 -... -a0x xo a -f b axOc + a1x0' +... + a0 c-I b-a x -...-a
C C xo
Reference is made again to FIG. 13 (in which x0 =1) which shows a Perfect PIAT PolynomialP(X)1 = 6X8÷11X7+16X6+19X5+20X4+14X3+ 2x2+ 4X+ 1.
=1 =b6 =b4 =b2 =l =L Under the Inverse PIAT Algorithm, it is possible to reduce this Perfect PIAT Polynomial to a Generator PIAT Polynomial in the form (x)0 = a4X4 + a3X3 + a2X2 + aIX' + a0 as follows: a4 = b8 =6 a,=b,-x0a4=11-1x6=5 a2 =b6 -x02a4 -x0a, =16-12x6-1x5=5 a1 =1,5 -x03a4-x02a, -x0a2 =19-l'x6-l'x5-1x5=3 a0 =b4 -x04a4 -x03a, -x02a2 -x0a =2O-1 x6-1' x5-12 x5-1x3=I The Inverse PIAT Algorithm givesa4 =6,a3 =5,a2 =5,a =3anda0 =1, which correctly leads to the Generator PIAT Polynomial: P(X)0 = 6X4 + 5X3 + 5X2 + 3X +1.
-52 -Alternatively, the lower-order coefficients can be used as: b 1 a =-=-=l c a4 xo I c-I 3 b1 -a0x0 4-Ixi - a1 = 4 -xo c-I c-2 3 2 b2 -a1x0 -a0x0 -9-3x1 -lxi - a2--14 -xo c-I c-2 c-3 3 2 -b3 -a2x0 -a1x0 -a0x0 14-5x1 -3x1 -lxi - a3--i4 -xo I b4 _a3xoc -a2x02 -a1x03 -a0x04 -20-5x13 -5x 12 3x1' -lxl° -a3-c -14 -6 xO I In summary, the PIAT Algorithm defines the relationship between a Generator PIAT Polynomial (x)0 and an infinite sequence of associated Perfect PIAT Polynomials P(X)r, and the Inverse PIAT Algorithm defines the reverse relationship.
The Schema de P/AT (SdP) Like the PIAT Algorithm, the Schema de PIAT (PIAT Method) is a process under the PIAT Protocol for constructing an infinite sequence of Associated PIAT Polynomials, starting from a Generator PIAT Polynomial: acXc + a1X + ... + a1X + a0.
However, the PIAT Method is for the construction of an infinite sequence of Associated PIAT PoIynomiaIs{P(X)0,...,P(X)}of the same degreecas the Generator PIAT PolynomialP(X)0such that: -53 -P(X)0 = aXc + ac1X + ... + a1X + a0 P(x)1 =bXc +b1X +...+b1X+b0 = KcXC + KciX'' + ... + KX + K0 P(X)r = Ac + +... + + where(a,,b1,...,%1)ENand a. «=b «=K1 «=2,,Vie[O,c]. AswiIl be shown below, the coefficients (a,,b1,..., A1) are a function of x0.
In fact, the PIAT Method gives exactly the same results as the PIAT Algorithm when only the firstc coefficients of each of the Associated PIAT Polynomials {p(x)0,...,p(x) }are taken into account. The means by which these coefficients are obtained, however, is somewhat different to that under the PIAT Algorithm. Indeed, the PIAT Method can be thought of as an extension of Homer's Scheme.
FIG. 15 shows the PIAT Method. It can be seen that zeroth step of the PIAT Method is the same as that in the PIAT Algorithm and Homer's Scheme. Indeed, the first step under the PIAT Method, for finding the coefficients {b,...b0}of the first Associated PIAT Polynomial (x)1 is identical to the first stage of Homer's Scheme.
However, under Homer's Scheme the number of coefficients calculated at each stage decreases by one until only one coefficient is calculated at the final stage. The reason for this under Homer's Scheme is quite clear if it is recalled that the later stages of Homer's Scheme correspond to lower-degree polynomials. For example, factors or divisors g(x) = x -x0 reduce the order of polynomials associated with the later stages of Homer's Scheme. In addition, the Homer coefficients in the later stages of Homer's Scheme relate to higher order Talyor Coefficients. Since those Taylor Coefficients themselves relate to higher-order polynomial derivatives, the polynomials they relate to are also lower-order. In effect, there is no need to calculate any other coefficients under Homer's Scheme.
Since the PIAT Method continues to calculateccoefficients at each level, it can be thought of as a vertical extension to Homer's Scheme.
Under the PIAT Method, in order to calculate a particular coefficient 2 in the r Associated PIAT Polynomial, P(x), the following formula is used: * 2, =(x0.2,1)+K,, when 0«=i<cand * 21=Kwheni=c.
In other words, to calculate a particular coefficient, one multiplies the value of the coefficient immediately to the left of it by x0 and adds this to the value of the coefficient immediately above it. However, when calculating the leftmost coefficient, since there is no coefficient immediately to the left of it, the value of that would-be coefficient is set as zero.
Thus, in order to calculate b, the coefficient of x in (x)1, since i = c, b = a.
However, to calculate b1, the coefficient of x' in (x)1, assuming 0 «= 1 <c, thenb1 =(x0.b11)+a1 =x0b2+a1.
-55 -By way of a numerical example, a set of Associated PIAT Polynomials in x0 = I can be constructed under the PIAT Method starting from the following Generator PIAT Polynomial P(x)0 of degree four (i.e. c = 4): P(X)0 -_X4 +5X3+5X2+3X+1.
Here, a4 = 6; a3 = 5; a2 = 5; a1 = 3; a0 I. For P(X)1: 0 x0 + a = a4 6 b3-b4*x0+a3=b4*1+a3--6-i-5--1I b1 =b3. +a2 =b3 1-i-a2 =11+5=16 ForP(X)2: 0. x0 + b = = 6 c3-c4*x0+b3--c4.l-+-b3=6-i-1l_-17 c2 =c3 +b2 -_c3 1-i-b2 =17+16=33 Following this iterative method, the sequence of Associated PIAT Polynomials can be constructed as follows: -56 -P(X)0 = [6]X --[]x + [5}x2 + [3]x + [i] P(X)1 =[6]X4+[11]X3+[16]X2+[19]X+[20] P(X)2 = [6]X + [i 7]X3 + [33]x2 + [521x + [72] P(X)3 =[6]X +[23Jx3 +[56}X2 +[1o8}x+[18o] = [6]x + [29]x3 + [85Jx2 + [i 93]X + [373] P(X)5 =[6]x +[35]X3 +[12o]x2 +[313]x+[686] P(X) =[6]x4+[...]x3+[...]x2+[...]X÷[...] As explained above, Homer's Scheme only returns a subset of these coefficients and does not calculate the coefficients needed to construct the higher Associated PIAT Polynomials. Indeed, in effect, the degree of the polynomial represented at each stage of Homer's Scheme actually decreases...
With reference again to FIG. 13, it can be seen that the first two Perfect PIAT Polynomials above, P(X)1 = [6]x + [i i]X3 + [16]X2 + [19JX + [20] and P(X)2 [6]x + [i 7]X + [33}x2 + [52]x [72], can be constructed from the five highest-order coefficients at each stage of the PIAT Algorithm. The PIAT Algorithm can be continued to give the same coefficients as the higher Perfect PIAT Polynomials obtained by the PIAT Method. The PIAT Method is fully consistent with the PIAT Algorithm.
Like the PIAT Algorithm, the PIAT Method also has an inverse. In other words, it is possible to determine uniquely the value of the coefficients {a0,. . . a}of a Generator PIAT Polynomial (x)0 using the coefficients {20,...,,a}of any Associated PIAT Polynomial P(X): -57 -P(X)r = 2XC + + ... + A1X + = + [(A3_(A)}x + ... + [(21)-(A..2)Jx + [(A(A,)] P(X)0 jXC+[(bi):(b)}X +...+[(b3-(b2)]X+[(b0)-(b1)] where x0 = 1 and {ic.. K} are the coefficients of the (r-1)th PIAT polynomial.
FIG. 16 illustrates the Inverse PIAT Method. It will be recalled that P(x0)= b0:= b1x0 + a0. This is shown with partly faded lines on the left side of FIG. 16. By manipulating the above equation, it will be seen thatb0 -b,x0 = a0. Thus, by knowing both coefficientsb0andb1 and the value of x0, the value of a0, the constant in the initial polynomial P(x)0, can be found.
The Inverse FIAT Method can easily be verified using the below space of Associated FIAT Polynomials: P(X)0 = [6Jx + [5]x + [5]X2 + [3]x + [i] = [6}x +[i iJx + [16}x2 + [19]x+[2o] P(X)2 =[6]X -i-[17]X +[33]X2 -i-[52]x+[72] = [6}x4 + {23]X + {56]x2 + [1o8]x + [i 80] P(X) = [6}x + [...Jx + [...]X2 + [...]x + [...J For example, when x0 1, given P(X)2 = [6]x + {i 7]X + [33]x2 + [52]x + [72], = = [Jx4 + + [ijx2 + [)-(33)x + b4 6X4 +11X3 +16X2 +19X+20 A, A, A, A, -58 -As explained above, the PIAT Method can be seen to be an extension of Homer's Scheme and both are consistent with the PIAT Algorithm. The PIAT Method can, however, be extended itself as will now be described.
The Schéma-étendu de P/AT (SedP) The Schéma-étendu de PIAT (Extended PIAT Method) is an extension of the PIAT Method that gives the same full set of results as the PIAT Algorithm, but generates them in a somewhat different manner.
FIG. 17 shows how the PIAT Method can be extended into the Extended PIAT Method to give exactly the same results as the PIAT Algorithm. Whereas the PIAT Method is limited to generating Associated PIAT Polynomials P(X)r of the same degree c as the Generator PIAT Polynomial p(x)0, the Extended PIAT Method can be used to generate increasing-degree Associated PIAT Polynomials P(X)r to give the same results as the PIAT Algorithm.
Under the PIAT Algorithm (see FIG. 12), the coefficient b in the column = c +1 of the PIAT Algorithm is found by: = a1 =a1*x0 axc0+ax++c2)+ 1=1 i=c-2 i=c-1 = = aixoc + a2x0 + . .. + a1x02 + a0;1 The final coefficientb = P(x0)under the PIAT Method is found by: = + a_1x0 + ... + a1x0 + a0 -59 -Multiplying b = P(x0) by x0 and subtracting ax0 C+I gives: x0 P(x0)0 -acxoc+t xo(acxoc + a1x0 + ... + a1; + a0)-acxoc+I = acxoc+I + aixoc + ... + + a0x0' -acxoc*l = ac_Ixoc + ... + + a0x0' = Multiplying b_1 by x0 and subtracting a_1x01 gives: x0b_1 a_1x0 =xo(ac_ixoc +a_2x0' + ... + + a0xo)_ ac_Ixoc =a1x0 +a2x0 +...+a1x0 +a0x0 -a1x0 = a + ... + ax0 + a0x02 = x' = b_2 This can be continued as shown in FIG. 17 to give the same set of coefficients {b_1,...,b0}as those in the PIAT Algorithm.
Like the PIAT Algorithm and PIAT Method, the Extended PIAT Method also has an inverse.
FIG. 18 shows the Inverse Extended PIAT Method.
To find a, we have that: bx0 -ax0 c+I P(x0)0 -ax0 c+i c+I =4'ax0 =bx0-b1 b x0 -= c+I xo -60 -To find a_1, we have that: b_1x0 -a_1x0 c+I _ b_2 = a_x0 = b_1x0 -b_2 b1x0 -b_2 = c+I xo To find a1, we have that: b1x0 -a1x0 c+I b0 c+1 a1x0 =b1x0-b0 b1x0 -b0 c+I xO To find a0, we have that: cl-I a0x0 =b0 b0 = a0 = --x0 FIG. 19 shows multiple rows of the Extended PIAT Method which can be used to find the necessary coefficients to construct the higher Associated PIAT Polynomials.
FIGs. 20A, 20B and 20C show numerical examples of how the PIAT Algorithm and Inverse PIAT Algorithm, the (Extended) PIAT Method and the Inverse (Extended) PIAT Method can be used to process an exemplary Generator PIAT Polynomial (x)0 = 6X4 + 5X3 + 5X2 + 3X + 1 using x0 = 1.
-61 -FIGs. 21A, 21B and 21C show numerical examples of how the PIAT Algorithm and Inverse PIAT Algorithm, the (Extended) PIAT Method and the Inverse (Extended) PIAT Method can be used to process an exemplary Generator PIAT Polynomial (x)0 = 6X4 + 5X3 + 5X2 + 3X +1 using x0 = 2.
In summary, the PIAT Algorithm and the (Extended) PIAT Method are both forms of algorithms. Like Homer's Scheme, the PIAT Method involves addition and only c multiplications.
The PIAT Algorithm in turn involves onlycadditions of coefficients shifted byc columns. In fact, the shifting of coefficients in the PIAT Algorithm altogether replaces multiplication.
An advantage of the PIAT Algorithm over the PIAT Method is that calculations are simplified and performance can thereby be improved.
Mathematically speaking, both the PIAT Algorithm and the PIAT Method can be used to construct an infinite sequence of Associated PIAT polynomials. Moreover, these algorithms can be used to evaluate numerically the expressions P(x0)or P'(x0)or even to factorise any given polynomial as (see below): P(X)=acXc +a1X' +...+a1X+a0 =((...(R+1x+R)x+...R3)x+R2)x+R1 Continuation of the PIAT Algorithm or the (Extended) PIAT Method more generally allows the Taylor coefficients!P('°(x0) of a function P(x)about a pointx0to be calculated.
-62 -Thus, under the PIAT Protocol, the PIAT Algorithm, the PIAT Method and the Extended PIAT Method all enable an infinite series of Associated PIAT Polynomials P(X)rtO be constructed in a predetermined and structured manner from a Generator PIAT Polynomial (x)0. The Inverse PIAT Algorithm, the Inverse PIAT Method and the Inverse Extended PIAT Method allow any Generator PIAT Polynomial P(X)0to be recovered from a Perfect PIAT Polynomial P(x)r.
The PIAT Protocol is particularly suited to data processing, especially data compression and decompression and encryption and decryption, as will now be explained.
P/AT Protocol in Data Processing FIG. 22 shows a binary-decimal representation of data.
Modern computers usually work in base 2, i.e. in binary. Human beings often find it easier to understand numbers in base 10, i.e. in decimal. Accordingly, in the following description (as above), data will generally be represented in decimal form. However, it should be remembered that a number in decimal form can equally be represented in, or converted to, binary form. For example, the number 13 in decimal (often written 13o) is equivalent to 1101 in binary (often written 11012).
By way of an example, we will assume that an initial data sequence received at a data processing apparatus such as a PIAT router, can be written in decimal form as: 61 2000051200016000058000220001 900003400018666976668400001120000120 0003000021333373333900005666700000783346500093600009600021 000034000240 -63 -This data might represent an encrypted password, a text file or some other digital data. This initial data requires 166 decimal symbols to convey all of the information it embodies.
This data can be converted into binary format using Binary-Coded Decimal encoding. A binary digit (called a "bit") is either 0 or 1. Each one-digit decimal number can be represented in binary by a unique sequence of four bits (called a "nibble") as shown below: Decimal Binary 0 0000 1 0001 2 0010 3 0011 4 0100 0101 6 0110 7 0111 8 1000 9 1001 Since computers usually store data in groups of eight bits (called a "byte"), uncompressed BCD encoding stores each decimal digit as the corresponding binary four-bit nibble equivalent, prefixed by another predetermined nibble, such as 0000, 1111, 011011. Thus, the initial decimal data sequence could be stored as: 00000110 0000 0001 0000 0010 0000 0000 =010 -64 -This would requirel66x8 =1328 bits to store the initial data sequence.
It is, instead, possible to use compressed BCD encoding to store two decimal digits in each byte by not including the prefixed nibble. Accordingly, the initial decimal data sequence could be stored as: 0001 0010 0000
-------
6io 10 -10 10 This would only requirel66x4 664 bits to store the initial data sequence.
Another possibility is to convert the full 166-digit decimal number directly from base to base 2 by changing the base, which would yield a binary number that can be stored in 552 bits.
Remarkably, under the PIAT Protocol, it is possible to express this 166-digit initial decimal data sequence as a 15-digit decimal sequence with a six-digit index or, equivalently, as a 48-bit decimal sequence. The PIAT-compressed sequence would be 6553lll25939352 (a total of 15 decimal symbols) or 1111111111111011001010111111101110011001101110002 (a total of48 bits)in binary.
( ( final number of bits i In terms of compression rates (found by Il-I I Ix 100), the znitial number of bits)) PIAT-Compressed data exhibits a 96.3% reduction in size (11-I 48)L< 100) L 1320)) compared to the uncompressed BCD-encoding, a 92.7% reduction in size -65 - (1-(_!_)Jx1O0) compared to the compressed BCD-encoding and a reduction of 91.3% in size (1-(_!_JJx 100) compared to directly changing base. Thus, PIAT Compression provides a highly effective method of compressing data.
FIG. 23 shows an initial data sequence P(X),. subjected to an optimisation heuristic which will be described in more detail below. After optimisation, the initial data sequence is converted to a series of Perfect PIAT Polynomials {F(X)r,...,I(X)r}. In this example, only five Perfect PIAT Polynomials are shown, but it will be understood that a different number of polynomials may be appropriate depending, for example, upon the size of the initial data sequence These Perfect PIAT Polynomials are each subject to PIAT compression under PIAT Protocol until a corresponding series of five respective reduced Associated PIAT Polynomials {I(X)0,...,F(X)0} are constructed. These reduced polynomials {i(X)0,...,p(X)0} would ideally be Generator PIAT Polynomials.
These reduced polynomials {i (X)0,. .. , P (X)0} are then collectively subject to optimisation and further PIAT Compression, until another level of reduced Associated PIAT Polynomials {Q1(x)0,...,Q2(x)0} is obtained. This set of reduced polynomials {Q,(x)0,...,Q2(x)0}is again optimised and subject to further PIAT Compression and the cycle continues until a final reduced or Generator PIAT Polynomial Z(X)0 is obtained.
-66 -It will be understood that PIAT Compression under the PIAT Protocol may be according to the Inverse PIAT Algorithm, the Inverse PIAT Method and/or the Inverse Extended PIAT Method. All of these inverse PIAT-processing techniques reduce the size of the coefficients of the polynomials representing an initial data sequence.
FIG. 24 shows with a numerical example an overview of PIAT Corn presion under the PIAT Protocol. This is achieved by reducing the size of the coefficients of the Perfect PIAT Polynomials associated with the full input sequence of 166 decimal symbols under the PIAT Protocol. The optirnisation heuristic receives the 166-decimal digit initial data sequence and generates three optimised Perfect FIAT Polynomials: I(X) = 6X4 + 1200005X3 + 120001600005X2 + 8000220001900003X + 400018666976668400001 P2(X) = 1X4 + 20000 1X3 + 20000300002X2 + 1333373333900005X + 66670000078334650009 F(X) = 3X4 + 600009X3 + 60002100003X2 + 4000240001700005X + 200018000295002050002 These polynomials each undergo PIAT Compression to generate three corresponding reduced Generator PIAT Polynomials in various ways which will be described below: F(X)0 =6X4 +5X3 +5X2+3X÷1 P(X)0 =1X4+1X3÷2X2+5X-i-9 F(X)0 =3X4 +9X3 +3X2 +5X+2 The coefficients of these reduced polynomials can be represented by a total of only 15 decimal symbols as: {65531}, {11259} and {39352}.
-67 -FIG. 25 shows an overview of PIAT Decompression under the PIAT Protocol, using the same numerical example starting from the compressed sequence of 15 decimal symbols: 655311125939352. After processing by the optimisation heuristic, the sequence is expressed as three Generator PIAT Polynomials, P{123}(X)0, each of degreec 4 as follows: I(X)0 -6X4 ÷5X3 -i-5X2 +3X+1 P2(X)0 =1X4 +1X3 +2X2 +5X+9 P3(X)0 =3X4+9X3+3X2÷5X+2 These three initial polynomials, I123}(X)0, are then subject to expansion or PIAT Decompression under the PIAT Protocol as will be explained below until the following Perfect PIAT Polynomials representing the initial pre-PIAT Compression data sequence are obtained: P1(X) 6X4 + 1200005X3 + 120001600005X2 +8000220001900003X + 400018666976668400001 J(X) = 1X4 + 200001X3 + 20000300002X2 + 1333373333900005X + 66670000078334650009 P3(X) = 3X4 + 600009X3 + 60002 100003X2 + 4000240001700005X + 200018000295002050002 FIG. 26 shows a numerical example of how the Perfect PIAT Polynomial I(X)r can be reduced to a Generator PIAT polynomial i(x)0 of the same degree,c = 4, under the PIAT Protocol using the Inverse PIAT Method when x0 = 1. It will be recalled that the Inverse PIAT Method specifies how the Perfect PIAT Polynomial I(X)r is reduced to the Generator PIAT Polynomial F (x)0: -68 -F(X),. = + + ... + 21X + P(X)rj = [icIXC + [(,%3-(2)]X + ... + [(21)-(A2)}x + [(A3(A3)1 P(X)0 = + {(b,)-(b)Jx + ... + [(b)_(b2)]x + [(b0)-(b1)J Using this numerical example: P1(X) = 6X4 + 1200005X3 + 120001600005X2 +8000220001900003X ÷400018666976668400001.
Thus, 24 = 6, A3 = 1200005,22 = 120001600005, 2 = 8000220001900003 and 2 =4000186669 7666840000 1.
The coefficients r1 of the preceding polynomial P(X)r_i can be determined according to the Inverse PIAT Method as: K0 = A -= 400018666976668400001-8000220001900003 = 400010666756666499998 K2 = A2 -23 = 120001600005-1200005 = 120000400000 K3 =23-24=1200005-6=1199999 K424=6 Processing is continued under the Inverse PIAT Method until no further reduction in size of the coefficients is possible. This is typically the stage before any of the coefficients becoming negative, but other termination conditions could be imposed.
After some 200,000 reduction steps, it can be determined that; =6,a3 =5,a2 =5,a1 =3anda0 =1.
-69 -Thus, according to the Inverse PIAT Method, P1(X) = 6X4 + 1200005X3 + 120001600005X2 +8000220001900003X+400018666976668400001 can be reduced to a Generator PIAT Polynomial F(X)0 = + 5X3 + 5X2 + 3X + of the same degree c = 4 asF(X), by performing 200,000 stages of the Inverse PIAT Method.
In turn, the Generator PIAT Polynomial F (X)0 = + 5X3 + 5X2 + 3X + can be expanded or PIAT Decompressed under the PIAT Method as described in detail above to generate Associated PIAT Polynomials until the desired Perfect PIAT Polynomial 1(X) = 6X4 + 1200005X3 + 120001600005X2 + 8000220001900003X + 400018666976668400001 is obtained after 200,000 stages of the FIAT Method.
The valuer 200,000 is referred to herein the as "index". The index indicates the level of reduction of F(X)0 relative to the larger polynomial i(x)200000. It indicates the number of steps under the PIAT Method or Inverse PIAT Method required to convert the Perfect PIAT Polynomial F(X)into the Generator PIAT Polynomial /(X)or vice versa.
The indexris separable from the Generator FIAT Polynomial i(x).
In summary, given a Generator PIAT Polynomial F(X)representing PIAT-Compressed data and a separable index r indicating the number of steps under the PIAT Method required to obtain an associated Perfect PIAT PolynomialF(X), that associated -70 -Perfect PIAT PolynomiaIJ(X)can be uniquely reconstructed and represents an initial uncompressed data sequence.
Similarly, given a Perfect PIAT PolynomialJ(X)representing an initial, uncompressed data sequence, the Perfect PIAT PoIynomialI(X)can be PIAT Compressed under the Inverse PIAT Method to generate an associated Generator PIAT Polynomial P (x) and a separable index r indicating the number of steps under the Inverse PIAT Method that were required to obtain the Generator PIAT Polynomial i,(x), so that the initial, uncompressed data sequence can be uniquely reconstructed.
It will be appreciated that the initial data sequence could be PIAT-Compressed under the PIAT Protocol by means of the Inverse PIAT Algorithm or Inverse Extended PIAT Method and could be PIAT-Decompressed by means of the PIAT Algorithm or Extended PIAT Method. It will also be appreciated that PIAT Compression and Decompression is non-entropic. In other words, symbols in the input data sequence are not assigned codewords depending upon the frequency of their occurrence.
Although this cyclic, non-entropic compression is quite remarkable in itself, performing 200,000 stages of processing -PIAT-Compression or PIAT-Decompression -under the PIAT Protocol can be fairly time-consuming and processor-intensive.
The inventors have, in fact, devised a method of jumping directly from a Generator PIAT Polynomial to the Perfect PIAT Polynomial associated with the particular indexr or, inversely, jumping directly from a Perfect PIAT Polynomial to the Generator PIAT Polynomial associated with the particular index r. Neither the coefficients of the -71 -intervening Associated PIAT Polynomials nor any of the intervening PIAT-processing steps need to be calculated or performed.
However, this has only become possible as a result of a significant new mathematical construct, which will now be described before explaining how direct jumping is possible.
The Carré de P/AT (CdP) The Carré de PIAT (PIAT's Square) is a new mathematical construct which takes the form of a matrix of special numbers.
As will become clear later, the first column of the CdP is assigned the column numberc 0. The first row of the CdP is assigned the row numberr = 1. Hereinafter, will be used to denote the value of the cell of the CdP at(r,c)(rowr, column c). For example, r1° is the origin cell in the first row (r = 1) and first column (c = 0).
The CdP can be constructed in various forms, referred to herein as "dimensionsn", as a function of x0. The one-dimensional CdP, denoted CdP,, is the CdP associated with x0 = 1. The n-dimensionaI CdP, denoted CdP, is the CdP associated with x0 n.
FIG. 27 shows how the PIAT Algorithm can be used to construct the first two rows (r 1,2) and first four columns (c 0,1,2,3) of the one-dimensional CdP; CdP1.
-72 -To construct the CdP1, the PIAT Algorithm starts on the zeroth row p4 = 0 with a third-order identity Generator FIAT Polynomial P, (x)0 = + + + These coefficients form the first rowr = 1 of the CdP1 as follows: a3 = (first row (r = 1), first column (c 0)) a2 = (first row (r = 1), second column (c = 1)) a1 =r (first row (r=1), third column (c= 2)) a0 = (first row (r = 1), fourth column (c 3)) In other words, the value in the first row r = 1 and first column c 0 of the CdP1 isa3 1. The value in the first row r land second column c = 1 of the CdP1 isa2 = 1.
The value in the first row r =1 and third column c = 2 of the CdP1 isa1 = 1. The value in the first row r = 1 and fourth column c = 3 of the CdP, isa0 1.
The first four values of the second rowr = 2 of the CdP1 are the coefficients of the first Perfect PIAT Polynomial p(x)1 associated with (x)0. Under the FIAT Algorithm, this is calculated as: a3 =1 ir =a3x0' +a2 =lxl' +1=2 r =a3x02 +a2x0' +a1 =1x12+lxl' +1=3 r =a3x03 +a2x02 +a1x0' +a0 =1x13+1x12+lxV +1=4 -73 -In other words, the value in the second row r = 2 and first column c = 0 of the CdP1 is 1. The value in the second row r =2 and second column c = I of the CdP1 is 2. The value in the second row r = 2 and third column c = 2 of the CdP1 is 3. The value in the second row r = 2 and fourth column c =3 of the CdP1 is 4.
After a further cycle of the PIAT Algorithm, it can be found that the values of the CdP1 in the first four columns (c = 0,1,2,3) on the third row (r = 3) of the CdP1 are: =1 =3 r =10 By using a higher-degree identity Generator PIAT Polynomial P, (x)0 = ... + + + ... + + , more columns c of the CdP1 can be populated. By performing a larger number of steps of the PIAT Algorithm, more rowsrof the CdP1 can be populated. In this manner, the full CdP1 can be constructed.
FIG. 28 shows how the CdP1 can alternatively be derived using an identity Generator PIAT PolynomialP1(X)0 =X ÷X2 +1X+1 underthe PIAT Method.
As with the PIAT Algorithm, these coefficients form the first rowr = 1 of the CdP1 as follows: a3 = a2 = a1 = a0 = -74 -Again, as with the PIAT Algorithm, the first four values of the second row r = 2 of the CdP1 are the coefficients of the first Perfect PIAT Polynomial (x)1 associated with (x)0. Under the PIAT Method, this is calculated as: r=a3=1 r =rx0+a2 =lxl+1=2 r =rx0+a1 =2x1+1=3 r =irx0+a0:=3x1+1=4 This calculation under the PIAT Method gives exactly the same numerical values as those obtained under the FIAT Algorithm, but the mathematical calculation is slightly different.
As shown in FIG. 28, and as explained above in relation to the PIAT Algorithm, processing via further stages of the PIAT Method can be continued to populate the first four columns of all higher rows rof the CdP1. The degree of the identity Generator PIAT Polynomial can likewise be increased to populate the higher columnscof the CdP1.
As can be seen from FIG. 28, the CdP1 includes the Taylor and Homer coefficients as indicated by diagonal dotted lines. It also includes the numbers found in Pascal's Triangle as indicated by broken diagonal lines. The CdP1 contains these important values but has many more remarkable mathematical properties.
One of the remarkable mathematical properties of the CdP1 can be seen by an alternative derivation of the CdP1 which uses neither the PIAT Algorithm nor the PIAT Method. This alternative derivation uses combinatorics. It is emphasised, however, that -75 -this alternative derivation is completely consistent with both of these methods under the PIAT Protocol.
FIG. 29 shows the relationship between the binomial coefficients of Pascal's Triangle and the values n the CdP.
It will be recalled that the number of combinations of i elements from a set of n elements without repetition can be found from the following factorial formula, whose values can also be found from Pascal's Triangle: C(n,i)= To determine the number combinations of i elements from a set of n elements with repetition, we can imagine the set of n elements with each element spaced from the adjacent element with a vertical bar, there being a total of n -1 bars: {n1In2I...In} We can indicate the frequency of any element in a selection of elements from the set by a star underneath the corresponding element in the barred set. Thus, for example if i = 3 elements were selected from a set of n 6 elements and, of those, n2was selected twice and n4 once, the indication would be: {nhn21n3n4n51n6}.
This can, in turn, be written as follows simply by omitting the element labels n,: l**Il *111 -76 -In a bijective manner, the following indication would imply that n, was selected once, n2 was not selected, n3 was selected once, n4 was not selected, n5 was selected once and n6was not selected: *11*11*11 It will be seen that there are n -1 vertical bars and i stars, which makes a total of(n-1)+isymbols, the positions of which can be varied.
Thus, in general the question becomes determining the number of ways in which one can arrange the istars in the(n-1)+ipositions (without repetition since there is only space for one symbol per position). Using the earlier factorial formula for such combinations: i. (n-H-i)! (n-1+i)! Cn-I+i,i)_ -i!((n-1+i)-i)! i!(n-1)! Equivalently, the question could be formulated as determining the number of ways in which one can arrange the(n-1)vertical bars in the(n-1)+i positions (without repetition). Using the same earlier formula for such combinations: (n-l+i)! (n-1+i)! (n-1+i)! C'n-H-z n-1'= -______ = -C n-i-i-i i / -1)!((n -1 + )-(n-i))! (n -1)!(i)! -i!(n -1)! Thus, in summary, the number of ways of choosing i elements from a set of n elements, where the order of thei selected elements is not important and where repetition of any of those elements is possible is: -77 -(n -1+ i)! i!(n-1)! This consideration of combinatorics leads to an alternative derivation of the CdP1.
FIG. 30 shows an extract of the first ten rows (r = 1,... JO) and ten columns (c O,...,9) of the one-dimensional form (i.e. wherex0 = 1) of the CdP, denoted CdP1.
rc, the value of a given cell at location (r,c)of the one-dimensional CdP1 can be found using the following formula, which gives the number of combinations with repetition: -(r+c-1)! r -This method of finding the value of any cell,r of the CdP is referred to herein as the "factorial method". Remarkably, this is entirely consistent with the values r obtained by the PIAT Algorithm or (Extended) PIAT Method from an identity Generator PIAT Polynomial.
In order to populate the CdP1 using the factorial method, one starts with the origin location(r,c)=(1,0). Using the factorial method, the value at this location, r10, is: o(I+0I)!0 0!(1-1)! O!O! 1.1 Thus,,r =1.
-78 -Indeed, the value of any coefficient in the first column (c = 0) of the CdP1 is unity.
This is because: o(r+O-1) (r-1)! (r-1)!1 O!(1)! 1!(r-1)(r-1)! It can also be seen that the value of any coefficient in the first row (r 1) of the CdP1 is unity. This is because: (1+c-.1)! c! c! = c!(1-1)! c!0! c!
In summary, �^ç° = 1.
There are various other ways in which the coefficients r in the later rows rand columns c of the CdP can be obtained or calculated: Triangular Method The first of these is the "triangular method", where,r = + ,z1. This involves the summation of: * the value of the coefficient in the adjacent cell in the immediately preceding column (c -i) (i.e. the cell immediately to the left of the cell in question), and * the value of the coefficient in the adjacent cell in the immediately preceding row(r-1) (i.e. the cell immediately above the cell in question).
Vertical Hockey Stick Method -79 -The second method is referred to as the vertical hockey stick" method, where,r, = = + + ... + + ,r. This involves the summation of the value of all of the coefficients in the preceding column (c -i) (i.e. the column immediately to the left of the column in question) from the first row, r = 1, up to the row under consideration, r.
Horizontal Hockey Stick Method The third method is referred to as the "horizontal hockey stick" method, where,r = = + + ... + + This involves the summation of the value of all of the coefficients in the preceding row(r-1) (i.e. the row immediately above the row in question) from the first column, c = 0, up to the column under consideration, c.
All of these three methods of calculating the value of 7r give the same value as each other, the factorial method and the values obtained via the PIAT Algorithm and the PIAT Method.
FIG. 31 shows an example of how to use the triangular, vertical hockey stick and horizontal hockey stick methods to calculate the value of,r,c. In this example, the dimension of the CdP is one, i.e. x0 = 1.
The value of r (the coefficient in the third row and second column of CdP1) can be calculated using the triangular method as the summation of the value of the coefficient in the cell in the immediately preceding column (c -1 = o) and the value of the coefficient in the cell in the immediately preceding row(r-1 = 2): -80 - = + ,r =1+2=3.
This value is also found by using the factorial method as follows: (3+1-1)! 3! 3.2! 1! (3-1)! 1!2! = 2! The value of,r (the coefficient in the fourth row and fourth column of CdP1) can be calculated using the vertical hockey stick method as the summation of the value of all of the coefficients in the preceding column (c-i 2) from the first row, r = 1, up to the row under consideration, r = 4: 2r =r =g+7r +,r+,r =1+3+6+10=20.
This value is also found by using the factorial method as follows: 3 (4+3-1)! 6! 65*4*3! 6*542O 3!(4-1)! 3!3! 3!3! = 3*21 The value of (the coefficient in the second row and fourth column of CdP1) can be calculated using the horizontal hockey stick method as the summation of the value of all of the coefficients in the preceding row(r -1 = i) from the first column, c 0, up to the column under consideration, c 3: This value is also found by using the factorial method as follows: (2+3-1)! 4! 4*3! 2 = 3!(2-1)! 3!1! 3! = -81 -For higher values ofr and c, the factorial method provides an efficient way of calculating the corresponding value of the coefficient 2rin the CdP1. For example, the value of the coefficient in the eighth row(r 8)and the seventh column (c = 6) can be calculated by using factorials as: (8+6-1)! 13! =-=22x3x11x13=1716.
8 6!7! 6!7! This value can be verified using any of the above summation methods or by reference to the cell (8,6) in the extract of the CdP1 shown in FIG. 30, if desired.
Constructing the CdP FIG. 32 shows one method of constructing the nthdimensionaI form of the CdP, CdP starting from the one-dimensional form CdP1.
The coefficient,r in a particular cell (r, c)of the nthdimensional form of the xo =n CdP, denoted CdP, is calculated by the product of: * the value of the coefficient in the corresponding cell(r,c) in CdP1 (ue.
the one-dimensional CdP), and * x0 to the cth power.
This can be expressed more concisely in mathematical terms as: xo x -82 -In terms of the factorial method, the value of a particular cell in the CdP of dimension n = x0 can be found by: = (r+c-I)! It may be recalled from above and from FIG. 29 that the number of permutations of i elements from an n -element set where repetition is allowed is: n'. It will be seen from the previous equation that an equivalent term x0C defines the mapping of values,r from the CdP1 to those in the CdP.
x0=1 Xofl FIG. 32 also shows how the values in the first two rows and four columns of the CdP1 can be used to calculate the corresponding values in the nthdimensional CdP, CdP, using the above equation. The left-hand side of FIG. 32 corresponds to CdP1 and the right-hand side to CdP, where n > 1. These rows and columns show only a small fraction of the full CdP1, which is mathematically unlimited in terms of the number of columns and rows it can contain. The only limitation in terms of the size of the CdP lies in the computational requirements for computing the values in the higher cells.
By way of a numerical example (indicated with shading), to calculate the value of the coefficient in the first row (r = 1) and fourth column (c = 3) of the 2'-x0 =2 dimensional CdP, CdP2, the following equation is used: tii =2x,r x0=I However, sincer =1 in the CdP1 for all values of c, whenc = 3, ,r =1.
-83 -Thus: L=2 = 2 x = 2 xl = 8 xl = 8.
It will also be recalled that the value of,r can be calculated by means of the x0 =2 general factorial formula: (r+c-1)! 7r = X0.
X c!(r-l)! This gives that: (1+3i)! 2 =2-x8=8.
x=2 3!(1 -1)! 3!1! FIG. 33 shows how the PIAT Algorithm can also be used to construct the flth dimensional CdP. The only difference between the PIAT Algorithm for constructing the nth.dimensional CdP and for constructing the CdP1 is that the initial coefficients{a3,a2,a1,a0} are multiplied byx07 whereyPA is the column of the PIAT Algorithm in which the particular initial coefficient is located, which can be best seen in FIG. 33 itself.
The general method under the PIAT Algorithm of multiplying all of the coefficients on one row PPA byx0, dropping those coefficients to the following row -p PPA + I and shifting them one column to the right YPA + 1 remains the same. Thus, for example, for the cell r: -84 - 2 0 2 I 1 2 a3 x X0 X0 + a2 x X0 X0 + a1 x -n=xo =xo',A [ xx02J+[i xx02)+[1 xxo2J= This can be confirmed by recalling that rJ = x because, by inspection of the CdP1 in FIG. 30 or otherwise, rJ = FIGs. 34 and 35 show, respectively, extracts from CdP2 and CdP3. i.e. the 21 and 3rd..dimensional forms of the CdP. The Taylor coefficients and the values found in Pascal's Triangle are not present in the higher order CdPs.
CdP in Data Processing It will be recalled from above that the PIAT Method can be used to calculate a Perfect PIAT Polynomial P(X)r from a Generator PIAT Polynomial (x)0 and a separable indexr which indicates the number of repetitions of the PIAT Method that are required to arrive at that particular Perfect PIAT Polynomial P(X)r. It will also be recalled that this requires that every intervening Associated PIAT Polynomial be computed. This can be time-consuming and processor-intensive for large coefficients and/or large index values r.
The inventors have devised an alternative method of calculating the coefficients {2,. . ., , } of that rth Perfect PIAT polynomial (x),. which requires knowledge of only the coefficients{a0,...,a}of the Generator PIAT PolynomialP(X)0, the particular value of the indexrand certain special values.ir from the CdP. None of -85 -the coefficients, b. , c,, ic of the intervening Associated PIAT Polynomials is required.
This alternative method is, thus, particularly advantageous for large values of r.
In order to calculate the coefficients {20,...,,%}of the rth associated Perfect PIAT Polynomial P(x) starting from an initial polynomial (x)0, where P(X)0 = aX' = acXc + ac_1X + ... + a1X + a0, one can use the following form ula: P(X)r = (a x + (a x + a_1 x + ... + (a x + ... + a0 x k A0 To find the ith coefficient,, of the term X in the rth associated Perfect PIAT Polynomial P(X)r, one calculates: A.
For example:
= a0 x,r,?+ a1x... + ax i=1 =a÷1 xff =a01 x+a11 xff I = C -3 = x = x = a0+ x = a)< Using the numerical example of P(X)0 above: -86 -a4 = 6; a3 = 5; a2 = 5; a1 = 3; a0 1.
In order to construct (x)1, i.e. P(x)r where r = 1, using the above equation: = (a4. + (a4. + a3. ir°)x + (a4. + a3,r + a2 ffo)x2 + (a4. +a3 * +a2 +a1 +(a4 +a3 * +a2 *2 +a1. +a0 =61-X4+(6.1+5.1)X3+...+(6.1+5.1+5.1+3.1+1.1) = [6}x + [i i}x3 + [16]x2 + [19]x + [20] In order to construct (x)4, i.e. P(X)r where r = 4, using the above equation: (x)4 =(a4 +(a4 *r + a3 +(a4 + a3 +a2.,r)X2 + (a4,r + a3 r +a2., + a1) + (a4 jr + a3 ir + a2. + a1. + a0. )x° =6.1.X4+(6.4+5.1)X3+...+(6.35+5.20+5.1O+3.4+1.1)
-
=29 =373 = [6}X + [29]x3 + [85]x2 + [193]x + [373] Given a Generator PIAT Polynomial (x)0 and an index r, it is possible to obtain the r' associated Perfect PIAT Polynomial P(X)r from (x)0 using only the values of the coefficients {a0,...a}ofP(X)0and certain values,r from the r" row of the CdP.
This method of jumping directly from a Generator PIAT Polynomial to the associated Perfect PIAT Polynomial is particularly efficient for large index values r. For example, referring back to the numerical example given in FIGs. 25 and 26, a Generator PIAT Polynomial P(X)0 6X4 + 5X3 + 5X2 + 3X +1 representing a compressed data sequence could be expending under the PIAT Method to give the 200,000th associated Perfect PIAT Polynomial representing an uncompressed data sequence by carrying out 200,000 PIAT Method steps to arrive at: P(X)2®0 = 6X4 + 1200005X3 + 120001600005X2 + 8000220001900003X + 400018666976668400001 -87 -FIGs. 36A and 36B show the expansion or PIAT-Decompression of a Generator PIAT Polynomial 11(X)0 6X4 + 5X3 + 5X2 + 3X + ito construct the 200,000th associated Perfect PIAT Polynomial(X)200 directly using the CdP: 1 (x)200,000 / 0 X 200,00O)A + (a < 200,0009 + a3 x + (a4 x 200,0009 + a3 x + a2 x + (a4 x j*00,0009 + a3 x + a2 x + a1 x + (a4 x 200,0009 + a3 >< + a2 x ff200000 + a1 x + a0 x = 6x1(200,000+0 ifl X4 L 0!(200,000-1)!) + 6x1(200,000+1 1)') ((20o,0oo-o_1)! x3 1!(200,000-1)! ) L0!(200,000_1)! ) +...
6 I(200,000 4 -1)!') 1(200,000--3 1)') + ((200,000+2-1)! 4!(200,000-1)!) 3!(200,000-1)! ) 2!(200,000-1) *OO.OOO,rooooQ,roo.ooo + ((200,000+1-1)! ((200,000+0-1)! +3x1 I+1><i U!(200,000-1)! ) 0!(200,000-1)! Too 000 200,00O -88 -=(6x1)X + (6 x 200,000+5 x i)x3 200,003 x 200,002 x 200,001 x 200,000 200,002 x 200,001 x 200,000 +6x +5x 4x3x2x1 3x2x1 200,001 x 200,000 200,000 1 +5x +3x +lx -2x1 1 1 zoo,ooo =[6]X4 + [200005}X3 +...
6 x 8666685000050000 + 5 x 33335333340000O + 5 x 0000 100000 ff2400000 + +3x200000+lx 1 = [6]X4 + [200005]X3 +... + [400018666976668400001] Since none of the intervening Associated PIAT Polynomials were calculated, this represents a highly efficient method of data decompression.
It will also be recalled from above that the Inverse PIAT Method of computing a Generator PIAT Polynomial (x)0 given an associated Perfect PIAT PolynomialP(X) involves processing one PIAT polynomial P(X) to find the preceding associated PIAT polynomial P(X)r_i and repeating this process until the Generator PIAT Polynomial (x)0 is obtained.
As with the PIAT Method, the inventors have devised an alternative method of using the CdP to jump directly to the Generator PIAT Polynomial (x)0 from an associated Perfect PIAT Polynomial (x), and having an indexr, without calculating all of the intervening Associated PIAT Polynomials. This method of jumping directly from -89 -the associated Perfect PIAT Polynomial P(X)r to the Generator PIAT Polynomial (x)0 using the index r also uses the CdP.
It will be recalled that under the PIAT Method, given a Generator PIAT Polynomial P(X)0 = acXc + aciXc_I + ... + aX + a0 and an index r, there is an associated Perfect PIAT Polynomial in the form P(X)r = + + ... + + 2.
It will also be recalled that the rth associated Perfect PIAT Polynomial can be found according to the following equation, which only includes values found in the CdP and the values of the coefficients {a0,... a} of the Generator PIAT Polynomial F(X)0: P(X)r=(acxff)Xc+(ac+ac_ix2i)Xcl+...+(acx7z.:+...+aox;Z;°)X0 To find r given only the coefficients of the Perfect PIAT Polynomial P(X)r, we know that mod 2 = a1. This can be verified from any of the numerical examples above.
However, we also know that a + r (see, for example, HG. 15). Combining these two expressions gives: r -a1 = -k-1 mod k = -k-1 mod, a Thus, r can be found from knowing only 2 and 2_ To find a: 2 =ax7r =-=--=2, since ir =lVr. Jrr 1
-90 -To find a_1: We know that: A1 = (a x + a_1 x Thus,a1 2ci c xr = _;TC XJ = -k xr.
Alternatively, one could use: a_1 + r a 2_ a_1 -r -r* To find a2: We know that: k-2 = a x + X + a2 >( 2 2-a xr2-a1xjt' 2 0 = 2c-2 -x iz -a_1 X 7tr = -x -a,_1 x tc_2 -X -k-1 -2 X 7 X This process can be continued to find all of the coefficients {a,...a0}of the Generator PIAT Polynomial (x)0, without having to calculate the coefficients of any of the intervening PIAT Polynomials.
FIG. 37 shows a numerical example of the Inverse PIAT Method. Given a Perfect PIAT Polynomial, P(X)r = 6 X4 + 35X3 + 120X2 + 313X + to construct its = =A2 associated Generator PJAT Polynomial, we first determine the value of p using: r= 21-A1mod2 4-23mod24 35-35mod635-5 305 k 24 6 6 6 -91 -To find a4: a4 24 =6 To finda3: a3 =2 -X2T, =2 24 xr -35-(6x5)=S =ac To finda2: a2 =2C_2 -k x _12 -k =°-l -22 -24x -24xx
I H =03)
= 120-6 x 15-(35-6 x 5)x 5 =120-90-(5 x 5) =5 Tofinda1: 2c-3 = a)< + a1 x + a_2 x + a3 x -2c-3 -a x -a1 x -a_2 x -2 -a x -a1 x -a_2 x -7i. -c-3 = 2C3 -- --2 x -(k1 - ) =a = -24 X -1 -24X5X: -24 -24 x)x]x
I I =a3)
= 313-6x35 -(35 -6x5)x 15 -(120-6x15 -35 -6x5)x5)x5 =210 =3 -92 -To find a1, we can use the shorter calculation method, making use of the fact that we have already calculated a4, a3, a2 and a1: a0=A-a4xir-a3x,-a2x,r-a1x,r = 686 -6 x 70-5 x 35-5 xl 5-3 x 5 =1 FIG. 38 shows another example of reduction under the Inverse PIAT Method, that employs a correction factor for r.
Given a Perfect PIAT Polynomial, P(X). = 3 X2 + 16X + , to construct its 1 O associated Generator PIAT Polynomial, we determine the value ofr using: r=1_Am0(1 = ,%1-2l3modA2 16-l6mod3 16-1 155 22 3 3 3 To find a2: a2 =22 =3 Tofinda1: a1 =A -a2 x.ir =16-3x5=16-15=1 To find a0: =A-a2 xi -a1 x.ir =47-3x15-1x5=-3N -93 -Since a value of one of the coefficients has been calculated as a negative integer, a correction factor needs to be applied. In this case, the value of the indexr needs to be reduced by unity: Ja, Nv/i r = r 1a1 NVi=r-3r--l Using the correction, r = 5-1 4.
To find a2 a2 = A2 =3 To find a1: a1 = ,t -a2 xr =16-3x4 =16-12 = 4 To find a0 a0 2 -a2 -a1 xir = 47-3x10-4x4 = I EN Using the correction of r, the generator polynomial (x)0 is correctly calculated asP(X)0 =3X2 +4X+1 FIG. 39 shows the optimisation heuristic discussed above in more detail.
The optimisation heuristic defines the ideai construction of a Perfect PIAT Polynomial given an input data sequence in order to allow an optimum reduction in size or compression according to the Inverse PIAT Method. The result of processing under -94 -the Inverse PIAT Method gives a reduced Generator PIAT Polynomial associated with the Perfect PIAT Polynomial. The optimisation heuristic belongs to the class of non-deterministic polynomial problems.
The optimisation heuristic includes a rule database 391 which stores all of the logical rules according to the PIAT Protocol that allows optimal reading and processing of the coefficients of PIAT Polynomials.
The optimisation heuristic also includes an inference engine 392 which can deduce properties of polynomials based on verified information, such as properties of previously processed sets of Associated PIAT Polynomials, based on formal logic. The verified information is stored at a polynomial database 393 which stores the values of coefficients a,, b,,.. . ,ic, 2, associated with PIAT polynomials i (x),. . , i (x) being processed or that have already been processed. A polynomial generator 394 generates PIAT Polynomials for use under the PIAT Protocol.
The main heuristic rules of the system, which apply under the PIAT Protocol, are as follows: * the heuristic can decide to maintain, increase or decrease the degree of the polynomial being analysed (for example to allow for variable-degree polynomials under the PIAT Algorithm or the Extended PIAT Method); * the heuristic can exclude one or more symbol of the polynomial being analysed; * the heuristic can consider all coefficients of the polynomial as a variable-degree "sub-polynomial"; -95 - * the heuristic controls the requirement that the coefficient of the lowest degree term in a polynomial be strictly greater than the coefficient of the next lowest degree term in the polynomial; * the heuristic can verify the modulos of the coefficients of the input polynomial relative to the number of lines r calculated by the Inverse PIAT Method; and * the heuristic can choose to reverse the reading direction of the polynomial being analysed, i.e. change the order in which the coefficients are arranged.
All binary sequences, which are intelligently divided into smaller binary sequences by the optimisation heuristic necessarily correspond to a generator (origin or initial) polynomial with a number of variable-coefficient symbols. To reduce the computational cost under the PIAT Protocol, the optimisation heuristic can proceed by: * identifying a polynomial of the same degree which is linked to the Generator PIAT Polynomial by a truncating/reducing the coefficients; or * by a minimal differential approximation of a value stored in the system relative to a Perfect PIAT Polynomial linked to a known Generator PIAT Polynomial.
Thus, the optimisation heuristic could identify a Perfect PIAT polynomial with a known link (via the indexr) to a known Generator PIAT polynomial and recreate the result, rather than perform the full Inverse PIAT Method to compress the size of the binary data sequence.
Using one of the numerical examples above, the optimisation heuristic could store the fact that an input data sequence of -96 - 612000051200016000058000220001 900003400018666976668400001 (in decimal) corresponds to a Perfect PIAT Polynomial of the form F(X) = 6X4 + 1200005X3 + 120001600005X2 + 8000220001900003X + 400018666976668400001, which can be compressed to a data sequence having only five decimal digits 65531 and an associated six-digit decimal index, r, of 200,000. If the optimisation heuristic were to receive such an input data sequence in the future, it could infer the result of compression under the Inverse PIAT Method rather than having to perform the full Inverse PIAT Method each time it receives that input data sequence.
This is particularly useful when the same data is PIAT-Compressed more than once under the PIAT Protocol. As an example, a user may wish to compress a movie file under the PIAT Protocol into a compressed file and an index and then decompress the compressed file using the index under the PIAT Protocol at a later date to view the movie file. If they then wish to re-compress the movie file under the PIAT Protocol, rather than having to perform calculations under the PIAT Protocol, the result of the PIAT Compression (compressed data sequence and index) could be inferred by reference into a database of previous compressions.
FIGs. 40 and 41 respectively show the reduction (PIAT Compression) of, and subsequent expansion (PIAT Decompression) to recover, an initial data sequence, such as the 166 decimal-symbol sequence mentioned earlier.
FIG. 40 shows an overview of the steps involved in the Inverse PIAT Method of reducing a large initial data sequence to a smaller final data sequence with an associated final index, rF which indicates the level of compression. Not all of the steps shown in FIG. 40 are essential in reducing the initial data sequence to a smaller final -97 -data sequence. For example, the final index, rF, need not be subject to further encoding itself.
The compressed data sequence can also serve as a checksum to provide error-checking capabilities. If an initial data sequence is operated on according to the PIAT Protocol, it produces a smaller data sequence. If the initial data sequence is transmitted to another entity and incurs errors during transmission, the received data sequence would be highly unlikely to produce the same smaller data sequence under the PIAT Protocol as the non-erroneous initial data sequence. If the compressed data sequences were different, it could indicate transmission errors.
At Step 401, an initial data sequence is received for PIAT Compression. The data sequence may, for example, represent a digital audio file, a digital text file or may take the form of any other input data.
At Step 402, the input data sequence is subject to the optimisation heuristic as discussed earlier.
At step 403, the Inverse PIAT Method is used to process the initial data sequence.
The Inverse PIAT Method may be used to compute each intermediate Associated PIAT Polynomial or may be used to jump directly to the smallest possible Generator PIAT Polynomial (x)0 with the associated index, r. If each intermediate Associated PIAT Polynomial is computed, then, at each iteration, a temporary sequence will be produced.
That temporary sequence corresponds to an Associated PIAT Polynomial reduced by one level.
-98 -At Step 404 when desired, the temporary indexi is subjected to an entropy heuristic. This involves establishing the best possible encoding for the particular technique of entropic encoding being used to encode the temporary index,. More precisely, it involves encoding all or part of the values of the temporary indexr,. Thus, the entropy of the temporary index r, is reduced by increasing the probability of the occurrence of characters, which greatly optimises the compression rate in line with current methods of entropic compression.
At Step 405 the temporary indexr is subjected to entropy encoding to produce a final index, rF. The final index, rF, together with the final data sequence can be used to reconstruct the initial data sequence.
FIG. 41 shows an overview of the steps involved in the PIAT Method of PIAT-Decompressing the small final data sequence using the final index, ri., to recover the larger initial data sequence. Not all of the steps shown in FIG. 41 are essential to expand the final data sequence to the initial data sequence, particularly if the final index, r, was not subject to encoding itself.
At Step 411 the final index rF that was subject to entropic encoding is subjected to entropy decoding.
At Step 412, the resultant index is subject to an inverse entropy heuristic to provide the temporary index, i.
-99 -At Step 413, the compressed data sequence and the temporary indexi are used, optionally along with the CdP, under the PIAT Method to reconstruct the initial data sequence. In constructing the initial sequence, it is possible to construct each Associated PIAT sequence or Polynomial iteratively between the compressed and initial data sequence or to jump directly from the final data sequence to the initial data sequence.
FIG. 42 shows how the Inverse PIAT Method and the PIAT Method can be used to compress and decompress, respectively, the indexr generated under the PIAT Protocol. Since the index is, itself, a data sequence and may be relatively large, the index can be subject to PIAT Compression as opposed to conventional entropy encoding. This would generate a further data sequence corresponding to the compressed index and a further index indicating the level of compression of the compressed index. This process of compressing the index generated at each level can be continued to reduce the overall size of the data, at the possible expense of increased processing time.
To decompress the data, the final data sequence and final index are combined under the PIAT Method to generate the previous index. The previous index can then be combined with the previous data sequence under the PIAT Method to generate the yet previous index. This process can be repeated to recreate the original data sequence.
This method of compressing the index provides not only a further level of data compression, but a further level of security in relation to the original data sequence. For example, if an original data sequence underwent three stages of PIAT Compression, compressing the index at each stage, three data sequences and three indexes would be generated. It would not be possible to reconstruct the original data sequence without -100 - knowing or calculating all of the sequences and indexes, save, possibly, for a time-consuming brute force attack. Each of the data sequences and indexes, thus, acts as a decryption key as well as an element of the compressed data.
FIG 43 shows typical compression rates obtainable under the PIAT Protocol contrasted with that under conventional Huffman Coding and under RLE.
As explained previously, a 552-bit (69 ASCII character) initial sequence identical to that discussed in relation to FIG. 22 as being a direct decimal-to-binary conversion of a 166-digit decimal sequence can be compressed under the PIAT Protocol by a rate of 91.3%.
Under Huffman coding, a codeword having 63 unique ASCII characters and 6 ASCII characters repeated twice, can be used to obtain a Huffman coding having 414 bits (52 ASCII characters). This represents only a 25% compression ( (414' rate(I 1-i -I IxlOO).
552)) Under RLE encoding, since there are no repeated characters in the initial sequence, RLE would return an encoded sequence having the same number of bits (552 bits) as the initial sequence, giving a 0% compression rate (1 -x 100).
Thus, PIAT Compression greatly outperforms both of these known compression techniques based on this initial data sequence.
-101 -Huff man and RLE encoding are based on a statistic encoding depending upon the appearance of characters. In the above example, the initial data sequence has a low probability of occurrence: 69 ASCII characters of which 63 are unique. This very fact exposes a weakness in the Huffman algorithm in that the associated Huffman tree of codewords must be locally complete. As for RLE, coding is inefficient. Indeed, RLE only applies when at feast 3 consecutive identical characters are identified.
In summary, unlike standard compression that is based on an entropic analysis of the source data, the PIAT Protocol operates directly on the binary values of the input data. The PIAT Protocol provides various advantages over conventional encoding techniques: * processing under the PIAT performs lossless data compression; * PIAT processing enables on-the-fly data processing; * processing under the PIAT is insensitive to the particular type of input data (exe,txt,jpg,...); * a data stream compressed under the PIAT Protocol further compressible as many times as necessary in a cyclic manner; * the PIAT Protocol is particularly effective when c 1, i.e. when (x)= a1X + a0 deg (x) = 1, and x0 =1 because of the constant compression level and the fact that the optimisation heuristic is also simplified; * higher rates of data compression can be obtained by increasing the value of x0 at the cost of a higher complexity of calculations; and * the index r generated under the PIAT Protocol is separable from the compressed data and can serve as a decompression or decryption key.
-102 -Polynomial Factorisation and Division It will be recalled that Homer's Scheme can be used to factorise a polynomial by a factorg(x)=x-x0.
Generally, all polynomialsP(X), where P(X) acXc +a_X +...+a1X+a0 can be written as (c.f. Homer's Scheme): P(X)=((...((X-x0)R+1 +RXX-x0)+...R3XX-x0)+R2Xx-.x0)+R1 The CdP enables all of the the remainders, Rr making up the factorised polynomial to be calculated according to the following equation: c-r+1 Rr = By way of an example, suppose one wanted to factorise P(X)= +X3 +,X2 +X+1 by(X-1) as many times as possible.
Here,; =lsince the required factor is(X-x0. Accordingly, the one-dimensional CdP, denoted CdP1 is required.
The remainders Rr making up the factorised polynomial with c + 1 »= r »= 1 are calculated by: 4-r+1 Rr = -103 -Each of the coefficients R,. can be obtained as follows: To calculateR,: 4-1+1 4 = x r)= (a R1 =1x,r +3xr +5xtc+5x,r+6x,r,4 =lxl+3x1-i-5x1+5x1+6x1=2O Thus,R1 =20.
To calculateR2: 4-2÷1 3 R2 = (a÷21 xff')=(a+, R2 R2 =3xr +5xr +5xir +6x,r =3x1+5x2+5x3+6x4=52 Thus,R2=52.
To calculateR3: 4-3+1 2 R3 = (a+31 x2r;)=(a +2 R3 -104 -R3 =5x.ir+5xjr+6x,r =5x1+5x3+6x6=56 Thus,R3 =56.
TocalculateR4: 4-4+1 I R4 = (a+41 x,r)=(av+4i)<4V) R4 = 1a03 xff1+1a13 x R4=5xr+6xg =5x1+6x4=29 Thus,R4 =29.
To calculate R5: 4-5+1 0 R5 = (a+5_1 x;)= (a+s_i x,;)_-* R =[+5...1x]] R5 = 6 x 6 x 1 6 This leads to the factorisation of P(X) = 6X4 + 5X3 + 5X2 + 3X÷ las = --i((x -i(x -+ 29) + 56) + ) + 20].
R R4 R3 R2 R1 -105 -The validity of this factorisation of P(X)can be verified by expansion, if desired.
It is also possible to calculate Euclidean polynomial divisions in a similar manner to Homer's Scheme by using the CdP in the relevant dimension x0 n.
Starting from any polynomial P(X)of degree c, using the r row r of the CdP allows all of the quotients Q(X)1 and remainders R1 of successive Euclidean division Of P(X)by(X-xo)'to be calculated as follows: r=0.-P(X) (x) R = QX) + (X-x0) degQ(X)1=c-I (X-x0) but Q(X)1 = Q(X)2 + R2 (X-x0) (X-x0) (x) R R = + 2 + (X-x0)2 degQ(X=c-2 (X-x0) (X-x0)2 but Q(X)2 = + R3 (X-x0) (X-x0) (x) R R R r=c-Q(X) + c + c-i ______ (x -x0)C di3O (x -x0)' (x -x0 (x -x0 according to the following formula: c-P +1 _____= x)JXk +[ (xo)t] Thus, forr=1, i.e. to divideP(X)by(X-x0)': -106 -P(X) Q(X)1 + (X-x0)' -..----(X-x0) degQ(X)1=c-1 =[a xnJX +[(a x,r)+(a_i xit)Jxc_2 +[(a xir)+(a_1 x7r)+(a 2 x,r)]Xc_3 (X -x0) Forr = 2, i.e. to divideP(X)by(X -x0)2: P(X) = Q(X)2 + + R1 (X-x0)2 -S.----' (X-x0) (X-x0)2 degQ(X)2=c-2 =[a x,r0}Xc2 +[(a xir)+(a_1)Jxc_3 +[(ac x,r)+(a_i x,r)+(a_2 X2r)JX (X-x0)' (X-x0)2 Forr = c (wherecis the order of P(X)), i.e. to divideP(X)by(X_xo)c: P(X) Q(X) + R R -l + + R1 ____ C + (X_xo)c djO (X-x0)' (X-x0)2 (X_xo)C [(a x ri)+(a x [(a x)+...+(a x +...+ (X-x0) (X_xo)c_I (X_xo)C FIG. 44 shows, and an explanation is provided below of, how the polynomialP(X) 6X4 + 5X3 + 5X2 + 3X+ 1 can be written in the a4 03 02 a 0 P(X) R R _____ form = Q(X)r + r + r-l + R, (X -1) (X -1)1 (X -1)2 (X -1) Firstly, the quotient Q(X)1 and remainderR1 of the first division, i.e. the division by(X-1)' ,are calculated: -107 -P(X) (X-I)' =
R
Q(X),,+ = (X -I)' [6x4']x3 +[(xR:J÷(]]x2 +[6xrJ+[5 xlr:J÷[5 xr]Jx' + [6 xri'j÷[ x.r)+.[5 x1r]+(3 <ir:)+[i xnJ] (X -I)' =[6x1]X' +[(6x1)+(sxl)jxa +[(6x1)+(5x1)+(sxl)Jx' + [(6x1)+(5x I)+(5x1)+(3x1)Jx0 [(6x1)+(5xI)+(5x1)+(3x1)+(IxI)] (X -I)' =x3+iix2 +!6X+19+ (X-I)' Secondly, the quotientQ(X)2and remainderR2of the second division, i.e. the division by (x -1)2 are calculated: P(X) (X-I)2 R2 R, + (X-1)' (X-I)2 [6xj+1s÷is.f13xff1 - , j j)J 20 + (A-I)' (X-1)2 =[6xIJx1 +R6x2)+(5x1)jx' +[(6x3)+(sx2)+(5xI)Jx0+[(6x4)+(5(3)f(5*2)÷(3)i÷ (X-I)' (X-I)2 =6X÷I7X'+33+ 52 20 Q(Xh (X_I)l(X_I)2 Thirdly, the quotientQ(X)3 and remainderR3 of the third division, i.e. the division by (x -i) are calculated: -108 -P(X) R3 + R2 + R1 (X -1) = + (X -1)' (X-1)2 (X -1) R2 [16X)+1X+1X,11 ____ ___ L, ) 1)j 52 + 20 =[6xlx1+[(6x+I5x2r]]x0+L 04 (X-1)' (X-1)2 (X-1)3 [04] [lsa4) (a R2 [(6x6)+(5x3)+(5x1)] ______ =[6x1]xI4[(6x3)+(5x1)}X0÷ + + (X-1)' (X-1)2 (X-1)3 R3 R, 56 52 20 =6X+23+ Q(X (X -1)' + (X -1)2 + (X -1) Finally, the quotient Q(X)4and remainder R4 of the fourth and final division, i.e. the division by (x -i)4 are calculated: P(X) -+ R4 + R3 + R2 _____ (X-1)4 (X-1)t (X-1)2 (X-1)(X-1) R3 R2 R1 x1 \O4) 1O3)J 56 52 20 + + + [a j (X -1)' (X -1)2 (X -1) (X - [(6 x 4)+ (5 x 1)] =[6x1]x°+ (X-1)4 R4 R3 R1 29 56 52 20 =6+ + + + Q(X) (X -1)' (X -1)2 (X -1) (X -1) The above example can be written differently as: P(X) = Q(X)r R + Rn + + R1 (X_1)r + (X-1)' (X-1)2 (X1)n c-r+I c c-r (c-r-k x 7r') (ay+(r_I>..I x 2r(,._1)) x = I x)JXk + + v0 + ** + v0 ______________________ (X-1)' (X-1)2 (X1y Firstly, forr = 1: -109 -Ic =4
-= 1
To find the first quotient Q(X)1: 4-I 4-I-k 3 3-k Q(X)r = = xJrT)JXk -+ ((aV+I+k x7ri1)JXk = : (av::L: 2ri4)JX0 + (ax + + (a,4 x /r')JX3 = (a+r + +a2+12r12 + + (aO+22r1 + )X' + (a: +a)X2 (a1xs')X0 E(a,.1,1a,r)X' I 0\V3 a4,r1, a4 3-) = (a1 + a2,r + a3ir12 + a4r)X° + (a2r + a3r + + (a3,r° + a4it)X2 + (a4ir5X3 =(3x1+5x1+5x1+6x1)X°+(5x1+5x1+6x1)X' ÷(5x1+6x1)X2 +(6x1)X3 =Q(X)1 =6X3+11X2+16X'+19X° To find the first remainderR1: 4-1+1 4 = x = x 7r') =a0xr-t-a1 X7t +a2Xff +a3X2r+a4x2r1" =lxl+3x1+5x1+5x1+6x1 =20 So, P(X) =Q(x)1+ R1 (X-1)' (X-1)' =6X3+11X2 +16X' +19+ 20 (X-1)1 -110 -Secondly, forr=2: Ic =4 (r = 2 To find the second quotient Q(X)2: 4-2 (4-2-k 2 (2-k Q(X)r =Q(x)2 =j (aV+2+k xIr)JXk (aV+2+k xn)JXk k=O v=O k=O v=O = aV÷2+Ox + (a,fx --(a x =(a020,r +a120r +a220,r)X° +(a021,r +a121,r)X' +(a0,2r20)X2 -v-d _ 02 03 a4 03 04 04 _______________________________________________________J L 1 _____________________ 2-0 2-I 2-2 (ax,r)X° (a2,1xit)X' (a2,2x,r)X2 --0 v.0 =(a2r +a3ir2 +a4ir)X° +(a3,r +a4,r)X' +(a4r)X2 =(5x1+5x2+6x3)X°-i-(5x1+6x2)X'+(6x1)X2 =Q(X)2=6X2+17XLi.33X0 To find the second remainderR2: 4-2+1 3 R2 = (a÷21 x = (a1 x r) =a1 xr --a2 xff +a3x +a4x7r2 =3x1+5x2+5x3+6x4 =52 So, P(X) = Q(X) + R2 + R1 (X -1)2 2 (X -1)1 (X -1)2 =6X2+17X'÷33+ 52 + 20 (X-1)' (X-1)2 -111 -Thirdly, forr=3: Ic=4 r=3 To find the third quotient Q(X)3: 4-3 14-3-k I (I-k Q(X)r = x x 2r3t)JXk k=O v=O k=Q v=Q = (an: ff)JXO + L''÷i Jr;)Jx =(a0+30,r3° +a130r)X° +(a031ir30)X' a3 a4 a4 1-0 I-I = (a3r + + (a4,r30)X' =(5x1+6x3)X°+(6x1)X' = 6X' + 23X° To find the third remainderR3: 4-3+1 2 R3 = =a2xir+a3 xr +a4xit =5x1+5x3+6x6 =56 So, -112 -P(X) = Q(X)3 + I?3 + + R1 (X -i) (X -1) (X -1)2 (X -1) 56 52 20 =6X+23+ + + (X-1)' (X-1)2 (X-1)3 Finally, forr=4: Ic =4 lr=4 To find the fourth quotient Q(X)4: 4-4 (4-4-k 0 (0-k Q(X)4 = x ir)JXk 1('v+4+k X 7r)JXk k=0 v=0 k=0 v0 =
E p
=(6x1)X° =Q(X)4=6X° To find the fourth remainderR4: 4-4+1 I R4 = = a3 x + a4 x =5x1+6x4 =29 So, -113 -P(X) R R R R =Q(X)+ + + 2 + I (X -1) (X 1)1 (X -1)2 (X -1) (X -1) 29 56 52 20 =6+ + + + (X -1)' (X -1)2 (X -1) (X -1) Instead of dividing by(X_1)'(i.e. wherex0 1) above, it may be desired to divide P(X)by(X -2)', in which case; = 2. It then becomes necessary to use the two-dimensional CdP, denoted CdP2.
If dividing by(X -2)', then the same polynomial, P(X)=6X4 +5X3 +5X2 +X+,can be expressed as: P(X) = Q(X) + R,. + R1 *** + R1 (X-2y r (X-2)' (X-2)2 (X_2)r Firstly, calculating the quotient Q(X) and remainderR1 of the first division, i.e. the division by(X-2)': P(X) (X -2)' =Q(X) + (XR_12), _[6, +[( ,)+[ +[(6xriJ+(sxi')+[5 xn0J]x1 +[(J+[ 2J+( xzJ+(3xrJ]x + [( ,)+[ ,J+( ,)] (K -2)' =[6x11x3+[(6x2)+(5x1)]x2+[(6x4)+(5x2)+(5x1)Jx1 +[(6x8)+(sX4)+(5X2)+(3l)]xo+I(66)+(5x8)(5x4)+(3x2)(11)i =6X3+17X2+39X+81+ 163 (X-2)' -114 -Secondly, calculating the quotient Q(X)2 and remainderR2of the second division, i.e. the division by(X -2)2: P(X) =Q(X) + R, + R1 (X -2)' 2 (I -2)' (X -2)2 =[ x,r]1 +[(6 x)+(s xir)]X' ÷[(6 xJr]+(5 xIr)+(5 xrJ]x° + [(6xJ+[sxJ+(5xn')+13xir)1.& ) )j 163 + (X-2)' (X-2)' (X-2)' (X-2)2 a, r -275 163 6X'+29X'+97+ + --(X-2)' (X-2)2 Thirdly, calculating the quotient Q(X)3 and remainderR3 of the third division, i.e. the division by(X-2)3: P(X) -_____ _____ _____ Q(X)3÷ 1?3 + R2 R (X-2)3 -(X-2)' (X-2)2 (X-2) [1, + 1 + 1 R2 R1 [a) C3 J 62 275 163 x+ +F16x2r÷15x2rJ] + + (X -2)' (X -2)2 (X -2) La4 j [a4) \a R2 R1 [(6x24)+(5x6)+(5x1)] ______ + + =[6x1}x' +[(6x6)+(Sxl)}X°+ (X-2)' (X-2)2 (X-2)3 R, R1 179 275 163 =6X+41+ + + Q(X), (X-2)' (X-2)2 (X-2)3 Finally, calculating the quotient Q(X)4 and remainderR4 of the fourth and final division, i.e. the division by(X-2)4: -115 -P(X) =Q(X) + R4 + R3 + + R1 (X -2) (X -2)' (X -2)2 (X -2) (X -2) 1x,r')+1x7r') =:I6xjr O4) ) + 179 + 275 + 163 (X -2)' (X -2)2 (X -2) (X -2) R3 R2 [61Jx0[(6>(8)+(5X1)] i9 + + (X -2)' (X -2)2 (X -2) (X 2) R4 R3 R2 R1 53 179 275 163 =6+ + + + Q(X) (X -2)' (X -2)2 (X -2) (X -2) It will be recalled from above that the CdP1 can be derived from the PIAT Algorithm or (Extended) PIAT Method by using an identity polynomial,I(X). The CdP1 can also be derived using the factorial method. Another method for deriving the CdP1 is by Polynomial division of an identity polynomial in the form: P1(X)=1Xv =1Xc+1X +...+IX+1 (X) =_____ 1Xc+1X+...+1X+1 (X1)r (x-1 (X1)r c-r c+I-r ffcs1(rI) c = ,g(c_r)_v)+ + (r-i)+t ** + (X -1)' (X -1)2 (X -1) Using a fourth-degree identity polynomial, P(X) = X4 + + + X + 1: P x 4-1 4+1-1 r = 1 -+ = v=O = x-"-")+ r11 (X -1)' (X 1)' =o (X -1)' =±(;x3)+(X'l)I =rX3+,rX2 +rX + (X-1)' -116 -P(X) 4-2 4+1-2 4 = =(,r;+1x(4_2)_v)+ + (X-1)2 (X-1)2 (X-1)' (X-1)2 2.3__+__7T4 _(;x2 v)+ (X-1)' (X-1)2 x2+x1+2+ + (X-1)' (X-1)2 r-...
This can be compared with the result obtained by other methods of polynomial division as: P(X) X +X+X +X +1 1X3+ 2X2 + 3X' r = 1 -+4+ (x -(x -i,r (X -1)' 4 4 P(X)X4-I-X3+X2+X'+121 10 5 r = 2 -* _______ _______ +6+ + (x-i)2 -x-i)2 (X-1)2 (X-1)2 4 4 4 P(X) X4+X3+X2+X'+l 10 10 5 r = 3 -* =IX+4+ + + (x --(x -i)3 (X -1)1 (X -1)2 (X -1) 4 iT4 4 4 4
--
P(X) X4+X3+X2+X'+l 5 10 10 5 r=4-* _____ _____ _____ _____ =1+ + + + (x --(x -i) (X -1)' (X -1)2 (X -1) (X -1) iT5 Calculating P(x0) With reference to FIG. 45, is possible to calculate P(X)atx0 using the first row, r = 1, of the n"-dimensional CdP, i.e. using the CdP that has the same dimension as the point x0 about which calculation is desired: -117 -P(x0) =ax0 = axoc + a1x0 + ...+ a1x0 + a0 However, since jr = r1 *xoC, n=x0 n=x=1 whenr=1,2rI =,t.0c =i.0 -*P(x0)=ax0 =>ax7r'I It can be seen that in calculating P(x0), the powers,c, ofP(X)inX correspond to the values of the coefflcients,rin the corresponding-dimensional CdP. For example, the coefficient of the term in X3 (c 3) about the point x0 = 4 n = x0 = 4 would correspond to the value of the coefficient,r on the first row r = I and the fourth column c = 3 in the 4th dimensional CdP, denoted CdP4.
FIG. 46 shows, and the calculation below explains how, P(X)about the points x0 = land x0 = 2 can be calculated when P(X)=X4 +5X3 +X +X+using the corresponding CdPs; CdP1 and CdP2 respectively.
Forx0 =1, using CdP1: P(x0) = ±(a x)= a0 x + a x + a2 x + a3 x + a4 x = 1 x 1+3 x 1+5 x 1+5 x 1+6 xl = 20 -118 -To verify, substituting X = 1 into P(X) = 6X4 + 5X3 + 5X2 + 3X + 1 yields: P(1) 6[lr + 5[lr + 5[1}2 + 3[1}+ i =20 Forx0 = 2, using CdP2: P(x0) (a x a0 x° + a1 x + a2 x + a3 x + a4 x "-0 =lx 1 +3x 2 +5x 4 +5x 8 +6x 16:=163 2O.g 2I.,r 22.,r 2.,r1 24./ri To verify, substituting X = x0 = 2 into P(X) = 6X4 + 5X3 + 5X2 + 3X +lyields: 612r + 5{2f + 5[2] + 3[2]+ 1 Other Mathematical Formulae Expressed in Terms of the CdP Binomial Expansion A binomial expansion can equally be expressed in terms of cells.irfrom the CdP: (a±b)m Om(±b)O+I.am_I.(±b)l+,_1.am2.(±b)2+...+g" .ao.(±b)m = a"'' (± b)' By way of a first numerical example: -119 -(a+b)4 i=0-ir*a4°.b° =r*a4 j = 1 -+ r *a4' b' = ir *a3 *b2 i=2-+,r2*a42.b2 =r32a2*b2 i=3-*,r3a43*b3 =ir*ab3 j = 4 -+ ir54 a44 b4 = ,r b (a+b) =.a4+.a3.b2+.a.b2+a.b3+ir4.b4 1 *a4+4.a3.b2+6.a2.b2+4.a.b3+1 b4 =1r =/4 =ir =,r =/r Thus by way of two more numerical examples, (i+x)4= I +4x+6x2+4x3+1x 4) $4.4 jr (i -= (i + (-x))4 = 1 -4x + 6x2 -4x3 + 1 x4 ir /4 /4 /4 If the sum of the coefficients of a polynomial is in the form 2, then there exists a polynomial P(x) such that P(x) (x + a)m.
Sum of Natural Numbers The sum of the firstm natural numbers: Sm=1+2+3+...+(,fl_l)+m=m(rn+1)=.I By way of a numerical example: S4 = 1+2+3+4= 4(4+1) 4-I 3 S4=,r3 213_10 -120 -Combinations with and without Repetition It will be recalled from above that the number of combinations without repetition can be found according to the following formula: cc _____ "r I \ r-c)!C.
It will also be recalled that this can be mapped to the CdP, which can be thought of as the number of combinations with repetition: = (r + c-i)! c!(r-i)! It can be seen from these two expressions that: -(r+c-i)! (r+c-i)! , r+c-1 - ((r+c-1)-c)!c! (r-i)!c! ((r-c+i)+c--1)! ______ -r-c+1 -\ \ - -C c! r-c+1)-1)! c!r-cj! Binomial Law Under the Binomial Law, the probability F of c successes from r trials where the probability of getting c isp is given by: i To map this to combinations with repetition, we can use, from above, that2r+1 =Cto give: pC (i -p)(r_c+I)_c (1 -p)r_2c+I Perfect P/AT Couples and the P/AT Classification Space -121 -FIG. 47 shows a small extract from another new mathematical construct, referred to herein as the PIAT Classification Space, for; 1, using the numbers between 1 and 109 inclusive. These individual numbers are denoted herein asa.
The PIAT Classification Space exhibits various remarkable mathematical properties that can be used for data compression and decompression under the PIAT Protocol.
To populate the PIAT Classification Space, we can start with a second-order polynomial in the form: +a1x+a0, where0 «= a, «=9.
This polynomialF(x)is used to represent a three decimal digit number in the form a a2a1a0. For example, to represent the decimal numbera 109, a2 = 1, a1 = 0 and a0 = 9. The number a = 109 has an associated polynomial: c09x)= 1x2 -i-Ox+9 =1x2 +9.
Thenumbera=74=O74can be represented bycz2 =0, a1 =7anda0 =4. The number a =74 has an associated polynomial: J(x) = x2 + + = Zx+ . The numbera =8=OO8can be represented bya2 =0,a1 =Oanda0 =8. The number a = 8 has an associated polynomial: i08(x) = gx2 + + = -122 -These three-digit numbers a are arranged into Classification Space Families, where all associated polynomials J(x)of the members of the same family have the same value of Pa(X0). In this case, wherex0 =1: 109 -* F09(x0)= IO9(1)=1 x12 +Oxl +9=1+0+9 =10 74-_P074(x0)=P074(1)=Ox12 +7x1+4 =0+7+4=11 8-+108(x0)=I-08(1)=Ox12+Ox1+8 =0÷0+8=8 The decimal number a = 109 belongs to the family of polynomials for which (i) =10, a = 74 belongs to the family of polynomials for which (i) 11 and a = 8 belongs to the family of polynomials for which (i) =8.
The set of decimal numbers a between 1 and 109 inclusive for which P(1)= 3is indicated by a dotted by on FIG. 47 as: a =3 -*I(1)=F03(1)=0x12+Ox1+3 =0+0+3=3 a =12-F2(1)=F12(1)=Ox12 +lxl+2 =0+1+2=3 a=21-]1(1)=J21(1)=Ox12+2x1+1O+2÷13 a =30-*I0(1)=130(1)=Ox12 +3x1+O =0÷3+0=3 a=102-*102(1)=1x12 ÷OxI+2 =1÷0+2=3 The only values of I(1)for all of the values of a between 1 and 109 inclusive are between 1 and 18 inclusive.
-123 -FIG. 48 shows the classification space forx0 = I of polynomials i(x) associated with all of the values of a between 1 and 299 inclusive. Even a significant number of additional values of a, the only values of Ra(1)for all of the values of a between 1 and 299 inclusive are between 1 and 20 inclusive.
With reference to FIG. 48 again, the set of decimal numbers a between 1 and 299 inclusive for which (i) = 3 is: a =3-*F(1)=J03(1)=Ox12+0x1+3 =0+0+3=3 a =12-12(1)=)12(1)=O x12 +lxl+2 =0+1+2=3 a = 21-÷P21(1)=J21(1)=O x12 +2x1+1 =0+2+1=3 a =30 -i(i)= 030(i)= 0 x 12 +3 x 1 + 0 =0 + 3 + 0=3 a=102-*I02(1)=1x12 +Oxl+2=1+Q+2=3 a =111-+ F12(1)=1x12 +1 xl+1 =1+1+1=3 a=120-+F20(1)=1x12+2x1+O=1+2+O3 a2 x0 a1 x0 a0 a= 201-3 i01(1)=2x12 +Oxl+1 =2+0+1=3 a =210 -÷ F10(1)=2 x12 +1 xl+O =2+1+0=3 FIG. 49 shows a graph of the curves of three polynomials Pa(x)for which i(i) 9, namely: 6 (i) = x 23 x + 6 =0+3+6=9 126(1)_ x 12+2x +6 = 1+2+6=9 a2 x0 a1 x0 a0 1252(1) X.L2 +5 X + = 2+5+2=9 -124 -These three polynomials] 6(x),I6(x),F2(x)aIl meet atI(1)= 9. The numbersa 36,a =l26anda = 252 (as well as twenty-four other valuesa) belong to the same Classification Space Family when x0 =1 for which i(i) = 9.
FIG. 50 shows the classification space forx0 = 2 of polynomials I(x) associated with all of the values of a between 1 and 299 inclusive. The only values of I(x0 = 2)for all of the values of a between 1 and 299 inclusive are between 1 and 35 inclusive.
When; 2, again with reference to FIG. 50, the only decimal numbera between 1 and 299 inclusive forwhichP(2)=3isa=11: a =1-P11(2)=F11(2)=Ox22 +1 x2+1 =0+2+1=3 FIG. 51 shows a graph of the curves of three polynomialspa(x)for which a (2) 23, namely: P79(2)-0 x22 +7x2+9 = 0+14+9 23 I83(2)=1x22+8x2+3=4+16+323 P255(1)=2x22+5x2+5 =8+10+5=23 a x0 a1 x0 aQ These three polynomials P79(x), I83(x),]55(x)aIl meet atpa(2)= 23. The numbers a = 79, a =183 and a = 255 (as well as ten other values a) belong to the same Classification Space Family whenx0 2for which Pa(2)= 23.
-125 -FIG. 52 shows the set of Perfect PIAT Couples between the numbers I and 99 inclusive. Perfect PIAT Couples can be used with the PIAT Classification Space to provide a compression and decompression technique based on the remarkable properties of the PIAT Classification Space.
A Perfect PIAT Couple forx0 = 1 is a set of two numbers {a1,a2}= {a12a11,a22a21} fulfilling the following criteria: * Their Classification Space Families have the same number of elements.
This means that the number of values a having the same image ofI(1)as1(1)mustbethe same as the number of valuesa having the same image ofF(1)asJ(1). This, in turn, means that there must be the same number of values a on the row in the PIAT Classification Space on which a1 is located as there are on the row in the PIAT Classification Space on which a2 is located; and * a1 and a2 must terminate in the same digit, i.e. a11 = a21.
With reference again to FIG. 52, we can verify that {a1,a2}= {43,83}is a Perfect PIAT Couple because: * i,(1)=1'43(1)= x + 3 =4+3=7and there are a total of eight values a1,2 X0 a1,1 of a in the Classification Space Family for which i(i)= 7, namely a = 7,16,25,34,43,52,61,70. The only other row that has eight members is that for which i (i) =11. The member of the Classification Space Family for which Ra (i) = 11 are a = 29,38,47,56,65,74,83,92 of which a2 83 is a member; and -126 - * Since a1 = a1,2a1,1 = 43 and a2 = a22a21 =83 we confirm that a11 = 3 = a21.
In fact, any value a1 that forms part of a Perfect PIAT Couple has one and only one partner value a2. Given a value a1 that forms part of a Perfect PIAT Couple, the partner value a2 can be uniquely determined by locating the row in the PIAT Classification Space that has the same number of members of its Classification Space Family asa1 and then finding the only member of that row a2 that has the same finial digit such that a11 a21.
This remarkable property of Perfect PIAT Couples and the PIAT Classification Space can be used to perform lossless data compression and fully recoverable data decompression.
Certain values a in the PIAT Classification Space, however, do not form part of a Perfect PIAT Couple. For example, taking a3 = 79, then a3 is in the classification space row for which Pa(i)= 16. This row has a total of three members, namely a = 79,88,97.
The only other row with three members is the row for which J (i) = 2. The members of this row area = 2,11,20. However, since a3 = a32a31 = 79, we have that the final digit of the prospective partner number should bea31 =9. Since none of membersa = 2,11,20 of the row for which (i)= 2 have nine as their final digit, none of them forms a Perfect PIAT Couple with a3 = 79.
By way of a further numerical example, we use the notation [ ] = [35 8] to define a compressed data sequence, a =35, and an index, /1 = 8. Using the notion of -127 -Perfect PIAT Couples and the PIAT Classification Space described above, we decompress the data sequence, a =35, using the index, /3=8, as follows: * The final digit of a = 35 is 5; * Using the PIAT Classification Space, we know that the line containing a =35 contains 9 elements; * Using the PIAT Classification Space, we also know thata = 35 belongs to the Classification Space Family for which i (i) = 8; * The index /3 = 8 indicates that the PIAT Classification Space row of interest is in the eighth row below the row to which a =35 belongs, so that the row of interest is 8+8=16; * The decompressed value is on the sixteenth line, in a Classification Space Family containing nine elements, and has five as its final digit; * The unique value within the PIAT Classification Space between 0 and 999 for which this holds is 655; * The decompressed data, ad, is a combination of the compressed sequence and the unique value: 65535.
This is a common number in computing because it is the highest decimal number that can be represented by an unsigned 16-bit binary number, 11111111111111112.
Whereas the decimal number 65535 requires 16 bits to store it, the compressed data 1 sequence, denoted 8 requires 6 bits to store the value 35 and four bits to store the value 10, so only ten bits in total.
-128 -Using the PIAT Classification space and the notion of Perfect PIAT Couples thus allows reversible data compression.
FIG. 53 shows a method of creating pseudo-isometric composite mapping functions to compress data using the PIAT Classification Space. Three mapping functions are defined: * P1 -Perfect PIAT Couple: the P1 function allows a value in the PIAT Classification Space to be swapped with its partner value in a Perfect PIAT Couple, for example P1(94) 14; * P2-Vertical Substitution: a number in a column can be swapped with the number in the same column that is the same distance away from the horizontal axis of symmetry for that column as the number to be swapped.
For example, to calculate P2(37),37 is three numbers below the horizontal axis of symmetry in the column in which it is located. 34 is three numbers above the horizontal axis of symmetry in the column in which 37 is located.
This means that P2(37) = 34.
* P3-Horizontal Substitution: a number in a row can be swapped with the number in the same row that is the same distance away from the vertical axis of symmetry for that row as the number to be swapped. For example, to calculate P3(1 6),l6is three numbers to the left of the vertical axis of symmetry in the rowi(1)= 7 in which it is located. 61 is three numbers to the right of the horizontal axis of symmetry in tthe rowP(1)= 7. This means that P3(16) = 61.
-129 -To show how these functions can be used to compress data, we can define a first exemplary composite mapping function as l = P20 P30 Plo P2. To calculate l(98), we have: 7(98)=P2oP3oP1oP2(98)=P2oP3on(91)=P2oP3(71)=P2(17)=12 Because of the symmetry of the mapping functions P1,P2,P3 the inverse composite mapping function of 1, denoted 7 is simply the composite of the same three mapping functionsPl,P2,P3 in the reverse order, i.e. T =P2oP1oP3oP3. This can readily be seen by considering the pervious example: q' 2) = P2o Plo P3° P2(12) = P2° Plo P3(17) = P2o P1(71) = P2(9i) =98.
A slightly better composite mapping function T2 for this numerical example is7 =P3°P2°P3oP2: r2(98) = P3° P2o P3o P2(98) = P3° P2o P3(91) = P3° P2(19) = P3(10) = I I1(1)=P2oP3oP2oP3(l)=P2oP3oP2(iO)=P2oP3(i9)=P2(9l)=98 Use of this composite mapping function 7 and the PIAT Classification space, which includes the notion of Perfect PIAT Couples, allows significant lossless and reversible data compression because the number "1" requires much fewer bits to store than the number "98" does. The composite mapping function 7 (and its inverse 7) would clearly need to be known in order to determine the route to be navigated through the PIAT Classification Space.
-130 -FIG. 54 shows the PIAT Classification Space for the numbers a between 0 and 255 (256 = 28. a byte). Twenty Classification Space Families, i(i)= 0,..., i(i) = 19, represent all of the binary numbers between 0 and 255 (an 8-bit word).
For PIAT Classification Spaces representing 16 and 32 bits (0 to 65535 and 0 to 4294967295 respectively), the number of Classification Space Families increases in the same manner.
FIG. 55 shows the PIAT Classification Space for the numbers a between 0 and 65535, which would represent a 16-bit word. For 16 bits, the number of Classification Space Families increases to 41. The curve represents a pseudo-Gaussian curve of the 16-bit PIAT Classification Space.
Mathematical Boundaries FIG. 56 shows a summary of the mathematical boundaries with conventional techniques in relation to the PIAT Protocol.
The PIAT Algorithm can be used to find the value of a polynomial P(X)at a pointx0(P(x0)), the derivatives of the polynomial P(X)at the pointx0(P'(x0),...,P"(x0)) p(n)( ) and the Taylor coefficients of the polynomial P(X)at that pointx0( The PIAT Algorithm can also be used to perform a change of base of numbers, Euclidean polynomial division or polynomial factorisation.
-131 -The PIAT Algorithm can also be used to approximate roots x'of polynomials P(x')= Oand is consistent with the Newton-Raphson method.
The PIAT Algorithm can be used further to calculate binomial coefficients and other values in combinatorics.
The FIAT Algorithm is consistent with Homer's Scheme and can be used to find the values of Pascal's Triangle.
FIG. 57 shows the mathematical consequences of the PIAT Protocol.
The PIAT Algorithm leads to the PIAT Method (and its inverse), which in turn leads to the network of polynomials, polynomial classification methods, the PIAT Classification Space and Perfect PIAT Couples.
The PIAT Algorithm also leads to the FIAT Square (CdP) which in turn leads to calculating and testing of prime numbers (see below) and also to a method of polynomial factorisation.
Further Properties of the Carré de P/AT (CdP) The following formulae, that can be found in the Formula Index with a numerical example, are useful for this part of the description.
The factorial method for calculating the value of ir: (r+c-1)! it (Formula 3] r c!(r-1)! -132 -The horizontal hockey stick method for calculating the value of,r: r =r1 +r +r [Formula 4] The vertical hockey stick method for calculating the value of,r: r =,r' =r +4' +...+,r +,r [Formula 5] The triangular method for calculating the value of,t: = + [Formula 6] The formula for calculating ir as a function of,r (the cell in the CdP directly above and to the left): [Formula 7] c(r-1) The symmetry rule: lo «= c «= r -* 7tC = r 1 [Formula 8] r c -p The formula for calculating r, where,r is on the PIAT Diagonal (i.e. wheren =7r2'): (2r-2)! (2r-2)! = [Formula 12] (r-1)J(r-1)' [(r-1)! A variant of the vertical hockey stick method: -133 -r [Formula 16] Restricted CdP (CRdP) Referring to FIG.58, for all r E N, there is a Carré Restreirit de PIAT (Restricted Carré de PIAT), denoted CRdPr, the corners of which are uniquely defined by the following four cells of the CdP: (2r,;7r;;7r;';7r).
It will be observed that the cells in the first column c =0 (i.e. ir, where r = 1,2,3,...) and the cells in the first rowr = 1 (i.e. wherec = 0,1,2,...) do not form part of the CRdP.
The total sum of all of the values r in the CRdPr, denoted CR dPJ, can be found from one of the cells ir on the PIAT Diagonal (the set of cells in the form,r1 where a E NU{0}) according to the following calculation: ICRdPJ r -2r=(1_1)_2r=(2_2rJ21)f_2r.
r r+l r!(r+1-1)! r!r! (rI)2 The cell is indicated in a dotted box in FIG. 58.
The Dénombrement (number) of cells z contained in a CRdPr, denoted DCRdP, can be calculated as follows: -134 - 2 2 (r-1+2-1) (r-2+2--1)! r! (r-1) D -it ÷,r -+ -+ CRdP, r-I r-2 2!(r-1-1)! 2!(r-2-1) 2!(r-2)! 2!(r-3) = r(r-1)(r-1Xr.-2) 1(2 _r+r2_2r_r+2) =(2r2_4r+2)=r2_2r+1=(r_1)2 ThUS,DCRdP =(r-1)2.
The cells 7T and,r are indicated by grey boxes in FIG. 58.
Referring to FIG. 59, a numerical example of calculating ICRdPL and DCRdP is shown for CRdP3. The cells {,t4,,r,,r,,r}making up the CRdP3 are indicated in grey boxes in FIG. 59.
To calculate I CRdP3 using the above formula: r=3-*ICRdPI3 =ir -2x3=20-6=14, Or: ICRdPI (2r)!(2x3)./66!66x5x4 120 (r!)2 (3!)2 (3!)2 3 x 2 xl 6 This can be verified by inspection as: ICRdPI3 =,r +ir+ir +,r =2+3+3+6=14.
To calculate DCRdP using the above formula: DCR,,=I+2=7r+7r=3+1=4,or: DcRd)=(r_1)2=(3_1)2=22=4.
-135 -This can be verified by inspection since the cardinality of, or number of elements in, the set {7r,2r,2r,2r}is 4.
Triangle de P/AT (TdP) FIG. 60 shows the Triangle de PIAT (PIAT Triangle), denoted TdP.
For all r N, there exists a triangle that is uniquely defined by the following three corner points: (,r,;,rrr_l; yr2r_I).
As with the CRdP, it will be observed that the cells in the first column c = 0 (i.e. 7r, where r = 1,2,3,...) and the cells in the first row r = 1 (i.e. T, where c 0,1,2,...) do not form part of the TdP.
The total sum of all of the values in the TdPr, denoted I TdP, can be found from the value ir1 on the PIAT Diagonal according to the following calculation: ITdPI r = (r÷1-i-r-1)! = (2r)!2 (2r)!2r r r!(r+1-1)! r!r! (rI)2 There also exists for all r E N a Triangle hors Triangle de PIAT (Complementary PIAT Triangle), denoted ThTdPr. The TdTdPr is uniquely defined by the corner points (r,';it;r;') and is the complement of the TdP within the CdPr. The total sum of all the values,rc in the ThTdPr can be obtained by the following calculation: IThTdPI =JCRdPI -ITdPJ = (2r).' 2rI(2F -2 = 2' -2r.
ICRaPI, TdPl -136 -The Dénombrement (number) of cells contained in the TdPr can be calculated according to the following formula: D -rx(r-1) -2 TdF --2rr_i.
The number of cells 7T contained in the Complementary PIAT Triangle, ThTdPr, can be found by: = -(;z*1+ç.2) ar-I = Dp, The sum of the values,rc on the hypotenuse of the TdPr (and also of the ThTdPr), denoted HTdP, can be obtained from Pascal's Line which can be found within the CdP, for which the sum of all of the values on any liner of Pascal's Triangle is 2', according to the formula: HTd, =2'2.
The justification for the subtrahend in this expression is because, by definition, the values r =1 and rç = 1(see FIG. 60) both lie on Pascal's Line, but do not form part of the TdP or the hypotenuse of the TdP.
FIG. 61 shows a numerical example of how these formulae can be used to calculate various values associated with the TdP3.
The total sum of the values rwithin the TdP3 can be calculated as: r=3-ITdPI3 =r -2 =20-8=12, or: -137 -ITdPI3 (2r) (2x3)!820812 This can also be verified by inspection as: ITd113= +r+'r =3+6+312.
The number of cells in the TdP3 can be caicuiated as: 3x(3-1) 3x2 DTdp= 2 2 TdP3 -r2 -This can also be verified by inspection since the cardinality of, or number of elements in, the set {r,r;,,r:}is 3.
The sum of the values on the hypotenuse of TdP3 can be calculated as: HT.jJ, =2'-2=2-2=8-2=6.
This can be verified by visual inspection as: HTdp =r+r =3÷36.
Divisibility Criterion It is possible to determine whether or not a prime numberc E P is a factor of r using the CdP. For all(,rc, r,c) E N, c is a factor of r iffr is not a factor of,r and c is not a factor of r iffr is a factor of,rc: f(c)div(r) (r)-div(ff) wherec «= r -1 { (c)-,div(r) (r)div(,t) where c «= r -1 -138 -If r = 15, then we can find the prime factors, CE P, of r as follows.
2-idiv(15) r 15 15 c = 5 E = 11628 = 775.2 N l5div(r5) e Sdiv(15) r 15 15 r 15 15 C11EP_--70=29716OEN15djv(9T)11_idjv(15) r 15 15 r 15 15 The only values of c e P for which (15)-div(r) are c =3 and c = 5 and so 3 and 5 are the sole prime factors of 15. It is also observed that since 15 has prime factors it is not itself a prime number.
It is interesting to note that when c = 1: c=1E P-*-===JEN15div(7T5)1_idjv(15) r 15 15 This leads to a contradiction since 1 is clearly a divisor, and hence a factor, of 15.
The only possible conclusion of this is that I is not a prime number, which is in accordance with the modern definition of a prime number which does not consider unity to be a prime number.
General Criterion of Primality -139 -As the reader will no doubt be aware, a prime number is a natural number {1,2,3,...} which is divisible only by itself and unity. Prime numbers are indicated herein in set notation as r e P, where P is the set of all prime numbers.
For example, seven is a prime number (7 P) since it is only divisible by one and itself (seven). Ten is not a prime number because, although it is divisible by one and ten, it is also divisible by two and five, both of which are prime numbers. Indeed, the number ten can be written as a product of prime numbers as: 10 = 2 x 5. This expression is called a prime factorisation of the number ten.
It is possible to write a larger number, such as twenty, as a product of natural numbers as, for example: 20 4 x 5 or2O 2 x 10. However, neither of these is a prime factorisation since four and ten are not prime numbers. The number twenty can be prime-factorised as: 20= 2 x 2 x 5= 22 x 5.
FIG. 62 shows a system for cyclic PIAT Encryption which makes use of prime numbers. An initial data sequence, typically a binary sequence, is optimised under the optimisation heuristic. This defines an ideal Perfect PIAT PolynornialP(X)r. The optimisation heuristic allows the binary sequence to be divided into a set of coefficients realise optimal recovery of the data under the PIAT Protocol, particularly the Inverse PIAT Method.
All of the polynomialsP(X) that are calculated under the Inverse PIAT Method are coded/encrypted by the XOR operator using prime numbers. These prime numbers result from the sequence of prime numbers (see below). The selection of prime numbers is defined by a private key generated by a random number generator, which -140 -could be a p-RNG (pseudo random number generator) or a q-RNG (quantum random number generator).
The temporary sequence represents a new sequence to compress via the concatenation of n initial polynomials. Compression and encryption are cyclic. The final index memorises the value of r for the decompression phase at each compression cycle.
The final sequence is defined by the final polynomial(s) that cannot be compressed further by the system in the sense that the size (in octets) of the final polynomial(s) is slightly less than or equal to that of the index.
In general, prime numbers and prime factorisation are important in information technology, most notably in cryptography. For example, the well-known RSA algorithm uses, as a moduius for generating a public and private key, n = p q where p and q are both large prime numbers. The RSA algorithm relies, in part, upon the difficulty of factorising the large number n,i.e. the difficulty of finding p and q given n.
For all prime numbers, r P, it can be shown that all of the values z in the r° PIAT Triangle, TdPr, are divisible byr. Mathematically, this can be written as: rP,,r ETdPr rfrr, whereaIbJkENs.t.b=k.a.
All values r on the r line of the TdPr, where 0 < c «= r + land r P, are divisible (r+c-1)! byr. Since,r,. , ,then: c!r-1)! r+i-i! r! . . . . c =1 2Tr = / = = r,which is clearly divisible byr l!(r-1)! (r-1)! -141 -ri -(r+2-1)! (r+1) -(r+iXrXr-i) ((r+lXr_1).J which is --2!(r-1)! 2!(r-1) 2(r-1) -L 2(r-1)! also clearly divisible by r c-3--*,r, -(r+3-1)! (r+2)! -(r+2Xr+IXrXr-1)! ((r+2Xr+lXr-1)ñ -3!(r -1)! -3!(r -1)! -6(r -1)! = r 6(r -1)! J which is again clearly divisible byr.
It is clear that all values ir from c = ito c = r -1 on the line rare divisible by r.
If r P, then it can also be shown that all values,rcon the previous liner =(r-l)of the TdPr are also divisible byr, for all values of c satisfying the inequality 1 <c «= r-i: (r-1+i-1)! -(r-1)! =(r-i), which is clearly not divisible byr.
(1)!(r-i-l)!(r-2)! r21 = (r -1 + 2-1)! (r)! = r(r -1) = r -1)} which is clearly divisible (2)!(r-2)! (2)(r-2)! 2 2 by r.
It is clear that all values of,r from c = 2 to c = r -ion the rowr -1 are divisible byr.
If r F, then it can also be shown that all values r on the liner = (r -2)are also divisible by r, for all values of c satisfying the inequality: 2 <c «= r -1: (r-2+1--1)! (r-2)! =r-2 which is clearly not divisible byr.
r-2 = (1)!( -2-1)! (i)!(r -3)! 2 (r-2+2-1)! (r-1)! (r-1)(r-2) which is clearly not divisible r2= (2)!(r-2-1)!2!(r-3)! 2 by r.
-142 - 3 (r-2+3-1)! (r)! r(r-1)(r-2) f(r-1)(r-2fj 7r = = = = rs, which is r-2 (3)!(r-2-1)! (3)!(r-3)! 3! I. 6 J clearly divisible byr.
It is clear that all values of,r from c = 3 to c = r -1 on the row r -2 are divisible byr.
In general, it can be shown that if r E P,then all valuesiron the liner =(r-k), wherek «= c <rare also divisible byr, for all values of c satisfying the inequality: k <c «= r -1: (r-k+c-1)!(r-k+c-1)x(r-k+c-2)x...x(r-/c) r-k -(c)!(r-k-1)! c! lfO<k<c<r,thenc-k-1»=Oandso r-k+c---1»=r. Thus, there is alwaysa value of ron the numerator of each k* There results a triangular construction, TdPr, which is made up of values a, all of which are divisible by r, where 0 <c < r -1.
However, if each of the values,r in the TdPr is divisible by r, then the sum of those values is also divisible byr (i.e. if AIR k1 s.t.B = k1 A and AjC s.t.C = k2 A then (B + C) = A(k1 + k2), which is clearly also divisible by A).
Thus, the General Criterion of Primality can also be expressed by means of a summation of the values ir in the TdPr, denoted I TdJ, as follows: * Vr P, rlITdPrI ITdPrI 0(mod r) -r divides the sum of the values in the TdPr, or the sum of the values, in the TdP. is zero (mod r); -143 - * Vr P,ITdPPI = -2' E O(modr)-r divides -2', orir1 -2' is zero (modr); * Vr E -2')r 2r)' _2'Jr = r = e(where (r.) _________ all,rin TdP e E N) -division of any of the equivalent expressions for finding ITdPL, byr gives a natural numbere(and no remainder).
This can be verified for r = 7 E P by checking that 7 E P ()j = e, IT11I,xr wheree EN: = k=l vk 7 k=1 ____ vI 7 7 7 7 7 7 7 k=2 (r;2+1) = i) = + + + + = 131 v=2 v=2 7 7 7 7 7 7 k3 ____ k=4 ____ k=5 ____ k=6 _____ k{1...6} ->245+131+63+25+7+1 =472=e N. -144 -Thus, seven is a prime number.
The above summation calculation could alternatively also be determined as follows: (+1 -2)T' 3432-128 =472 = e EN, where r1 can be calculated by the factorial, vertical or horizontal hockey stick or triangular calculation methods, or simply by visual inspection of the CdP1.
These techniques can also be used to show that the number fifteen (which can be prime-factorised asl5 =3x5) is not a prime number.
Recall that r E P > = e, where e E N. kI v-k r If r 15, then we need to compute: s-( v) 2t; kI > + j2 +L+ 15, 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
--
-45.33 -775.2.34479.33 -130750.4 -643846.66 k_i ____ + + + + !L + -2 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
----
-37.33 -158.69 -57l.2.1800.8.33I6I.33 7627I.06.166409,6 -346680.66.693373.33 ___ + + + + + + + + ,i2 + + 15 15 15 15 15 15 15 15 15 15 15 15 15 15
---------
30.33 -12I.03 4I2.53 -I237.6.3359.2 -1959333.43109.73 -90138.53 -180277.96 -346689.66 -643046.66 9=4)Is=4+l) iL + + ! _ 15 15 15 15 15 15 15 15 15 15 15 15
---
=291.2 -825.06 -2121.6 5038.0 =11197.33 =23514.4 =47029.8 -145 -r9,r k=5 _____!LL + !LL + nt + __j_i_ + -+-+ =s 15 15 15 15 15 15 15 15 15 15 15 15 ---= - - =200.2 =533.86 =1296.53 =2917.2 =6158.53 =12317.06 15-1 k=6 >(6+1) ÷ 9. + ,8 ÷ v=6 15 v=6 15 15 15 15 15 15 15 15 15 15
--_J
=333.66 =762.66 =1620.66 =3241.33 if11 + 12 13 14 s-() _*.(j) _.5L if0 k=7 ________ v=7 15 v=7 15 15 15 15 15 15 15 15 15
IS-I
k=8 ___ v=8 15 v=8 15 15 15 15 15 15 15 15
IS-I
k=9 ___ v=9 15 y9 15 15 15 15 15 15 15 Is-I k=10 > (if1o+1)_J) v=l0 15 15 15 15 15 15 15 15-1 k=11 _____ v=II 15 v=11 15 15 15 15 15 15-1 k=12 > (n12+1)_() ÷÷ v12 15 v=12 15 15 15 15 15-1 k=13 (if13+1) 4j) v=13 15 15 15 15 15-I k=14 (15l4+l) j) y=4 15 v=14 Vk{1...14} 15 225 1695 8625 33755 109845 313335 812185 + + + + + 15 15 15 15 15 15 15 1958253 4456035 9657245 20058195 40116585 77558759 + + + + + + 15 15 15 15 15 -155084752 10338983.47 N -146 -is-i (is-i sinceI oJNir__l5P.
k=iv=k 15 This is a relatively lengthy calculation and it can be significantly quicker to compute by recalling that: r E p (ir -2' )r = e, where e E N. =ITdPI, Calculating: _2i5)151 = 155117520-32768 1O338983.47 EN. Thus,15EP.
The General Criterion of Primality can also be expressed by means of products: r-i r-l 7r-i r-I (r_i ( v) r-I I 1IJ('_k+I) i [TI VrEP,flI flvrk+i flvk) k=1v=k e, whereeEP.
k=i v=k r) -(r-k) -r 7-1 fikk+l)J Forr = 7, we need to compute the vaJue of[J v=k k=I 7 7-1 6 u(+) u(;) =12545280 k1 v=1 -v=1 __________________________________ > 7(7i) 76 76 7-1 6 fl(;_2+1) fl(r) 7tx,rx,rx,rx,r k2 v=2 -v=2 _____________________________ 7(72) -75 75 7-i 6 fl(3*i) [j(r;) r x2r xir = 27000 k3 v=3 v3 ___________________ -7(7_3) -74 -74 7-i 6 1I(;_4+l) ri(:) ____________ k=4 4 -y4 X X 7(7_4) -3 73 = 480 -147 -jill (;_+) f*J (sr;) x 6 k=5 v=5 -v=5 -2T3 7t3 -12 7(75) -72 -72 -f1l(;_6+I) fi(;) 6 k=6 v=6 = v=6 =-.2.-:1 7(76) 71 7 k{i...6) >12545280x 1026432x 27000x480x12x1 2002611886306099200000 EN ThUS,7EP.
Tchebyche ft's Theorem Tchebycheff's Theorem was formulated by postulated by the French mathematician Joseph Bertrand in 1845 and proved by the Russian mathematician Pafnuty Tchebycheff in 1850. It states that if n e N,n >3, then there is at least one prime number between n and 2(n -i). The proof of this theorem is omitted herein.
The PIAT Theorem The PIAT Theorem states that for all r E N, with r > 3, there is always at least one prime number p. between rand 2r -2 whose associated PIAT Triangle will always intersect with the PIAT Triangle associated with the previous prime number p._1.
Reference is made to FIG. 63 which shows the CdP1 and various PIAT Triangles TdPs associated with the prime numbers 3,5,7,11,13 E P. According to Tchebycheffs Theorem, if r = 5, then between r = 5 and 2r -2 2 x 5-2 = 8, there exists at least one prime number. 7 is such a prime number and, as can be seen from FIG. 63, its PIAT Triangle, TdP7, intersects the PIAT Triangle, -148 -TdP5, associated with the preceding prime number, 5. The intersection includes the celis,r,4,4.
Again, according to Tchebycheffs Theorem, if r = 7, then between r = 7 and 2r-2=2x7---2=14-2=12,thereexistsatleastoneprimenumber. 11 issucha prime number and, as can be seen from FIG. 63, its FIAT Triangle, TdP11, intersects the PIAT Triangle, TdP7, associated with the preceding prime number, 7. The intersection includes the cells The consequence of this is that if r E P is a prime number that is strictly greater than 3, then between rand 2r -2 there exists at least one prime number p whose associated PIAT Triangle, TdP, always intersects the previous FIAT Triangle TdPr associated with r. In particular, any cell on the PIAT Diagonal (i.e. cells in the form z) for which r e P (i.e. in the form ir) is necessarily in the intersection of its associated FIAT Triangle TdPr and the following Prime PIAT Triangle.
The P/AT Diagonal (DdP) With reference to FIG. 64, for all r E N, there exists a FIAT Diagonal (DdPr) defined by an infinite number of points such that: Dc!P, where r-1 = (r+r-1-1)! (2r-2)! = (2r-2)! [Formula 12] r (r-1)!(r-1)! (r-1)!(r--1)! [(r-1)ft The Sequence of Prime Numbers According to the General Criterion of Primality and the PIAT Theorem, for all numbers r E N, where r > 3 the prime-factorisation of all of the values 7r on the FIAT -149 -Diagonal, DdP, will have, as a prime factor, the next prime number immediately greater thanr.
Reference is made to FIG. 65. Forr =5 e P, the prime-factorisation of ir, which is on DdP is equal to: r 70 = 2 x 5 x 7. It follows from this that the next prime number immediately above five is seven.
Forr = 6 P, the prime-factorisation of,r., which is on DdP is equal to: r = 252 = 22 x 32 7. It follows from this that the next prime number immediately above six is seven.
Forr = 7 P, the prime-factorisation of,r, which is also on DdP is equal to: r = 924 = 22 x 3 x 7 xli. It follows from this that the next prime number immediately above seven is eleven.
The remarkable consequence of this is that iteration of this process establishes the sequence of prime numbers, one-by-one by the prime-factorisation of all the cells r' (where p E P) on the DdP.
The PIAT Theorem, thus, gives specific values for which prime-factorisation should be calculated in order to find the next prime number. This is tantamount to saying that given any prime number p, E P, it is possible to fine the next prime number p÷j E Pby (P.+P-i-i)! (2p.-2)! calculating the prime factors of ir" = = (p, -1)! (p, -I)! {( - -150 -As the value of p1 increases, this calculation inevitably requires significantly more computational power. However, it pinpoints the special natural numbers (those on the DdP) that should be prime-factorised to find higher prime numbers. Given the amount of processing time and power that are wasted on trying to prime-factorise numbers that do not lead to higher prime numbers, this approach provides a significantly more efficient method of finding high prime numbers.
At present, the highest known prime number isp1 = 243112609 -1. Given enough computing power, the next prime number p.1 E Pcan readily be found by computing: I-i i' 43112609 43112600 L L = [((243112609 and then prime-factorising the result. Both p1 and p..1 are prime factors of,r2431121 FIG. 66 shows how the values r' , r e Nand r >3, on the DdP can be used to calculate subsequent prime numbers. For example, it can be seen that when r = 7 = 2 x 3 x 7 x 11, which gives the next prime number as seven and whenr=11, ,r =22x11x13x17x19,whichgivesthenextprimenumberaseleven The Restricted Criterion of Primality Theorem FIG. 67 shows the Restricted Criterion of Primality Theorem. For all prime numbersr E P, -1and,r -lare divisible byr2: r-l 1 rEP 2 = =e, whereeEN. r r
-151 -This can be seen by starting with writing,r using the horizontal hockey stick method: = = + + ... + + ir, we can write: = = + + ... + + And in particular, [itr° + + ...+ + itJ_i= + ...+ + is divisible byrifr E P. This is because are all contained in TdPr and, according to the General Criterion of Primality, all values ir in the associated TdPI. are divisible byrwhenrEP.
Thus,'1 =e,whereeENifrEP. r r-1 1
In conclusion, whenr2I,r -1, i.e. when =ewhereeE N, thenrEP.
For example, taking values of r = {5,...,1 i}: iz'-l,r-1 126-i 125 r=5-6 = =-=5EN5EP r2 52 25 25 25 r2 62 36 36 it'-1 ir-1 ir6! 1716-1 1715 r=7-* r+ + = 8 = =35EN=7P r2 72 49 49 49 -152 -r=8-;çr;1I i a::: -1: -1 = 6435-1 =100.5N8P r2 82 64 64 r2 92 81 81 r2 102 100 100 r-l 1 11-1 1 10)11 r=ll_*1_1=lth1+1 =12 =jw =2915EN=11EP.
r2 112 121 121 This process can be repeated for increasing values ofrto find high prime numbers or to verify whether a candidate prime number is indeed a prime number.
Ferm at's Little Theorem Fermat's Little Theorem is named after the French mathematician Pierre de Fermat who stated it, without proof, in 1640. It was later proved by the German mathematician Gottfried Leibniz some time between 1640 and 1683.
Given a prime numberr E P, then for every natural number, a, we have the congruence: a' a(mod r). For example, if r 7 and a 4, then ar =47 =16384=(2340x7+4. =rJ a
We can use Fermat's Little Theorem to test whether an integerr is prime. If there is indeed an integera such thatar is not equal toa(modr), then thatr is not prime. The problem is that there are numbers, called "Carmichael numbers", named after the American mathematician Robert Carmichael, which satisfy Fermat's Little Theorem, but which are not prime (341, 561, 645, 1105, 1387, ...). Thus, even if the -153 -numberr conforms to Fermat's Little Theorem, it may still not be prime (the converse of Fermat's Little Theorem is false). This test can prove thatr is not prime (i.e. if it does not satisfy Fermat's Little Theorem), but not thatr is prime.
The PIAT Primality Test, derived from the General Criterion of Primality is valid because it applies to all the values r which form the PIAT Triangle, TdPr: -0(modr).
The Restricted Criterion of Primality (opposite sides of TdPr) together with the Primality test based on Fermat's Little Theorem (hypotenuse of TdPr) are based on only some of the values of the PIAT Triangle, TdPr, which makes these tests necessary but not sufficient.
The Carmichael numbers do not satisfy the test under the Criterion of Restricted Primality. For example, with r = 341, ,r and r are the only two values that are not divisible by 341. This implies, according to the Criterion of Restricted Primality, that 341 is not a prime number and that 11 and 31 are factors of 341: -*i4, 5*19*23*29.31.43.173.343.347.349.351 5*19.23.29.43.173.343.347.349.351 N 341 -31*11 -11 341-div(r1) I ldiv(341) 341-I 34I+I N I ldiv(341) Right of Primality With reference to FIG. 68, for all r E N, there is a Right of Primality ("Droite de Primalité") denoted DdPM defined by an infinite number of points such that: -154 -DdPM = {ir,4ir..ir}, wherer, = ,r. By the rules of symmetry, there is a second Right of Primality DdPM', where DdPM' {ir,2r,7r. . .ir}
Properties of the Carré de P/AT (Summary)
FIG. 69 shows a summary of the further remarkable properties of the CdP that have been discussed above, including: * Sequence of Prime Numbers * General Criterion of Primality * Restricted Criterion of Primality * The PIAT Theorem * DCRdP 1rI + v-2 DTJP + DThdp * Intersection of two PIAT Triangles * The PIAT Diagonal, DdP * Rights of Primality, DdPM and DdPM' * Vertical and Horizontal Hockey Stick Methods * Compatibility with Tchebycheffs Theorem * Pascal's Line Various modifications will be apparent to those skilled in the art.
-155 -Formula Index Formula 1 -The value r, indicated by a row rand column c in the Carré de PIAT: * Formula -n * Numerical Example -n = 1716 Formula 2 -Initial values of,r,c in CdP1: * Formula-r,°=7r=1 * Numerical Example -ir = = 1 Formula 3-Calculating the value of r according to the factorial method: (r+c-1)! * Formula -,r r c!(r-1)! * Numerical Example -ir6 = (8+6-1)! 1L.. 22 x3xllxl3 =1716 617! 6!7! Formula 4 -Calculating the value of according to the horizontal hockey stick method: * Formula -r =ir1 =r +7t +...+r +r * Numerical Example - 0 +,r =4 Formula 5 -Calculating the value of,r according to the vertical hockey stick method: -156 - * Formula -r =t: =ir +r +...+,r +,r * Numerical Example -4 = = 4+4 +4+4 ÷4 = 126 Formula 6 -Calculating the value of,r,c according to the triangular method: * Formula -+ * Numerical Example -4 = 4+4 21+35 =56 Formula 7 -Calculating the value of r as a function of,rj': (r+c-2)(r+c---1) * Formula-,r,. [7rr-i]<[ I c(r-1) * Numerical Example - :=i::hjxi(8+66)j [,r]x[12>3J=462x!=1716 Formula 8-Rule of symmetry amongst,r: * Formula-g=,r= r 1 «= r «= c = 2rj1 IO<6<8=,r' * Numerical Example -4 = 4 =1716 <7 «= 7 Formula 9 -Algebraic implication of Formula 7: =i::jxi c2Xr+c1)1 (r-1)x(c)x[] * Formula -c(r-1) =(r+c-2)(r+c-1)x['rJ -157 -Ir=8 I(8_i)(6)[] =(8+6-2)(8+6-i)[ir] * Numerical Example -f c=6 J7x6x1716=12x13x462=72072 r Formula 10 -Formula for calculating,r with an isolated quantity-:
C
= (r+c-i)! (r+c-I)(r+c-2)...(r)(r--i)!1 r c!(r-i)! * Formula c! c (c-i)! * Numerical Example -Ir = 8 = . (8+6-i)(8 +6 -2)(8 +6-3)(8 +6-4)(8 +6_5) (6-i)! =I 6 4 8 =--x1287=l7l6 Formula 11 -Criterion for the divisibility of,r byras a function of c: I(c)div(r) -(r)-idiv(,r) / c «= r -1 * Formula 1(c)div(r) (r)div()I c «= r -1 fr =8)792() lc=5 (8)
* Numerical Example
-fr=9)165() lc=3 (9) Formula 12 -Calculating where r lies on the PIAT Diagonal (DdP): * Formula r-l (2r-2)! (2r-2)! r (r-1)!(r-i)! [(r-ij] 7 (2x7-2)! * Numerical Example -r7 = (7-i)!(7 -i-924 -158 -Formula 13 -Relationship between a value,r on the PIAT Diagonal (DdP) and,r': r-(2r-2)! r-2 (2r-3)! * Formula -,r =2ff =2 (r-1)!(r-1)! r (r-1)!(r-2)! 6 5 (x-).
* Numerical Example -= 2,r7 2 = 924 (7--2)! Formula 14 -Formula forz presented in Formula 9: (r+c-3)! * Formula -it = (c-1)!(r-2)! 6-1 (8+6-3)! * Numerical Example -; = = 462 -(6-1)1(8-2)! Formula 15 -Variant of Formula 4 (horizontal relationship): * Formula -,r÷ =r' * NumericalExampIe{r3=2r+i =ir =20 c=3 v=O Formula 16-Variant of Formula 5 (vertical relationship): * Formula -,r * Numerical Example -,r = = +,z +,r +4 -4-pr = 126 Formula 17 -Direct Criterion of Primality: -159 - * Formula-e='1/eENand e=/eEN 7-I r71-176-1 * Numerical Example -+ 35 35 e N -7 E P 72 49 Formula 18 -Direct Criterion of Primality based upon a variant of Formula 8 (symmetry): -+I r+1 1 * Formula-e= r -/eENande= r 2 /eEN r r r-1 1716-1 * NumericalExample-= =35-*35N--*7P 72 49 Formula 19-Proof by induction (controlling the divisibility ofrbyrwhenris a prime number: * Formula - (r-k+c -1)! = (r-k+c-1)x(r-/c-i-c-2)x(...)x(r-k) r-k (r-k-1)!(c)! c! 2 (r-1+2 -1)! (r)! r(r-1) (r-1) * Numerical Example-it = = ______ _____ ____ (r-1-1)!(2)! (r-2)!2 2 2 Formula 20 -Calculating the value of the hypotenuse HTdp of a PIAT Triangle: * Formula -2' = * Numerical Example - 2 = = it ÷it +it +it +it + it +it =128 -160 -Formula 21 -Criterion of Primality by the hypotenuse of a PIAT Triangle (Fermat's Little Theorem): _______ 2r_2 (1+1)r_2 * Formula-e= v0 = = /eEN-)reP r r r * Numerical Example - _______ 2-2 1+1 -2 = =( =1818EN7EP 7 7 7 Formula 22 -Initial PIAT Polynomial * Formula -P(X) = aX = acXc + + + a1X + a0 * Numerical Example -P(X) 6X4 + 5X3 + 5X2 + 3X + 1 Formula 23-Euclidean Division of P(X)by(X-x0): * Formula-P(X) = (X -x0)Q(X) + P(x0) ,deg(P(xo)) < deg(X -x0) deg(Q(X)) < deg(P(X)) A deg(Q(X)) = n-i * Numerical Example -P(X) = 6X4 + 5X3 + 5X2 + 3X +1 (X -1)(6X3 +1 1X2 +1 6X +19) +20 Formula 24 -The Homer Method (successive Euclidean division of P(X)by(X -x0): * Formula-x0 i-P(x0)= ax +a1x' +...+a2x +a1x0 +a0 x0 i-+ P(x0)=((..(a x0 +aJx0 +...a2)x0 +a1)0 +a0 -161 -x i-P(X) a ar_i a_2 a0 x0 axo (axo + at_i)xo ____ Q1(X) +R1 a axo +a_i (acxo +a_i)xo ÷aC_2 ____ P(x) _____ axo ((axo+a_1)+axo)xo ____ _____ Q2(X) + R2 a (axo + a_j)+ axo +a1)+ax0)x0 + ((ax0 + a_1)x0 + a2) I... __ ______ _______ __ __ Q,(X) +R, a4,
C
x0 i-P(x0):= =4-P"(x0) dr" 4Li! v=O * Numerical Example -P(X)=6X4+5X3+5X2+3X÷1 I P(X) 20 =6X3+11X2+16X+19-1- (X-1)' (X-1)1 P(X) 52 20 =6X2+17X+33+ + I(X-1)2 (X-1)' (X-1)' 1 P(X) 56 _____ _____ =6X-i-23+_____ 52 20 + + (X-1)3 (X-1)' (X-1)2 (X-1)3 P(X) 6 29 56 52 20 [ -i) (X -1)' (X -1)2 (X -1) (X --+ + + + P(X) = ((x -IX(x -1X(x -1X(x -1)6 + 29)+ 56)+ 52)+ 20)

Claims (16)

  1. -162 -CLAIMS1. A method of compressing an initial data sequence (P(X)r), comprising: non-entropically compressing the initial data sequence (P(X)r) to obtain a compressed data sequence (P(X)0); and generating an index (r) indicating the level of compression of the compressed data sequence whereby the initial data sequence (P(x),.) can be recovered by applying the index (r)to the compressed data sequence (P(X)0).
  2. 2. A method of compressing an initial data sequence (P(X)), comprising: compressing the initial data sequence (P(X)r) to obtain a compressed data sequence( P(X)0); and generating an index (r) indicating the level of compression of the compressed data sequence (P(X)0), the index (r) being separable from the compressed data sequence (P(X)0), whereby the initial data sequence (P(X),.) can be recovered by applying the separated index (r) to the compressed data sequence (P(X)0).
  3. 3. A method according to claim 1 or 2, wherein the compression comprises: dividing the initial data sequence (P(X)r) into an ordered set of coefficients each coefficient being a sub-sequence of the initial data sequence (P(X)); -163 -reducing the magnitude of at least some of the coefficients to provide a reduced ordered set of coefficients ({a,a_1,.. . ,a,a0)), the reduced ordered set of coefficients defining the compressed data sequence( P(x)0).
  4. 4. A method according to claim 3, wherein the value of the index (r) is equal to the value of the division of: as numerator, the difference between: the value of the second-smallest coefficient (2) in the ordered set, and the value of the second-smallest coefficient (A.1) in the ordered set modulo the value of smallest coefficient in the ordered set (A.); and as denominator, the value of smallest coefficient in the ordered set (2).
  5. 5. A method according to claim 3 or 4, wherein the coefficients in the ordered set are arranged in magnitude order, and wherein the compression comprises a coefficient reduction cycle of: subtracting a multiple (x0) of the second-largest coefficient (2k) from the largest coefficient (2) to provide the largest coefficient (a0) in the reduced ordered set; subtracting a multiple (x0) of a coefficient (%) from its immediately larger coefficient (2_) to provide the corresponding immediately larger coefficient (a11) in the reduced ordered set for all other coefficients in the ordered set, except for the smallest coefficient (2); and providing the smallest coefficient (at) in the reduced ordered set with the same value as the smallest coefficient () in the ordered set.
    -164 -
  6. 6. A method according to claim 5, wherein the compression comprises multiple coefficient reduction cycles, the magnitude of at least some of the coefficients being reduced during each cycle.
  7. 7. A method according to claim 5 or 6, wherein the value of the multiple (x0) is unity and wherein the ordered set of coefficients ({2, 2c_,... ,a}) and the reduced ordered set of coefficients ({a,a_1,,..,a1,a0}) each comprise only two ordered coefficients ({2, A, }, {a1, a0
  8. 8. A method according to claim 3 or 4, wherein the compression comprises calculating the reduced ordered set of coefficients ({a, a_1,. . . , a1, a0}) directly from the ordered set of coefficients ({2, , A1, 2}) and using values (z) located in the Cane de PIAT (CdP).
  9. 9. A method according to any preceding claim, comprising receiving the initial data sequence from a communications network or retrieving the initial data sequence from a memory.
  10. 10. A method according to any preceding claim, comprising transmitting the compressed data sequence and/or the index to a communications network or storing the compressed data sequence and/or the index in a memory, preferably comprising separating the index from the compressed data before transmission or storage.
  11. 11. A method according to any preceding claim, wherein the initial and compressed data sequences are binary data sequences.-165 -
  12. 12. A method according to any preceding claim, further comprising compressing the index (r), preferably using entropy encoding or compression under the PIAT Protocol.
  13. 13. A computer program comprising computer-readable instructions which, when executed, cause a data-processing apparatus to perform a method according to any preceding claim, a computer-readable medium comprising the computer program or a signal comprising the computer program.
  14. 14. Apparatus configured to compress an initial data sequence (P(X)r), the apparatus comprising a processor arranged to: compress the initial data sequence (P(X)r) to obtain a compressed data sequence(P(X)0); and generate an index (r) indicating the level of compression of the compressed data sequence (P(X)0), the index (r) being separable from the compressed data sequence (P(X)0), whereby the initial data sequence (P(X)r) can be recovered by applying the separated index (r) to the compressed data sequence (P(X)0)
  15. 15. Apparatus configured to compress an initial data sequence (P(X)r), the apparatus comprising a processor arranged to: non-entropically compress the initial data sequence (P(X)r)tO obtain a compressed data sequence (P(X)0); and generate an index (r) indicating the level of compression of the compressed data sequence (P(X)0), -166 -whereby the initial data sequence (P(X)) can be recovered by applying the index (r) to the compressed data sequence (F(X)0).
  16. 16. A method, apparatus, computer program, computer-readable medium or signal substantially as described herein with reference to Figures 9 to 69.
GB1007798A 2010-05-10 2010-05-10 An algorithm for cyclic compression and decompression of a data sequence Withdrawn GB2480262A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1007798A GB2480262A (en) 2010-05-10 2010-05-10 An algorithm for cyclic compression and decompression of a data sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1007798A GB2480262A (en) 2010-05-10 2010-05-10 An algorithm for cyclic compression and decompression of a data sequence

Publications (2)

Publication Number Publication Date
GB201007798D0 GB201007798D0 (en) 2010-06-23
GB2480262A true GB2480262A (en) 2011-11-16

Family

ID=42315098

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1007798A Withdrawn GB2480262A (en) 2010-05-10 2010-05-10 An algorithm for cyclic compression and decompression of a data sequence

Country Status (1)

Country Link
GB (1) GB2480262A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019193241A1 (en) * 2018-04-03 2019-10-10 Nokia Technologies Oy Use of band combination index for definition of carrier aggregation configurations

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086684B (en) * 2022-08-22 2022-11-18 中科金勃信(山东)科技有限公司 Image compression method, system and medium based on CRC

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998051035A1 (en) * 1997-05-09 1998-11-12 Neomedia Technologies, Inc. Method and system for accessing electronic resources via machine-readable data on intelligent documents
US20070022217A1 (en) * 2005-07-19 2007-01-25 Ayres Kenneth J Jr Systems, methods, and media for managing an interactive streaming image system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998051035A1 (en) * 1997-05-09 1998-11-12 Neomedia Technologies, Inc. Method and system for accessing electronic resources via machine-readable data on intelligent documents
US20070022217A1 (en) * 2005-07-19 2007-01-25 Ayres Kenneth J Jr Systems, methods, and media for managing an interactive streaming image system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019193241A1 (en) * 2018-04-03 2019-10-10 Nokia Technologies Oy Use of band combination index for definition of carrier aggregation configurations

Also Published As

Publication number Publication date
GB201007798D0 (en) 2010-06-23

Similar Documents

Publication Publication Date Title
EP0337985B1 (en) Computational method and apparatus for finite field multiplication
Pless Introduction to the theory of error-correcting codes
CA2633858C (en) Mixed radix conversion with a priori defined statistical artifacts
Yu et al. Constructions of quadratic bent functions in polynomial forms
CN109640101A (en) Data compression
JPS58161050A (en) Numerical calculation method for computation in definite body
Lenstra Divisors in residue classes
CA2173165C (en) Multiple bit multiplier
Storrier et al. Grotto: Screaming fast (2+ 1)-PC or ℤ2n via (2, 2)-DPFs
Barenghi et al. Evaluating the trade-offs in the hardware design of the ledacrypt encryption functions
GB2480262A (en) An algorithm for cyclic compression and decompression of a data sequence
Flassenberg et al. Sieving in function fields
WO1999004332A1 (en) Composite field multiplicative inverse calculation for elliptic curve cryptography
KR100322739B1 (en) Finite Field Computation Method and Its Apparatus
Wilson A lemma on polynomials modulo pm and applications to coding theory
Ward Weight polarization and divisibility
GB2480261A (en) An algorithm for cyclic compression and decompression of a data sequence
US7539719B2 (en) Method and apparatus for performing multiplication in finite field GF(2n)
GB2480260A (en) An algorithm for compressing and decompressing a data sequence using polynomials
GB2480259A (en) Data sequence encryption using primes generated from random natural numbers
Rajan et al. Quasi-cyclic dyadic codes in the Walsh-Hadamard transform domain
Shum et al. Network coding based on byte-wise circular shift and integer addition
Preethy et al. RNS-based logarithmic adder
CN117592521B (en) Batch coding method for full homomorphic CNN reasoning
Flahive et al. Balancing Cyclic $ R $-ary Gray Codes

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20131017 AND 20131023

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)