←2022-11-12 2022-11-13 2022-11-14→ ↑2022 ↑all
00:01:29 <shachaf> What are n and k here?
00:01:54 <int-e> n and 2 are numbers of shards; k is the shard size
00:02:23 <int-e> So in the case of BCH codes you'd have an n+2 code over GF(2^k), but I'm trying to think over GF(2) here.
00:02:45 <b_jonas> no idea. hey, I passed an exam about codes but that was under the algebra dept, they teach the hardest stuff in all subjects but don't actually require you to know anything in exams. so I don't know anything about how codes work.
00:03:15 <b_jonas> at most I know some of the more trivial information theoretical limits
00:04:00 <shachaf> Did you know the Singleton bound is named after Richard Singleton?
00:05:26 <shachaf> Ah, I see, this is all in bits.
00:15:56 <int-e> shachaf: I think this matrix http://paste.debian.net/1260517/ makes a (3+2)2 code in that sense. Note that 3+2 > 2^2
00:16:44 <int-e> (. is 0, and the spaces are for legibility; they separate the 2x2 blocks)
00:20:49 <shachaf> Hmm, I guess this corresponds to the matrix I had in GF(4).
00:21:06 <shachaf> I think you can even add one more column with three 2x2 identity matrices.
00:24:25 <shachaf> Oh, I thought these matrices correspond to GF(4) field elements, but maybe not!
00:25:11 <int-e> yeah these ones don't, they all have order 2
00:25:18 <int-e> (or 1)
00:27:16 <shachaf> Right.
00:27:35 <shachaf> I guess this sort of flexibility is why you wanted to scrap fields and be linear over GF(2).
00:27:57 <shachaf> Where the point is that you still only care about whole-shard erasures.
00:32:25 <int-e> anyway, this is totally unsystematic... BCH codes are a nice, general construction.
00:34:25 <shachaf> Well, your matrix is systematic, right?
00:35:18 <int-e> shachaf: In the "systematic code" sense, yes. But not in the sense of a construction leading up to the full matrix.
00:35:54 <shachaf> Oh, right, I was wondering.
00:35:55 <int-e> And the former is mainly because I started with an identity matrix *without loss of gnerality*, and the same thing for the identity matrix blocks at the top of the 4th and 5th column.
00:36:26 <int-e> so basically there were only 4 blocks left to choose.
00:36:35 <shachaf> You can even have the entire first column be all identities, right?
00:36:43 <shachaf> Since you can multiply rows or columns by any constant.
00:37:07 <shachaf> (Multiplying a row by something messes up the identity matrix, but then you can multiply that column by the inverse to unmess it.)
00:37:18 <int-e> I lose that freedom when I make the code systematic
00:37:20 <shachaf> Sorry, I mean 4th column.
00:37:36 <int-e> I think
00:37:46 <int-e> maybe that's wrong though, hmm.
00:37:50 <shachaf> Hmm, I think you don't because of the argument in the parentheses.
00:38:13 <shachaf> You multiply a row by something and then multiply one of the identity matrix columns by its inverse.
00:39:35 <int-e> It'd require some sort of conjugation-esque trickery. After making the code systematic I only considered multiplications by an invertible matrix from the right.
00:40:25 <shachaf> Hmm, also I'm still thinking of the field case here, and I guess these things aren't a field, so I might be confused.
00:41:11 <int-e> But you're right.
00:42:44 <int-e> I can multiply each row to get an identity matrix into the corresponding block of the 4-th column. And then I can multiply the first three *columns* to restore the identity matrices there.
00:43:07 <shachaf> Right.
00:44:21 <int-e> And then then I guess this degenerates into something over GF(4) indeed.
00:44:30 <int-e> (it does)
00:45:15 <shachaf> But these small matrices you use have order 2, not 3?
00:46:25 <int-e> But if we do the above to make the fourth column all 1s, we get [1,1;0,1]*[1,0;1,1] and its inverse in the last column, which has order 3.
00:47:05 <shachaf> Oh, I see.
00:48:15 <shachaf> So I looked for GF(4) codes by brute force.
00:48:45 <shachaf> Of course there are 1+p and n+1 codes for any n/p. And there are n+p codes for any n/p where n+p <= 4.
00:49:11 <shachaf> But there are also 2+3, 3+2, and 3+3 codes.
00:49:59 <shachaf> There are no 3+4, 2+4, or 4+2 codes.
00:51:53 <int-e> And,.. that's actually forced to make a 5th column; there are simply not enough invertible 2x2 matrices.
00:54:35 <int-e> There are still two choices left, so this doesn't contradict your 3+3 code claim... in fact that does work out.
00:56:02 <shachaf> My 3+3 code is [[1 0 0] [0 1 0] [0 0 1] [1 1 1] [1 2 3] [1 3 2]]
00:56:03 <int-e> looks like this http://paste.debian.net/1260520/ (no surprises)
00:56:14 <shachaf> Yep.
00:57:49 <int-e> And yeah, there are no 3+4 nor 4+2 codes with 2 bit shards.
00:58:16 <shachaf> So why is 3+3 the limit?
00:58:32 <shachaf> And what's the limit for k-bit shards?
00:59:21 <int-e> Let me think about 2+4. I'm not going to consider shards wider than 2 manually.
01:03:14 <shachaf> (Hmm, if you have an n+p code can you turn that into a p+n code by transposing?)
01:03:56 <int-e> Ah, the same thing happens... after all the w.l.o.g. reductions we're forced into GF(4).
01:04:32 <int-e> So indeed, no 2+4 code with 2 bit shards.
01:05:16 <int-e> transposing isn't meaningful here
01:05:58 <int-e> The matrix has dimension (n+p)xn after all.
01:06:00 <shachaf> I guess I mean transposing the nxp part and using it with a pxp identity matrix.
01:06:08 <shachaf> (For a systematic code.)
01:06:13 <shachaf> Maybe not.
01:06:24 <int-e> even then you'd need n=p for things to fit together
01:06:43 <int-e> so at best you'd turn an n+n code into another n+n code
01:07:13 <shachaf> Why?
01:07:31 <int-e> oh you mean you adjust the identity matrix
01:07:38 <int-e> hmm
01:08:49 <int-e> well, it *feels* like something that shouldn't work but I can't rule it out.
01:09:58 <int-e> It does work.
01:11:38 <shachaf> Oh, really?
01:12:32 <int-e> You can rephrase the criterion for the parity matrix as "every kxk block for k <= p is invertible"
01:13:14 <int-e> (you select columns directly, and rows by picking the remaining rows as columns from the direct-mapping identity matrix part)
01:13:33 <int-e> and this rephrased version is obviously preserved by transposition
01:14:07 <int-e> k <= max(n,p) I suppose
01:14:10 <int-e> err min
01:19:10 <int-e> something like this: http://paste.debian.net/1260521/
01:20:43 <shachaf> I'm not sure I follow the arrows.
01:20:58 <int-e> start at the top, those are the shards you pick
01:21:27 <int-e> the stars mark a 2x2 block that has to be invertible for this to work out.
01:23:35 <int-e> The horizontal arrows... well, basically you can use column operations to make those row all zero there.
01:24:06 <shachaf> Hmm, I see.
01:24:14 <shachaf> Interesting, so the 1+p and n+1 cases are dual.
01:24:27 <int-e> yeah
01:25:21 <int-e> I think I actually *learned* this back at university. But I didn't understand why and we never used it and I forgot.
01:26:10 <int-e> (our information and coding theory course was light on proofs)
01:27:34 <shachaf> Man, I never took an information and coding theory course. I probably should.
01:33:33 -!- razetime has joined.
02:40:51 -!- razetime has quit (Ping timeout: 256 seconds).
03:53:55 -!- earend1 has quit (Quit: Connection closed for inactivity).
05:28:46 -!- Lord_of_Life_ has joined.
05:29:57 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
05:30:02 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
06:27:18 -!- Thedarkb-Desktop has quit (Ping timeout: 268 seconds).
08:00:25 -!- tromp has joined.
09:26:59 -!- razetime has joined.
09:33:40 -!- earend1 has joined.
09:50:51 -!- razetime has quit (Remote host closed the connection).
09:51:20 -!- tech_exorcist has joined.
10:11:58 -!- Sgeo has quit (Read error: Connection reset by peer).
10:35:46 -!- tech_exorcist has quit (Remote host closed the connection).
10:35:46 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104678&oldid=104675 * ColonelMatthew97 * (+117)
10:36:03 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104679&oldid=104678 * ColonelMatthew97 * (+1) /* Updates (v0.7+) */
10:36:42 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104680&oldid=104679 * ColonelMatthew97 * (+0)
10:36:43 -!- tech_exorcist has joined.
10:51:11 -!- chiselfuse has quit (Ping timeout: 255 seconds).
10:52:11 -!- chiselfuse has joined.
11:01:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:03:14 -!- tromp has joined.
11:28:17 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104681&oldid=104680 * ColonelMatthew97 * (+1) /* Commands */
11:34:18 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104682&oldid=104681 * ColonelMatthew97 * (+424)
11:35:08 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104683&oldid=104682 * ColonelMatthew97 * (+8)
11:35:41 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104684&oldid=104683 * ColonelMatthew97 * (+23) /* v0.8 - 13/Nov/2022 */
11:38:08 -!- bgs has joined.
11:44:17 -!- chiselfuse has quit (Ping timeout: 255 seconds).
11:45:34 -!- chiselfuse has joined.
11:48:35 <esolangs> [[Alphaton]] https://esolangs.org/w/index.php?diff=104685&oldid=104684 * ColonelMatthew97 * (+49) /* v0.8 - 13/Nov/2022 */
11:59:49 -!- earend1 has quit (Quit: Connection closed for inactivity).
12:30:00 -!- __monty__ has joined.
12:42:47 -!- chiselfuse has quit (Ping timeout: 255 seconds).
12:45:05 -!- chiselfuse has joined.
12:50:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:10:43 -!- Thedarkb-Desktop has joined.
13:15:39 -!- sprout has quit (Ping timeout: 260 seconds).
14:13:16 -!- tromp has joined.
15:22:41 -!- tech_exorcist has quit (Quit: bbl).
15:23:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:34:51 -!- tromp has joined.
16:23:22 -!- sprout has joined.
16:33:16 -!- tech_exorcist has joined.
16:40:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:43:46 -!- tech_exorcist_ has joined.
16:49:02 -!- tech_exorcist has quit (Ping timeout: 246 seconds).
16:51:18 -!- razorlovesbaba88 has joined.
16:51:29 -!- razorlovesbaba88 has quit (Client Quit).
16:51:38 -!- razorlovesbees has joined.
16:52:33 <razorlovesbees> am i in the right place
16:53:39 -!- razorlovesbees has set topic: Welcome to the definitive cult of esoteric programming language design, dry-cleaning, and DNA modification! | https://esolangs.org | logs: https://logs.esolangs.org/a.
16:53:45 -!- razorlovesbees has set topic: Welcome to the definitive cult of esoteric programming language design, dry-cleaning, and DNA modification! | https://esolangs.org | logs: https://logs.esolangs.org/.
16:53:49 <razorlovesbees> sorry
17:07:50 <int-e> It's okay... the most important part of the topic is the link to the logs because that's mandated by Libera. And you fixed it.
17:42:16 -!- tromp has joined.
18:42:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:02:58 -!- tromp has joined.
19:13:07 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:18:54 -!- tromp has joined.
19:27:41 -!- Sgeo has joined.
19:31:56 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:35:13 -!- nesuniken[m] has joined.
19:36:16 -!- tromp has joined.
19:37:10 <nesuniken[m]> Hello!
19:37:48 <int-e> `relcome
19:37:52 <HackEso> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
19:57:10 <nesuniken[m]> Does anyone know of any languages with reverse lexical scope (i.e if scope A is defined within scope B, B can access variables defined in A, but not the other way around)?
20:00:54 -!- simcop2387 has quit (Quit: ZNC 1.8.2+deb3+b2 - https://znc.in).
20:00:54 -!- perlbot has quit (Quit: ZNC 1.8.2+deb3+b2 - https://znc.in).
20:02:37 <b_jonas> nesuniken[m]: that happens in C++ with namespaces
20:02:47 -!- simcop2387 has joined.
20:03:48 <b_jonas> no wait, sorry
20:03:50 <b_jonas> it doesn't
20:03:57 <b_jonas> it only happens with unnamed namespaces
20:04:18 -!- perlbot has joined.
20:04:53 -!- perlbot has quit (Remote host closed the connection).
20:04:53 -!- simcop2387 has quit (Client Quit).
20:08:10 -!- simcop2387 has joined.
20:09:10 -!- perlbot has joined.
20:13:47 <nesuniken[m]> Oh wow, didn't realize naming a namespace was optional. Thanks!
20:14:14 <razorlovesbees> hmm people chat here
20:24:53 -!- razorlovesbees has quit (Ping timeout: 260 seconds).
20:37:38 <int-e> I guess that thought was too scary
20:52:28 <nesuniken[m]> <b_jonas> "it only happens with unnamed..." <- Perhaps this is just a VC++ issue, but nesting them isn't working like I described
21:07:24 <nesuniken[m]> I was hoping for a reverse lexical scope you could nest repeatedly like you can with the regular kind.
21:25:13 -!- tech_exorcist_ has quit (Quit: Disconnecting).
21:50:19 -!- bgs has quit (Remote host closed the connection).
22:07:38 -!- __monty__ has quit (Quit: leaving).
22:09:47 -!- chiselfuse has quit (Remote host closed the connection).
22:09:58 -!- chiselfuse has joined.
22:21:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:05:36 -!- lagash has joined.
←2022-11-12 2022-11-13 2022-11-14→ ↑2022 ↑all