Talk:Residue number system

[Untitled]
I removed this:


 * by multiplying the small integers together, modulo M, so shown here:


 * X = $$\left ( \prod_{n=0}^N x_i \right ) \pmod{M}$$.

This isn't correct. For example if X = 2, you would get 2N+1 from this, not just 2. The inversion procedure goes as on the Chinese remainder theorem page.

Charles Matthews 07:27, 16 Sep 2004 (UTC)

Chinese Remainder Theorem
Why is it the "Chinese" remainder theorem. Surely these properties have been discovered indepenently of China. While I think it is appropriate to have a Chinese remainder theorem page exploring the development of the concept in China, I believe there ought to be a more generic term for the concept.


 * It's the usual name. Policy is to take the common name as the article title, in most circumstances. Charles Matthews 19:27, 11 November 2005 (UTC)

Coprimeness of modulos
From the article: "The moduli must all be coprime; so in particular no modulus may be a factor of any other." These two sentences have different implications. 15 is not a factor of 21 and vice versa, but they are not coprime. If coprimeness is the requirement, the latter part should either be dropped or rephrased "in particular no modulus may share a factor with any other". If not dividing each other is the requirement, the former part should be dropped. (I'm pretty sure they need to be coprime, but I'd have to look it up to be sure.) 192.160.6.252 23:05, 17 March 2006 (UTC)

One requirement to ensure maximum efficiency is that all moduli of the RNS word must be co-prime; moduli are co-prime when no two moduli share any common factors greater than one.CaptRNS (talk) 14:56, 12 May 2019 (UTC)

Comparison of numbers
An important feature of a number system is also whether an efficient comparison operation exists. For instance to decide that 110>100 is true is quite easy in decimal or binary system. In residue number system it is much more difficult which is part of the difficulty of performing division in RNS. 213.47.209.8 13:31, 26 April 2007 (UTC)Hannes Hassler

Comparison of RNS numbers may be performed in a straightforward manner using mixed-radix conversion. Yes, it is important that comparison exist, but it need not necessarily be efficient. This confusion springs from the necessary observation that each number system has its own strengths and weaknesses. While RNS has many strengths, comparison is not one of them, and so comparison in RNS is a slow operation. Comparison using Mixed-Radix conversion is completely modular, and is performed without using any other modulus than those of the chosen RNS word itself, and it is typically performed by comparing least significant digit first, and furthermore is performed without carry. CaptRNS (talk) 14:24, 12 May 2019 (UTC)

Associated MRS
The expansion of the sum seems incorrect in the AMRS section. This should be verified by someone qualified. —Preceding unsigned comment added by 85.49.195.63 (talk) 09:07, 4 March 2008 (UTC)

You a right, the section is incorrect and the correct description of AMRS is given in the cited paper, section II.B page 2. The coefficients x_i in the formula are not the same x_i values from the RNS n-tuple. Hence, the formula needs primed x_i values, which also need to be defined properly. — Preceding unsigned comment added by Nightlight77 (talk • contribs) 10:19, 18 June 2014 (UTC)

Maximum representational efficiency
I think the statement "for maximum representational efficiency it is imperative that all the moduli are coprime" is false. Unless it means resulting in the same representation for different values? Mfaddegon (talk) 06:53, 2 April 2009 (UTC)

This statement is true, but covers only one aspect of RNS efficiency. There is word efficiency (all digits) where each digit modulus should be co-prime for maximum efficiency. Also, there is an efficiency for each RNS digit, since each digit is also encoded in binary in most cases. The closer the chosen digit modulus is to the power of two that encodes the digit, the more efficient that digit. All together, there is an equation that can be provided for exact binary encoding efficiency of each digit, and the overall efficiency of the RNS word is related to the base 2 log of the range of the RNS system compared to the base 2 log of the range of overall binary encoding (number of binary bits of all digits). CaptRNS (talk) 14:14, 12 May 2019 (UTC)

Misrepresentation in first section
The section below implies that the same representation for different values occurs because of non-coprime moduli. This is false - it occurs because 7 is larger than LCM(4, 2) = 4. I have updated this section to be more accurate, but it probably could be phrased better. I have no idea if the reference applies anymore.

For example RNS(4|2) has non-coprime moduli, resulting in the same representation for different values.

(3)decimal = (3|1)RNS(4 (7)decimal = (3|1)RNS(4  — Preceding unsigned comment added by 104.156.97.14 (talk) 05:29, 13 February 2015 (UTC)

To be specific, the same representation occurs because the range of the RNS system is not adequate to represent the range of the numbers presented in the example. This fact is true regardless of whether the modulus are co-prime or not. However, modulus that are not coprime produce wasted digit states, and modulus that are coprime do not waste any digit states. CaptRNS (talk) 14:40, 12 May 2019 (UTC)

Multiple issues
This article has multiple issues. Before tagging the article or fixing the issues, I prefer to list them here, for a better global view.
 * Presently, the subject of the article is generally called multi-modular arithmetic. This must be said, and the article should probably be moved to this title.
 * The article is based on a single textbook (ref [1]), which is about hardware arithmetic, while most applications are software implementation.
 * The subject is described in details in Khuth's The Art of Computer Programming. This must be used and cited.
 * The article is very incomplete (this is a consequence of the preceding issue). Here are some lacking points
 * Multi-modular arithmetic is widely used for computing with large integers.
 * It may be used for computing with rational numbers (see Rational reconstruction)
 * The algorithm for converting from multi-modular to usual representation is lacking, as well as its [[computational complexity.
 * The way of using this in linear algebra is lacking (Using Hadamard's inequality for choosing the number of moduli; for computing determinants and solving linear systems, the conversion of the output to the usual representation is less costly than the multi-modular representation; the resulting complexity is better than if fast integer arithmetic is used, and the practical efficiency is very much better, as hardware arithmetic and parallelism are natural for the method.
 * Other applications (Modular polynomial GCD, cryptography, ...)

D.Lazard (talk) 13:41, 29 July 2018 (UTC)

The most accepted authority on the subject of RNS is the widely quoted book: Szabo, N. S. and Tanaka, R. I., Residue Arithmetic and its Applications to Computer Technology, McGraw-Hill, New York, N.Y., 1967.CaptRNS (talk) 14:47, 12 May 2019 (UTC)

"Multi-modular arithmetic"
When using the term "multi-modular arithmetic" it is desirable to give the reference to an external authoritative source. Otherwise it could be regarded as original data. The term "multi-modular arithmetic" is similar to the concept "modular arithmetic" as the work of modules in the concept "multi-modular arithmetic" is one module in the concept "modular arithmetic". Than "Modular arithmetic" or "multi-modular arithmetic" — it is closer to "pure" mathematics (to the theory of numbers, more precisely than the theory of congruences).

Unlike the concept "multi-modular arithmetic" or "modular arithmetic", the concept RNS — carries sense of an applied mathematical apparatus, that is it is closer to computer, engineering sciences. To RNS considerable attention is paid so-called Not modular by operation. These operations are necessary at correction of errors, at division, when comparing numbers and so forth.

There is more. I don't want to make in article text changes because of my bad English. But participants of Wikipedia I ask to specify the scope of RNS, main for today's time, is a digital processing of signals. There is a mass of publications on this subject. The main destination of RNS is when it is necessary to receive at small equipment rooms and power expenses of the equipment high efficiency and reliability of the equipment at the solution of a narrow class of tasks, in particular problems of digital processing of signals. Excuse for bad English. But an essence stated above I hope it is clear. Alpha-Gamma (talk) 08:29, 31 July 2018 (UTC)


 * Here are a few authoritative references that use "multi-modular" in the sense of this article.       It is clear that the same concept is used under the name RNS in computer hardware, and under the name multi-modular in software implementation. This concept has important applications in hardware architecture and signal processing, as well as in software computing with large integers. For the moment, none is described in the article, but both deserve to be described with some details. Also a paragraph is needed in the lead for mentioning applications to hardware architecture and signal processing. I am unable to write it. So, I recommend that you write it; it is not a problem that you english is poor, as it is easier for me to fix it than to write things for which I am not an expert. D.Lazard (talk) 09:34, 31 July 2018 (UTC)

It demonstrates that "RNS" or "Multi-modular arithmetic" has a lot more poorly studied asekt. However the number of scientific articles about a term RNS ispolzovaniye in hundreds, thousands (!) times more.
 * These are very interesting references.

I won't argue on what is better.

In my opinion both versions are right. One "Multi-modular arithmetic" — it is closer to mathematics when not modular operations aren't considered.

The term RNS — has taken the dominating positions in the field of digital processing of signals. Here features of synthesis of discrete logical schemes, correction of errors and other are considered.

On my vzglya it is expedient to "Multi-modular arithmetic" to consider as subsection in article Modular arithmetic.

Anyway it could be very interesting and useful article. Best regards Alpha-Gamma (talk) 17:04, 3 August 2018 (UTC)

No, "Multi Modular" does not adequately describe "Residue Numbers". This term should not be used on this page. Residue numbers have a mathematical definition that is found is Szabos and Tanaka's book, a famous refence on the subject. This is the most important reference on this subject and needs to be added. For example, mixed-radix numbers could be considered multi modular, and mixed-radix numbers are definitely not residue numbers. RNS is strictly a subject in computer science as so named. Mathematicians do not readily recognize this RNS number system as they prefer to call and reference much of the math that underlies RNS as Finite Field and Ring theory. CaptRNS (talk) 14:34, 12 May 2019 (UTC)