Damm algorithm: Difference between revisions

Content deleted Content added
split technical details from general overview
rearrange sections to comply with WP:UPFRONT
Line 1:
In [[error detection]], the '''Damm algorithm''' is a [[check digit]] [[algorithm]] that detects all [[Transcription error|single-digit errors]] and all [[Transcription error#Transposition error|adjacent transposition errors]]. It was presented by H. Michael Damm in 2004.
 
== Strengths and weaknesses ==
The Damm algorithm is similar to the [[Verhoeff algorithm]]. It too will detect ''all'' occurrences of altering one single digit and ''all'' occurrences of transposing two adjacent digits. (These are the two most frequently appearing types of [[transcription error]]s.)<ref name=Kirtland2001 /> But the Damm algorithm has the benefit that it makes do without the dedicatedly constructed [[permutation]]s and its position specific [[Exponentiation#In abstract algebra|powers]] being inherent in the [[Verhoeff algorithm|Verhoeff scheme]]. Furthermore, a table of [[Inverse element|inverses]] can be dispensed with provided all diagonal entries of the operation table are zero.
 
The Damm algorithm does not suffer from exceeding the number of 10 possible values, resulting in the need for using a non-digit character (as the [[X]] in the [[ISBN#ISBN-10 check digit calculation|10-digit ISBN]] [[Check digit#ISBN 10|check digit]] scheme).
 
Prepending leading zeros does not affect the check digit.
 
There are totally anti-symmetric quasigroups that detect all phonetic errors associated with the English language (13 ↔ 30, 14 ↔ 40, ..., 19 ↔ 90). The table used in the illustrating example above represents an instance of such kind.
 
Despite its desirable properties in typical contexts where similar algorithms are used, the Damm algorithm is largely unknown and scarcely used in practice.
 
== Design ==
Line 115 ⟶ 126:
 
[[File:Check digit TA quasigroup dhmd111rr illustration eg5724.svg]]
 
== Strengths and weaknesses ==
The Damm algorithm is similar to the [[Verhoeff algorithm]]. It too will detect ''all'' occurrences of altering one single digit and ''all'' occurrences of transposing two adjacent digits. (These are the two most frequently appearing types of [[transcription error]]s.)<ref name=Kirtland2001 /> But the Damm algorithm has the benefit that it makes do without the dedicatedly constructed [[permutation]]s and its position specific [[Exponentiation#In abstract algebra|powers]] being inherent in the [[Verhoeff algorithm|Verhoeff scheme]]. Furthermore, a table of [[Inverse element|inverses]] can be dispensed with provided all diagonal entries of the operation table are zero.
 
The Damm algorithm does not suffer from exceeding the number of 10 possible values, resulting in the need for using a non-digit character (as the [[X]] in the [[ISBN#ISBN-10 check digit calculation|10-digit ISBN]] [[Check digit#ISBN 10|check digit]] scheme).
 
Prepending leading zeros does not affect the check digit.
 
There are totally anti-symmetric quasigroups that detect all phonetic errors associated with the English language (13 ↔ 30, 14 ↔ 40, ..., 19 ↔ 90). The table used in the illustrating example above represents an instance of such kind.
 
Despite its desirable properties in typical contexts where similar algorithms are used, the Damm algorithm is largely unknown and scarcely used in practice.
 
== References ==