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 ==
|