## Patent us20030154226 – method and system for processing complex numbers – google patents usd to zmk

The invention provides a method and apparatus for storing complex number data in formats or codes which allow efficient complex number arithmetic operations to be performed and for performing such complex number arithmetic operations. According to one aspect of the invention, a method for coding complex… https://www.google.co.uk/patents/US20030154226?utm_source=gb-gplus-share Patent US20030154226 – Method and system for processing complex numbers

The invention provides a method and apparatus for storing complex number data in formats or codes which allow efficient complex number arithmetic operations to be performed and for performing such complex number arithmetic operations. According to one aspect of the invention, a method for coding complex numbers is provided for use in a data processing system.

In response to receiving an instruction, two data elements representing the real and imaginary parts of a complex number are read. These two elements are then used to generate a single code for the complex number which is stored as a single data element. As a result of this coding, arithmetic operations on complex numbers may be performed on a single data element which contains both real and imaginary data. According to another aspect of the invention, a coprocessor is described. This coprocessor has stored therein data representing sequences of instructions which, when combined with certain unique circuitry also contained therein and executed, cause the coprocessor to perform the above described method and to perform complex number arithmetic operations.

Arithmetic operations involving complex numbers are commonly required in data processing systems used in fields as varied as power system control, underwater acoustics, tomography, laser holography, 3D graphics, navigation, and theoretical physics. These operations may include addition, subtraction, multiplication, division, comparison, logarithms, binomials, potentiating, square roots, cube roots, sine, cosine, hyperbolic functions, polar/cartesian coordinates, and fast fourier transforms, to name a few.

A complex number Z may be represented by a real part Xa and an imaginary part Xb, where Z=Xa+j Xb, and where Xa and Xb are real numbers (positive or negative) and j=(−1){circumflex over ( )}(½) xau usd chart live. Problems related to efficiently performing arithmetic operations arise as the complex number represents a vector rather than a scalar quantity. That is, for each complex variable involved in a given arithmetic operation, two components of the number must be considered, its real and imaginary parts, rather than the one real component that would be involved for each number in an operation involving just real numbers. For example, given two real numbers Xa1 and Xa2, their sum is given by Xa1+Xa2 and their product by Xa1*Xa2. However, for two complex numbers Z1=Xa1+jXb1 and Z2=Xa2+jXb2, their sum and product are given by the more complicated expressions (Xa1+Xa2)+j(Xb1+Xb2) and (Xa1*Xa2−Xb1*Xb2)+j(Xa1*Xb2+Xb1*Xa2), respectively. It is apparent that arithmetic operations involving complex numbers require significantly greater data processing system resources.

In the prior art, methods of packing data and performing specific arithmetic operations on complex numbers have been disclosed. For example, U.S. Pat british *pound exchange rate* today. No. 5,936,872 (Fischer et al.) describes a method and apparatus for storing complex numbers in packed form and performing packed operations thereon to allow for their efficient multiplication. In Fischer, the real and imaginary parts of a complex number are manipulated individually in the performance of the multiplication operation usd eur exchange rate chart. In other words, the real and imaginary parts of the complex number are treated as separate data elements.

There is thus a need for a method and system of more efficiently representing or coding complex numbers and an apparatus for performing arithmetic operations on these coded complex numbers that will improve the efficiency of arithmetic operations involving complex numbers in data processing systems. It is desirable to perform arithmetic operations on complex numbers that are represented by a single data element (i.e. one data element for both the real and imaginary parts).

In accordance with this invention there is provided a method and apparatus for storing complex number data in formats or codes which allow efficient complex number arithmetic operations to be performed and for performing such complex number arithmetic operations. According to one aspect of the invention, a method for coding complex numbers is provided for use in a data processing system. In response to receiving an instruction, two data elements representing the real and imaginary parts of a complex number are read. These two elements are then used to generate a single code for the complex number which is stored as a single data element. As a result of this coding, arithmetic operations on complex numbers may be performed on a single data element which contains both real and imaginary data. According to another aspect of the invention, a coprocessor is described. This coprocessor has stored therein data representing sequences of instructions which, when combined with certain unique circuitry also contained therein and executed, cause the coprocessor to perform the above described method and to perform complex number arithmetic operations.

Here the number 2 code is added to the code of a certain number, X, the digits whereof are generated so that the sum of numbers in the column would equal 2 aud **usd exchange rate** history. At the same time, and due to (1.6), the numbers in each column add up to 2, which forms the carry to zero digit of the sum. As a result, infinite carries are formed, and a zero sum. Consequently, X=−2. Obviously, such a formation algorithm is always executable if theorem conditions are fulfilled. This algorithm results in the number (−2) code of (1.5) type. Consequently, conditions of the lemma are fulfilled and the system is arithmetical. And thus the theorem is proved.

The resulting form of the algorithm’s transcription does not provide a clear understanding of its complexity and specifics, and is inconvenient for practical applications. For this reason it is used only for obtaining another form of recording the algorithm, by constructing a table that describes the bitwise operation within a single digit. This table is complete only if it meets the following two conditions:

Algorithm 2.2 for this bitwise operation in this coding system may have several versions due to the availability of several quasicodes for the resulting digit, S k. In particular, the quasicode may coincide with the positional code if the meanings of partial carries are selected from the {0, 1} set. In a general case, the different quasicode digits acquire values from sets that differ from this one not only by their element values, but also by the cardinal number (the number of elements).

As stated earlier, the result of decompositing is the α h sequence of numbers. Obviously, it is possible to restore the number that was decomposited from this sequence. We are going to refer to this calculation as compositing text editor for windows 10. This operation is the opposite of decompositing and consists in calculating a complex number as a sum or product of certain other known numbers that are elements of decomposition. In this context such representation of a number will be called composition. It should also be noted that in the process of composition the elements of decomposition may be converted or substituted by other elements. That is the essence of composition and we will use this method later on.

According to one aspect of the invention, a method and apparatus for representing and storing complex number data under coding systems which allow efficient arithmetic operations to be performed and for performing such is described. In one embodiment of the invention, complex number data is coded in a manner which allows the data to be stored and manipulated using one data element for both the real and imaginary parts of the complex number rather than two separate data elements.

According to another aspect of the invention, a data processing system generally having a CPU, DRAM, a bus, a PCI bridge, and a complex number coprocessor is described. According to another aspect of the invention, the complex number coprocessor component of the data processing system has stored therein data representing sequences of instructions which, when combined with certain unique circuitry also contained therein and executed, cause the coprocessor to perform the above described method and to perform complex number arithmetic operations. The term data processing system is used herein to refer to any machine for processing data, including the computer system(s) described herein.

Referring to FIG. 1, there is shown a block diagram of an exemplary data processing system 10 according to one embodiment of the invention. The data processing system 10 includes a central processing unit or CPU 20, a storage device such as dynamic random access memory or DRAM 30, a CPU bus 40, a PCI bridge 50, and a complex number coprocessor 60 **e mini msci emerging markets futures**. The coprocessor includes a control unit 70 and an arithmetic unit 80. The CPU 20, DRAM, and coprocessor 60 are coupled by the PCI bridge 50. In addition, a number of user input/output devices, such as a keyboard and a display, may also be coupled to the bus 40. The CPU 20 represents a central processing unit of any type of architecture, such as a CISC, RISC, VLIW, or hybrid architecture stock market trading hours christmas eve. In addition, the CPU 20 could be implemented on one or more chips or circuit boards. The DRAM 30 represents only one or several possible mechanisms for storing data. Other possible storage devices may include read only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, and/or other machine-readable mediums. The bus 40 represents one or more busses (e.g., PCI, ISA, X-Bus, EISA, VESA, etc.) and bridges (also termed as bus controllers). While this embodiment is described in relation to CPU and coprocessor computer system (i.e. a multiprocessor computer system), the invention could be implemented in a single processor computer system. In addition, while this embodiment is described in relation to a 64-bit computer system, the invention is not limited to a 64-bit computer system. Of course, the coprocessor 60 contains additional circuitry not shown, which is not essential for understanding the invention.

Referring to FIG. 2, there is shown a block diagram of the arithmetic unit 80 of the exemplary complex number coprocessor 60. The arithmetic unit has a control unit 90, an arithmetic unit for mantissas 100, an arithmetic unit for exponents 110, read-only memory or ROM 120, mantissa registers 130, exponent registers 140, an internal bus 150, bus interface registers 160, accumulators 170, encoders 180, decoders 190, and an exponent to mantissa mover 200. The registers 130 and 140 contain information including control/status data, integer data, floating point data, and complex number data stored in one or more of the codes described herein. The ROM 120 contains the software instructions necessary for performing any and/or all of the method steps described herein.

Of course, the ROM 120 preferably contains additional software, which may be associated with various arithmetic operations, which is not necessary for understanding the invention. The software contained in ROM 120 is executed by the any and/or all of the control unit 90, mantissa unit 100, and exponent unit 110. The control unit 90, encoders 180, decoders 190, accumulators 170, exponent to mantissa mover 200, mantissa unit 100, and exponent unit 110 may be implemented using any number of different mechanisms (e.g., a look-up table, a hardware implementation, a PLA, etc.). While the method and corresponding software instructions described herein may be represented by a series of if/then statements, it is understood that the execution of an instruction does not require a serial processing of these if/then statements exchange rate **usd nzd**. Rather, any mechanism for logically performing this if/then processing is considered to be within the scope of the implementation of the invention. Of course, the arithemetic unit 80 contains additional circuitry, which is not necessary for understanding the invention.

Referring to FIG. 6, there is shown the encoding method steps according to one embodiment of the invention. In response to receiving an instruction from the CPU 20, two data elements representing the real and imaginary parts of a complex number 610 are read by the coprocessor 60 from the CPU 20 and/or DRAM 30 **2000 usd to inr**. These two elements are then used to generate a single code for the complex number which is stored as a single data element. As a result of this coding, arithmetic operations on complex numbers may be performed on a single data element which contains both real and imaginary data. This results in more efficient complex arithmetic operations.

[0476]FIG. 12 lists six (6) exemplary coding systems 1250, 1260, 1270, 1280, 1290, and 1300 that may be used. Each coding system is designated symbolically by the function f(p, m) 1210, where m is the mth digit in the resulting code for the complex number and where p 1210 is the coding base which has associated with it the variables u 1220 and w 1230, where u is a real number and w is a complex number such that u*w=j, where j=(−1){circumflex over ( )}(½). The symbol K(w) 1240 represents *the binary* code for the variable w 1230 under the coding system f(p,m) 1210. It should be noted that coding system 1250 has a purely real base p=−2, which eliminates the need in the prior art for a separate sign data element. Coding systems 1260 and 1270 have purely imaginary bases, p=±j*2{circumflex over ( )}(½), which are complex conjugates. Coding systems 1280 and 1290 have complex bases, p=−1±j, which are also complex conjugates. And, coding system 1300 has a complex base, p=½ (−1+j7{circumflex over ( )}(½)). Thus, a coding system may be selected based on the complexity of the arithmetic operation to be performed or on the complexity of the arguments of that operation. It is understood that similar “arithmetical” coding systems are considered to be within the scope of the invention. A coding system is “arithmetical” if given the complex numbers Z1 and Z2 that may be represented in the coding system, the numbers corresponding to −Z1, −Z2, Z1+Z2, and Z1*Z2 may also be represented by the coding system.

The steps 610 through 680 may be performed on additional complex numbers where the desired arithmetic operation involves multiple arguments. For example, squaring a complex number may involve a single complex number whereas multiplication may involve two complex numbers. It is understood that all arithmetic operations are considered to be within the scope of the invention. Such arithmetic operations my include addition, subtraction, multiplication, division, comparison, logarithms, binomials, potentiating, square roots, cube roots, sine, cosine, hyperbolic functions, polar/cartesian coordinates, and fast fourier transforms *usa today* newspaper online. As noted above, and referring to FIG. 1 and FIG. 2, the ROM 120 preferably contains software associated with various arithmetic operations, which is not necessary for understanding the invention. The software contained in ROM 120 may be executed by any and/or all of the coprocessor 60, control unit 90, mantissa unit 100, and exponent unit 110.