https://github.com/petoc/algo
Collection of algorithm implementations for Go.
https://github.com/petoc/algo
algorithm damm go golang luhn
Last synced: 7 days ago
JSON representation
Collection of algorithm implementations for Go.
- Host: GitHub
- URL: https://github.com/petoc/algo
- Owner: petoc
- License: mit
- Created: 2020-08-15T19:46:54.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-16T15:40:25.000Z (over 5 years ago)
- Last Synced: 2024-06-20T14:55:53.688Z (over 1 year ago)
- Topics: algorithm, damm, go, golang, luhn
- Language: Go
- Homepage:
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Algorithms
Collection of algorithm implementations for Go.
### Error detection
[Damm](https://github.com/petoc/algo/tree/master/damm)
[Damm64](https://github.com/petoc/algo/tree/master/damm64) (using quasigroups for character base from 3 to 64 characters)
[Luhn](https://github.com/petoc/algo/tree/master/luhn)
### Math
[Greatest common divisor](https://github.com/petoc/algo/tree/master/gcd) (Euclid)
## Usage
### Error detection
#### Damm
Implementation of error detection algorithm for numeric codes from H. Michael Damm.
```go
import "github.com/petoc/algo/damm"
```
```go
damm.Calculate("123456789") // 4
damm.Validate("1234567894") // true
```
#### Damm64
Based on error detection algorithm from H. Michael Damm. Uses pre-generated quasigroups for character base from 3 to 64 characters.
```go
import "github.com/petoc/algo/damm64"
```
```go
base := "0123456789ABCDEFGHIJKLMNOPQRSTUV"
damm64.Calculate(base, "G12Q") // F
damm64.Validate(base, "G12QF") // true
```
#### Luhn
Implementation of error detection algorithm for numeric codes from Hans Peter Luhn.
```go
import "github.com/petoc/algo/luhn"
```
```go
luhn.Calculate("123456789") // 7
luhn.Validate("1234567897") // true
```
### Math
#### Greatest common divisor
```go
import "github.com/petoc/algo/gcd"
```
```go
gcd.Euclid(8, 12) // 4
```
## Sources
Damm Quasigroups (http://www.md-software.de/math/DAMM_Quasigruppen.txt)
## License
Licensed under MIT license.