00:03:19 <b_jonas> argh, I can't type "quest" without my fingers continuing it as "question"
00:17:31 <int-e> I think that's a firmware bug. You should ask the manufacturer whether you're still under warranty.
00:18:23 <fizzie> Aw, the "ratio" charts broke because for the first time there was a data point (the one at 20 past midnight in US/Eastern) where a day (namely, day 18) had a nonzero number of two-star solutions (5) but no single-star-only solutions at all, giving a `one / (one + two)` ratio of 0, which breaks log-scale charts.
00:19:24 <fizzie> I think I'll just filter out zeros as well. Already was doing so for when the denominator was zero.
00:19:26 <int-e> do (one + 1) / (one + two + 1) ;-)
00:19:31 -!- oerjan has joined.
00:19:45 -!- sprout has joined.
00:23:53 <fizzie> Heh, looks like 11 and 18 are both pretty far down on the chart. Sadly the pattern doesn't apply to the last green line (4): https://zem.fi/tmp/rat.png
00:24:32 -!- sprout has quit (Ping timeout: 240 seconds).
00:42:14 <earendel> that charts break on a dividion by zero?
00:50:16 <earendel> ah. okay. what is the relevance of that ratio? 0 seems correct value, if there are no one star solutions.
00:52:19 -!- sprout has joined.
00:53:49 -!- delta23 has joined.
00:53:59 <esolangs> [[Gift]] M https://esolangs.org/w/index.php?diff=90967&oldid=90965 * PythonshellDebugwindow * (+80) /* Implementation */ Add categories
00:54:16 <int-e> earendel: but we want a nice graph instead
00:54:26 <fizzie> It'd be a _correct_ value, sure, but you can't place a zero on a log-scale axis, and with a linear scale it gets all pretty crunched up.
00:57:01 -!- sprout has quit (Ping timeout: 245 seconds).
00:57:22 <fizzie> Though FWIW Altair/Vega does have a "symlog" scale that supports zero and negative values (http://dx.doi.org/10.1088/0957-0233/24/2/027001). But I don't think omitting zeros will be a big deal either.
01:26:41 -!- sprout has joined.
01:31:32 -!- sprout has quit (Ping timeout: 240 seconds).
01:44:25 <esolangs> [[Special:Log/newusers]] create * Pefcos * New user account
01:52:08 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=90968&oldid=90960 * Pefcos * (+157) /* Introductions */
01:59:39 -!- sprout has joined.
02:04:38 -!- sprout has quit (Ping timeout: 252 seconds).
02:32:54 -!- sprout has joined.
02:37:49 -!- sprout has quit (Ping timeout: 240 seconds).
02:39:02 <esolangs> [[SELECT.]] M https://esolangs.org/w/index.php?diff=90969&oldid=79727 * Quintopia * (+30) man i wish more people would just take risks and make categories without discussing them more often. sometimes they come up with good ones and there are so many categories that should exist that don't
02:39:50 -!- u0_a391 has quit (Read error: No route to host).
02:40:02 -!- u0_a391 has joined.
02:45:14 <oren> - we have you surrounded, come out and do data structures!
02:45:16 <oren> - I hate CLRS! I hate CLRS! clutches fixed length array
02:45:24 <esolangs> [[Snak]] N https://esolangs.org/w/index.php?oldid=90970 * Quintopia * (+820) created page
02:45:41 <oren> https://gist.github.com/orenwatson/44bfae92feea4d0d482f0b4b90d450bd
02:46:07 <esolangs> [[Snak]] M https://esolangs.org/w/index.php?diff=90971&oldid=90970 * Quintopia * (-4) whoops
02:46:18 <oren> I did teh heapsort implied binary tree thing for this
03:00:51 <fizzie> I did that too, because it benchmarked better than the obvious thing with `left, right *snailNumber` and allocated nodes.
03:01:41 <fizzie> Kept the functions mostly recursive though.
03:05:36 -!- sprout has joined.
03:05:54 <fizzie> Very conveniently, Burlesque has a builtin for reading []-delimited comma-separated arrays, so parsing the input this time was just a `ln)ra`.
03:06:47 <fizzie> Ended up with a lot of code anyway, and not feeling motivated to trim. Here's my current part 1:
03:06:49 <fizzie> %sP={jJL[2==x/{8};;che!}%sD={{p^sDjsD>.+.8vv0}sP}%sL={j{g_x/sL+]8.+}sP}%sR={j{l_jx/sR[+8.+}sP}%sX={J{Jx/J-]sD+.x/=={p^x/-.sX3MVjsLx/bxj[+j0}j{^px/-.sX3MVx/sRx/bxj+]j0j}jie}j{vv0j^p}j-.ie}%sS={{J~]FL>]9.>{g_sS+]}j{l_jsS[+}jie8J2./j+.2./_+}sP}%sM={{p^sM3.*jsM2.*.+8}sP}ln)ra{bxj+]{J{5sXvvvv}j{sS}jsD5==ie}{JsD5==jFL>]9.>||}w!}r[sM
03:09:22 <fizzie> Lots of recursive definitions there too. `sP` takes a snumber and a {foo ... 8 bar ...} block and executes the first half if the snumber is a pair or the second half otherwise; `sD` calculates the height/depth of a tree; `sL` and `sR` increment the leftmost or rightmost child respectively; `sX` explodes the leftmost pair that needs exploding; `sS` splits the leftmost number that needs splitting;
03:09:23 <fizzie> `sM` calculates the magnitude.
03:09:25 <HackEso> sM`? No such file or directory
03:10:57 -!- sprout has quit (Ping timeout: 268 seconds).
03:11:43 <fizzie> Part 2 is exactly the same thing except with `Jcp` inserted after the `ln)ra` (to get all pairs), and with the `{...}r[sM` replaced with `{...sM}^m>]` instead.
03:17:23 <fizzie> I wonder if there's a better way to combine the two topmost stack elements into a two-element block than `bxj+]` / `bxj[+`. There's the _+ builtin but it only works for a pair of ints or a pair of doubles; if applied to two blocks, it concatenates them instead.
03:18:30 <fizzie> Where `bxj+]` is of course "put the top element to a single-item block, swap, prepend the other element to the same block".
03:20:11 <fizzie> I'm a little tempted to install blsq on the HackEso machine, but it's got a slightly nontrivial transitive dependency tree; I only built that and nothing else, and my ~/.cabal is already a gigabyte.
03:32:04 <int-e> Hmm. My burlesque.cgi is 2.8MB with all the Haskell libraries linked in statically.
03:32:25 <fizzie> Probably the eventual output isn't that big.
03:33:19 <int-e> yes, the build artifacts get big
03:33:45 <fizzie> The two binaries (blsq, blsq-golf) are both around 25 megs here.
03:37:52 -!- u0_a3911 has joined.
03:37:52 -!- u0_a391 has quit (Read error: Connection reset by peer).
03:38:16 <int-e> hmm those dependencies are not ready for ghc 8.10 yet
03:38:19 -!- sprout has joined.
03:41:56 <int-e> I see what you mean by transitive dependencies
03:43:39 -!- sprout has quit (Ping timeout: 268 seconds).
03:45:18 <int-e> (also... outdated readme)
03:47:55 <int-e> Actually 25MB seems quite excessive, hmm.
03:48:55 <oerjan> . o O ( why isn't blsq-golf smaller )
03:49:09 <int-e> it is slightly smaller for me
03:50:00 <int-e> blsq (that's the -golf one): 2570480, cgi: 2818864, burlesque: 3415096
03:50:18 <int-e> those numbers are for stripped executables... but I've spotted another variable, let me check that
03:50:34 <int-e> will only take 15 minutes because I'll have to rebuild everything from scratch, again
03:51:57 <int-e> (the variable is SplitObjs)
03:52:40 <int-e> unstripped executables were in the 6MB ballpark. this is x86-64 Linux
03:58:02 <int-e> fizzie: ah yes, without SplitObjs it does produce 25MB executables, strips to about 16MB
03:58:24 <int-e> (it didn't quite take 15 minutes after all)
03:59:05 <int-e> (SplitObjs is a setting in cabal.config; the command line flag is probably --split-objs)
04:03:37 -!- u0_a3911 has quit (Ping timeout: 240 seconds).
04:05:20 -!- u0_a3911 has joined.
04:06:29 <int-e> (note that the libraries need to be compiled with split objects for this to work; what it does is split the .o files into one per exported symbol so that the linker can cherry-pick the code that's needed...)
04:07:15 <int-e> (it's disabled by default mostly because shared libraries (which are used by default) don't benefit from this, and it does slow down compilation)
04:13:42 -!- sprout has joined.
04:14:38 <fizzie> FTR `blsq-golf` was a _little_ smaller than `blsq` for me (23992008 vs. 25050480 bytes).
04:18:47 -!- sprout has quit (Ping timeout: 268 seconds).
04:19:24 <int-e> fizzie: oh ~/.cabal will grow to 1GB just from the hackage package database
04:20:35 <fizzie> Oh, so it will. Maybe I'll just build elsewhere and copy the binaries over. Later.
04:23:09 <int-e> (that said the build artifacts still grow to 240 MB for me, so it's not small)
04:32:42 <int-e> `fetch https://int-e.eu/~bf3/tmp/burlesque
04:32:44 <HackEso> ERROR: The certificate of ‘int-e.eu’ is not trusted. \ ERROR: The certificate of ‘int-e.eu’ doesn't have a known issuer.
04:32:54 <int-e> `fetch http://int-e.eu/~bf3/tmp/burlesque
04:32:55 <HackEso> 2021-12-19 04:32:54 URL:http://int-e.eu/~bf3/tmp/burlesque [3415096/3415096] -> "burlesque" [1]
04:33:04 <int-e> `` chmod +x burlesque
04:33:18 <int-e> `` ./burlesque --stdin '{1 2 3}++'
04:33:19 <HackEso> ./burlesque: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./burlesque)
04:34:03 <int-e> fizzie: maybe this helps: https://paste.debian.net/1224025/
04:34:27 <HackEso> cat: /etc/issue: No such file or directory
04:36:23 <int-e> `` /lib/ld-linux.so.2 --version
04:36:24 <HackEso> /hackenv/bin/`: line 5: /lib/ld-linux.so.2: No such file or directory
04:36:34 <int-e> `` /lib/ld-linux.so* --version
04:36:35 <HackEso> /hackenv/bin/`: line 5: /lib/ld-linux.so*: No such file or directory
04:38:20 <int-e> interesting. but anyway, it's glibc-2.28 and I have 2.33
04:39:17 <shachaf> What a ridiculous situation where this sort of thing happens all the time.
04:39:28 <shachaf> Static linking is where it's at.
04:39:57 <int-e> nah we've outgrown static linking with containers, remember?
04:40:29 <int-e> fizzie: hah, the two comment blocks with the file sizes got swapped in that paste :)
04:42:48 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90972&oldid=90954 * Dtp09 * (+28)
04:48:26 -!- sprout has joined.
04:50:51 <esolangs> [[Moaiscript]] M https://esolangs.org/w/index.php?diff=90973&oldid=90972 * Dtp09 * (+25) /* Instructions */
04:53:17 -!- sprout has quit (Ping timeout: 240 seconds).
05:02:03 -!- tromp has joined.
05:05:46 -!- tromp has quit (Client Quit).
05:23:00 -!- sprout has joined.
05:28:02 -!- sprout has quit (Ping timeout: 240 seconds).
05:57:13 -!- sprout has joined.
06:03:14 -!- oerjan has quit (Quit: Nite).
06:04:37 -!- sprout has quit (Ping timeout: 240 seconds).
06:12:26 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90974&oldid=90973 * Dtp09 * (+374) /* Hello, World! */
06:19:20 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90975&oldid=90974 * Dtp09 * (-1) /* Instructions */
06:29:51 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90976&oldid=90975 * Dtp09 * (-1) /* Interpreter */
06:30:10 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90977&oldid=90976 * Dtp09 * (+22) /* Interpreter */
06:30:53 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90978&oldid=90977 * Dtp09 * (+136) /* Interpreter */
06:31:14 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90979&oldid=90978 * Dtp09 * (+30) /* Interpreter */
06:31:57 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90980&oldid=90979 * Dtp09 * (-2) /* Interpreter */
06:33:18 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90981&oldid=90980 * Dtp09 * (+4) /* Interpreter */
06:33:53 -!- sprout has joined.
06:37:21 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90982&oldid=90981 * Dtp09 * (+33)
06:38:50 -!- sprout has quit (Ping timeout: 260 seconds).
06:51:29 <Sgeo> inferred type: (a : $c) -> <focus<$c>|_e> $c
06:51:29 <Sgeo> expected type: ($a) -> (focus<$b>) $c
06:53:04 <int-e> . o O ( not my type of problem )
07:07:16 -!- sprout has joined.
07:07:34 <Sgeo> > ((1, 2), (3, 4)).get-elim(focus.vl-fst.vl-snd)
07:07:34 <Sgeo> check : interactive
07:07:34 <Sgeo> check : interactive
07:07:34 <Sgeo> add default effect for std/core/exn
07:07:34 <Sgeo> linking: interactive
07:07:34 <Sgeo> created: .koka\v2.3.6\clang-cl-debug\interactive.exe
07:07:35 <lambdabot> • Variable not in scope: elim :: ((a2, c0) -> c0) -> a -> c
07:12:05 -!- sprout has quit (Ping timeout: 252 seconds).
07:12:42 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90983&oldid=90952 * Dtp09 * (+980)
07:13:41 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90984&oldid=90983 * Dtp09 * (+41)
07:16:06 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90985&oldid=90984 * Dtp09 * (+4)
07:21:48 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90986&oldid=90985 * Dtp09 * (+73)
07:22:09 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90987&oldid=90986 * Dtp09 * (+28)
07:24:58 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90988&oldid=90982 * Dtp09 * (+1197)
07:25:32 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90989&oldid=90987 * Dtp09 * (-45)
07:25:42 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90990&oldid=90988 * Dtp09 * (+20) /* Moai-Emoji Shaped Code That Outputs "MOAI" */
07:33:17 <esolangs> [[User:Dtp09]] https://esolangs.org/w/index.php?diff=90991&oldid=90989 * Dtp09 * (-1084) Replaced content with "Hello I made the [[Moaiscript]]"
07:38:44 -!- tromp has joined.
07:44:38 -!- sprout has joined.
07:49:46 -!- sprout has quit (Ping timeout: 260 seconds).
07:51:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:00:46 -!- BarryNL has joined.
08:02:45 -!- sprout has joined.
08:04:49 <BarryNL> Hi everyone, does anyone know of articles that discuss nested set comprehensions? I am interested in sets that are built from other set definitions, but whose elements are computed lazily.
08:04:56 -!- tromp has joined.
08:31:22 -!- delta23 has quit (Quit: Leaving).
08:42:42 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90992&oldid=90990 * Dtp09 * (+1007) /* Code Examples */
08:43:04 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90993&oldid=90992 * Dtp09 * (+1) /* Cat program */
08:43:32 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90994&oldid=90993 * Dtp09 * (+0)
08:43:59 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90995&oldid=90994 * Dtp09 * (-7) /* Cat program */
08:47:23 <esolangs> [[Moaiscript]] https://esolangs.org/w/index.php?diff=90996&oldid=90995 * Dtp09 * (+119)
08:49:46 <esolangs> [[Moaiscript]] M https://esolangs.org/w/index.php?diff=90997&oldid=90996 * Dtp09 * (+0) /* Moai-Emoji Shaped Code That Outputs "MOAI" */
09:01:38 -!- Bowserinator has quit (Ping timeout: 260 seconds).
09:01:54 -!- Bowserinator has joined.
09:04:34 <esolangs> [[Posset]] https://esolangs.org/w/index.php?diff=90998&oldid=90894 * BarryNL * (+181) Add a few materializations.
09:11:14 <int-e> Hmm, slow day in AoC
10:13:15 <esolangs> [[Posset]] https://esolangs.org/w/index.php?diff=90999&oldid=90998 * BarryNL * (+540) /* Examples */
10:13:17 <sprout> I only finished the previous day
10:14:16 <int-e> I wouldn't want today's in an esolang, honestly...
10:16:46 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
10:17:04 <sprout> https://pasteboard.co/9gdEwX7yj1Tq.png <- late day 18, task 2
10:17:51 <sprout> guess most fp programmers will have ended up with a similar solution. it's just zippers, added the depth to that, which was overkill probably
10:18:15 <sprout> hmhm, egel is probably too slow for today
10:18:18 -!- Lord_of_Life has joined.
10:20:06 <b_jonas> oh, you want to put a blsq executable on HackEso, that's why you care about the size
10:20:17 <b_jonas> and I'm not sure HackEso has a ghc yet
10:31:34 -!- Sgeo has quit (Read error: Connection reset by peer).
10:43:41 -!- BarryNL has quit (Ping timeout: 245 seconds).
10:52:31 -!- BarryNL has joined.
11:00:07 -!- BarryNL has quit (Read error: Connection reset by peer).
11:44:39 -!- BarryNL has joined.
12:01:31 -!- kspalaiologos has joined.
12:05:32 -!- dyeplexer has joined.
12:43:32 <esolangs> [[Special:Log/upload]] upload * BarryNL * uploaded "[[File:Posset-collapsed-variables.png]]"
13:02:07 <esolangs> [[Posset]] https://esolangs.org/w/index.php?diff=91001&oldid=90999 * BarryNL * (+1596) Adding short description of variable collapse.
13:08:45 <esolangs> [[Posset]] https://esolangs.org/w/index.php?diff=91002&oldid=91001 * BarryNL * (-5) /* Collapsed variables */
13:16:54 -!- u0_a3911 has quit (Ping timeout: 260 seconds).
13:43:12 -!- u0_a3911 has joined.
13:52:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:55:10 -!- tromp has joined.
14:59:02 <esolangs> [[Special:Log/newusers]] create * Esolang1 * New user account
15:02:26 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=91003&oldid=90968 * Esolang1 * (+249)
15:04:37 -!- sprout has quit (Ping timeout: 240 seconds).
15:09:46 -!- sprout has joined.
15:25:23 <esolangs> [[TUBSOIL]] N https://esolangs.org/w/index.php?oldid=91004 * Esolang1 * (+1046) Created new page: TUBSOIL
15:26:41 <esolangs> [[Esolang1]] N https://esolangs.org/w/index.php?oldid=91005 * Esolang1 * (+34) Created new page:Esolang1
15:27:47 <esolangs> [[TUBSOIL]] M https://esolangs.org/w/index.php?diff=91006&oldid=91004 * Esolang1 * (+1) Fixed typos: TUBSOIL
15:29:15 <esolangs> [[Joke language list]] M https://esolangs.org/w/index.php?diff=91007&oldid=90963 * Esolang1 * (+14) Added language: TUBSOIL
15:30:36 <esolangs> [[User:Esolang1]] N https://esolangs.org/w/index.php?oldid=91008 * Esolang1 * (+35) Created new page: User:Esolang1
15:31:01 <esolangs> [[TUBSOIL]] M https://esolangs.org/w/index.php?diff=91009&oldid=91006 * Esolang1 * (+5) Fixed typos: username
15:39:49 <esolangs> [[TUBSOIL]] https://esolangs.org/w/index.php?diff=91010&oldid=91009 * Esolang1 * (+276) Added informations: memory info; added categories
15:39:58 -!- u0_a3912 has joined.
15:42:57 -!- u0_a3911 has quit (Ping timeout: 240 seconds).
15:45:10 <esolangs> [[User:Esolang1]] M https://esolangs.org/w/index.php?diff=91011&oldid=91008 * Esolang1 * (+73) Added introduction
15:49:39 -!- leah2 has quit (Remote host closed the connection).
15:51:17 -!- Noisytoot has quit (Ping timeout: 250 seconds).
15:51:40 -!- Noisytoot has joined.
15:51:55 -!- leah2 has joined.
16:04:20 <fizzie> int-e: Yeah, I'm not sure I can possibly be bothered to continue the Burlesque streak.
16:12:11 <Corbin> Do folks have thoughts about the terminology of relexification, or "relex", for trivial substitutions?
16:15:29 <fizzie> In Go I did a thing that relies on the fact that if you, within each scanner's report, take the (x, y, z) distance triples between all pairs of beacons and then reorder each triple by magnitude, the result is invariant to translation and rotation, and it just happens that for every overlapping pair of scanners, there's exactly 12*11/2 such ordered-distance pairs they have in common.
16:19:42 -!- kspalaiologos has quit (Quit: Leaving).
16:20:17 -!- sprout has quit (Ping timeout: 268 seconds).
16:25:14 <oren> I did it yesterday but didn't complete it
16:25:38 <oren> I missed the fact that when the scanners overlap they overlap by 12
16:30:56 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:48:23 -!- sprout has joined.
16:53:26 -!- sprout has quit (Ping timeout: 252 seconds).
16:57:04 -!- tromp has joined.
17:25:09 -!- sprout has joined.
17:30:13 -!- sprout has quit (Ping timeout: 240 seconds).
17:59:57 -!- sprout has joined.
18:02:38 -!- dyeplexer has quit (Remote host closed the connection).
18:04:00 -!- dutch has joined.
18:05:08 -!- sprout has quit (Ping timeout: 268 seconds).
18:09:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:34:08 -!- sprout has joined.
18:34:08 -!- earendel has quit (Quit: Connection closed for inactivity).
18:38:57 -!- sprout has quit (Ping timeout: 240 seconds).
18:53:05 -!- tromp has joined.
19:08:31 -!- sprout has joined.
19:13:01 -!- sprout has quit (Ping timeout: 240 seconds).
19:38:52 -!- u0_a3912 has quit (Read error: Connection reset by peer).
19:39:15 -!- u0_a3912 has joined.
19:42:27 -!- sprout has joined.
19:51:33 -!- delta23 has joined.
19:51:57 <esolangs> [[Special:Log/newusers]] create * Stripeagremlin * New user account
20:03:46 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=91012&oldid=91003 * Stripeagremlin * (+143)
20:09:07 -!- Sgeo has joined.
20:09:51 <esolangs> [[User:Stripeagremlin]] N https://esolangs.org/w/index.php?oldid=91013 * Stripeagremlin * (+40) Created page with "I don't currently have any languages out"
20:17:15 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:25:58 -!- imode has quit (Quit: brb).
20:43:02 -!- delta23 has quit (Quit: Leaving).
20:43:31 -!- tromp has joined.
20:53:47 <oren> I finished aoc 19
20:54:00 <riv> well done, what algorithm did you use
20:54:14 <riv> I like the magnitude idea
20:56:00 <oren> I started by finding triplets of beacons visible to one scanner such that their distances all differ and correspond to a triplet of beacons already in my list
20:57:03 <oren> then I figured out the 3d transform that, therefore, maps the scanner to scanner-0 space
20:57:34 <oren> then added all beacons in that scanner's space to my list of eacons in scanner-0 space
20:57:46 <oren> (and transformed their coordinated)
20:58:26 <oren> This algorithm would have been way easier if I was working in language with matrices/vector math builtin
20:58:59 <oren> https://gist.github.com/orenwatson/0500db2d2a697f01ad920140c6579b1a
20:59:32 <oren> however, obviously, this isn't guaranteed to work
21:00:00 <esolangs> [[Posset]] https://esolangs.org/w/index.php?diff=91014&oldid=91002 * BarryNL * (+99) Add partially applied function-like feature
21:00:03 <oren> it is possible for there to have been two congruent triplets of points
21:00:27 <oren> since the question specified that beacons overlap by *12* points
21:01:19 <fizzie> Heh, I like the `for if for for for for if for if for if if if` triangle.
21:01:19 <oren> er, is congruent the right word?
21:02:09 <fizzie> Still haven't done the Burlesque thing. I started a little, lost track of what sort of formats I have on the stack, and decided to come back to it later.
21:02:16 <oren> well it turned out that in my input only 3 corresponding points were neede to uniquely identify a 3d transform
21:03:32 <fizzie> I derive the transformations from 2 matched point pairs.
21:03:48 <oren> ah, so 4 points total
21:05:22 <fizzie> Depends on how you count, I guess. I mean the two different (scanner 1 vs. scanner 2) coordinates for two "actual" points.
21:07:04 <fizzie> Specifically, I take a2-a1 on one side and b2-b1 on the other and check which rotation makes that difference equal; and then read the translation off of a1 vs. rotated b1.
21:07:40 <fizzie> At least Burlesque's going to have a matrix multiplication builtin, so actually translating the points will be easy if I get that far.
21:10:49 <fizzie> Also figured out 1000XXr@NB gives the 4x4 identity matrix (1000 → {1 0 0 0} → list all permutations → remove duplicates), but maybe there's a shorter way to write it too.
21:14:28 <oren> well with 3 points there is the possibility that your triangle is upside down
21:15:07 <oren> but in that case it is unlikely that points in your transformed space line up on integral coordinates
21:16:39 <oren> I could have ptu more logic in to exclude triplets that could cause these weird cases
21:19:32 <oren> but there's definitely a tradeoff etween assuming too much of your input vs assuming too little and never finishing
21:35:32 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:47:06 -!- dutch has quit (Quit: WeeChat 3.3).
21:48:57 -!- immibis has quit (Remote host closed the connection).
21:52:51 -!- immibis has joined.
21:53:50 -!- tromp has joined.
22:03:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:11:11 -!- sprout has quit (Ping timeout: 245 seconds).
22:33:18 -!- earendel has joined.
22:42:19 -!- sprout has joined.
22:44:47 -!- tromp has joined.
22:47:33 -!- sprout has quit (Ping timeout: 268 seconds).
22:53:44 -!- u0_a3913 has joined.
22:57:32 -!- u0_a3912 has quit (Ping timeout: 252 seconds).
23:00:44 -!- sprout has joined.
23:02:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:03:25 -!- tromp has joined.
23:04:38 -!- u0_a3913 has changed nick to Kit.
23:04:57 -!- sprout has quit (Ping timeout: 240 seconds).
23:07:58 <esolangs> [[Special:Log/newusers]] create * Gamingbrew * New user account
23:32:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:36:32 -!- sprout has joined.
23:41:32 -!- sprout has quit (Ping timeout: 252 seconds).
23:54:41 -!- sprout has joined.
23:59:06 -!- sprout has quit (Ping timeout: 268 seconds).