www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Reed Solomon codes

reply Era Scarecrow <rtcvb32 yahoo.com> writes:
  I'm curious if a ported/rewrite of a Reed Solomon library would 
be wanted/needed in the library? Doing a search i don't see 
anything specific about adding it.

  This might be more for networking, QRcodes, storage/backup data 
or something where extra parity and error detection/correction is 
needed.

  The library I'm redoing in D is located here, thoughts?
  http://rscode.sourceforge.net/
Dec 04 2021
next sibling parent reply Paul Backus <snarwin gmail.com> writes:
On Saturday, 4 December 2021 at 15:31:02 UTC, Era Scarecrow wrote:
  I'm curious if a ported/rewrite of a Reed Solomon library 
 would be wanted/needed in the library? Doing a search i don't 
 see anything specific about adding it.

  This might be more for networking, QRcodes, storage/backup 
 data or something where extra parity and error 
 detection/correction is needed.

  The library I'm redoing in D is located here, thoughts?
  http://rscode.sourceforge.net/
Seems like a good idea for a dub package. Once you have something working, register it on code.dlang.org and make a post in the Announce forum to let people know.
Dec 04 2021
parent reply Era Scarecrow <rtcvb32 yahoo.com> writes:
On Saturday, 4 December 2021 at 15:57:41 UTC, Paul Backus wrote:
 On Saturday, 4 December 2021 at 15:31:02 UTC, Era Scarecrow 
 wrote:
  I'm curious if a ported/rewrite of a Reed Solomon library 
 would be wanted/needed in the library? Doing a search i don't 
 see anything specific about adding it.
Seems like a good idea for a dub package. Once you have something working, register it on code.dlang.org and make a post in the Announce forum to let people know.
Oh it's working. I did a basic transition to make it compile in D, then I've been doing more D features and rewriting sections and removing unneeded sections, some which greatly simplifies the code, and some for speedups for knowing what certain calls are doing and working around to avoid unnecessary work. Though i wonder if the lookup tables (that fit as ubytes) should be ubyte or size_t; And if i should have it pre-calculate the polynomials to free up space in the struct or not (vs calculating them when you change it). The amount of processing isn't that high vs the space it may be taking up.
Dec 04 2021
parent reply Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Saturday, 4 December 2021 at 16:16:02 UTC, Era Scarecrow wrote:
 On Saturday, 4 December 2021 at 15:57:41 UTC, Paul Backus wrote:
 [...]
Oh it's working. I did a basic transition to make it compile in D, then I've been doing more D features and rewriting sections and removing unneeded sections, some which greatly simplifies the code, and some for speedups for knowing what certain calls are doing and working around to avoid unnecessary work. Though i wonder if the lookup tables (that fit as ubytes) should be ubyte or size_t; And if i should have it pre-calculate the polynomials to free up space in the struct or not (vs calculating them when you change it). The amount of processing isn't that high vs the space it may be taking up.
Cool, like Paul said. Make a dub package so people can find it 👍
Dec 04 2021
parent Era Scarecrow <rtcvb32 yahoo.com> writes:
On Saturday, 4 December 2021 at 17:01:32 UTC, Imperatorn wrote:
 Cool, like Paul said. Make a dub package so people can find it 👍
Alright, I'll clean it up some more, add some unittests and add it to the dub soon. (*How the math works is beyond me with how it's originally written so not sure about those*).
Dec 04 2021
prev sibling next sibling parent reply Andre Pany <andre s-e-a-p.de> writes:
On Saturday, 4 December 2021 at 15:31:02 UTC, Era Scarecrow wrote:
  I'm curious if a ported/rewrite of a Reed Solomon library 
 would be wanted/needed in the library? Doing a search i don't 
 see anything specific about adding it.

  This might be more for networking, QRcodes, storage/backup 
 data or something where extra parity and error 
 detection/correction is needed.

  The library I'm redoing in D is located here, thoughts?
  http://rscode.sourceforge.net/
Thanks for doing this work. A side note, the library you translating from has the GPL license, therefore your D library needs to be GPL too, I assume. Including GPL parts into Phobos is not possible as far as I know. Therefore a Dub package make sense. Kind regards Andre
Dec 05 2021
parent reply Era Scarecrow <rtcvb32 yahoo.com> writes:
On Sunday, 5 December 2021 at 10:35:35 UTC, Andre Pany wrote:
 Thanks for doing this work. A side note, the library you 
 translating from has the GPL license, therefore your D library 
 needs to be GPL too, I assume. Including GPL parts into Phobos 
 is not possible as far as I know. Therefore a Dub package make 
 sense.
When i messaged Henry regarding porting this to D he seemed interested; I'll ask him if he would offer/allow it under another license to potentially include it in phobos. Looking in the FAQ it seems phobos uses the Boost 1.0 license. Is there any other licenses i should offer/ask for?
Dec 05 2021
parent reply Andre Pany <andre s-e-a-p.de> writes:
On Sunday, 5 December 2021 at 15:40:19 UTC, Era Scarecrow wrote:
 On Sunday, 5 December 2021 at 10:35:35 UTC, Andre Pany wrote:
 Thanks for doing this work. A side note, the library you 
 translating from has the GPL license, therefore your D library 
 needs to be GPL too, I assume. Including GPL parts into Phobos 
 is not possible as far as I know. Therefore a Dub package make 
 sense.
When i messaged Henry regarding porting this to D he seemed interested; I'll ask him if he would offer/allow it under another license to potentially include it in phobos. Looking in the FAQ it seems phobos uses the Boost 1.0 license. Is there any other licenses i should offer/ask for?
Yes, Boost 1.0 would be perfect if the coding should be integrated into Phobos at some point in time. For a dub package also MIT and Mozilla is good. (Some companies tries to avoid GPL/ LGPL libraries as much as possible). Kind regards Andre
Dec 05 2021
parent Era Scarecrow <rtcvb32 yahoo.com> writes:
On Sunday, 5 December 2021 at 17:05:32 UTC, Andre Pany wrote:
 Yes, Boost 1.0 would be perfect if the coding should be 
 integrated into Phobos at some point in time. For a dub package 
 also MIT and Mozilla is good. (Some companies tries to avoid 
 GPL/ LGPL libraries as much as possible).
He says he will grant an MIT license to the 'D Language' variant of the code, the original C code stays GPL.
Dec 05 2021
prev sibling parent Era Scarecrow <rtcvb32 yahoo.com> writes:
Ugg... Watching and reading and trying to understand Polynomial 
math is melting my brain. I doubt i will be able to add in 
unittest to each function to prove they are working right other 
than the final result tests.


I did some tests where i made it 16bit symbols and it worked just 
fine (*although a little slower*), the biggest advantage is the 
range the generated codeword uses covers a max of 131070 bytes vs 
255 bytes, which would make it usable for say several blocks of 
sectors for say a tape backup or large compressed files in an 
archive.

Probably I'll have 2 ports, one for 8bit symbols and another for 
any symbol size (*3bit-24bit supported, after 24bit it eats way 
too much memory for the tables generated that are used, 24bit 
tables would eat up 256Mb-512Mb, but looks like it would cover a 
50Mb area*).
Dec 20 2021