←2016-10-17 2016-10-18 2016-10-19→ ↑2016 ↑all
00:08:43 -!- otherbot has joined.
00:26:22 -!- augur has joined.
00:28:32 -!- DHeadshot has quit (Ping timeout: 260 seconds).
00:29:18 -!- Zarutian has quit (Quit: Zarutian).
00:33:22 -!- moony has joined.
00:34:18 -!- moonheart08 has quit (Ping timeout: 265 seconds).
00:48:15 <hppavilion[1]> Today's smbc... actually seems like something that one could do
00:48:55 <hppavilion[1]> Find someone with the last name Riemann and pay them to make utterly stupid mathematical statements
00:54:55 <oerjan> should be a rieot.
00:55:55 <shachaf> relcoerjan
00:56:12 <oerjan> yochaf
00:56:42 <shachaf> `? oerjan
00:56:46 <HackEgo> Your mysterious weevil bulgarian quack octoberlord oerjan is a lazy expert in suture computation. Also a Pre-recombination Glaswegian who mildly dislikes Roald Dahl and passion fruit. Lately when he tries to remember a word, "amortized" pops up. His arch-nemesis is Betty Crocker. He sometimes puns without noticing it.
00:56:54 <shachaf> still an octoberlord?
01:00:37 <oerjan> it is still october, after all
01:01:01 <oerjan> `slwd oerjan//s/quack/woof/
01:01:03 <HackEgo> wisdom/oerjan//Your mysterious weevil bulgarian woof octoberlord oerjan is a lazy expert in suture computation. Also a Pre-recombination Glaswegian who mildly dislikes Roald Dahl and passion fruit. Lately when he tries to remember a word, "amortized" pops up. His arch-nemesis is Betty Crocker. He sometimes puns without noticing it.
01:01:59 <oerjan> `slwd oerjan//s/comput/complic/
01:02:00 <HackEgo> wisdom/oerjan//Your mysterious weevil bulgarian woof octoberlord oerjan is a lazy expert in suture complication. Also a Pre-recombination Glaswegian who mildly dislikes Roald Dahl and passion fruit. Lately when he tries to remember a word, "amortized" pops up. His arch-nemesis is Betty Crocker. He sometimes puns without noticing it.
01:02:18 <oerjan> THE WISDOM MUST FLOW
01:03:48 <shachaf> i am computic
01:04:30 <oerjan> don't you mean computit hth
01:04:42 <int-e> I forgot how time consuming installing new PCs is.
01:05:17 <shachaf> ah, right
01:27:59 <hppavilion[1]> Oh my god
01:28:08 <hppavilion[1]> I just spent over an hour trying to debug a caesar cypher
01:28:59 <hppavilion[1]> It turns out I made ord() (which is defined for any alphabet object) return -1 when given the null character accidentally
01:36:48 -!- otherbot has quit (Remote host closed the connection).
01:37:02 -!- otherbot has joined.
01:37:19 <Cale> int-e: yeah, and then you get it "mostly done" and get to discover all the things you forgot to set up over the next few weeks
01:45:45 <hppavilion[1]> And now I also have Atbash
01:52:10 -!- Cale has quit (Ping timeout: 250 seconds).
01:58:04 -!- moony has quit (Ping timeout: 260 seconds).
01:58:59 <hppavilion[1]> I've set up a program that runs various tests on all of my encryption definitions
02:06:22 <hppavilion[1]> And now it can handle cyphers that require multiple keys (e.g. affine)
02:21:42 -!- imode has joined.
02:32:15 <tswett> Uh oh, what did I just sign myself up for?
02:33:04 <tswett> I've decided to write the natural-number division and modulo functions using primitive recusion.
02:34:10 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
02:34:24 -!- augur has quit (Remote host closed the connection).
02:34:52 -!- augur has joined.
02:40:32 <oerjan> tswett: that doesn't sound so hard. now try doing it in logspace hth
02:47:38 -!- Akaibu has quit (Ping timeout: 250 seconds).
02:49:23 -!- Akaibu has joined.
02:53:35 -!- iconmaster has joined.
02:54:07 -!- iconmaster has quit (Client Quit).
02:59:08 -!- hppavilion[1] has joined.
03:14:33 <tswett> Roight. Modulo.
03:14:48 <tswett> mod(x,y) should probably be computed by recursion over x.
03:14:56 <tswett> Doing it by recursion over y sounds like a bad idea.
03:17:06 <tswett> `? all
03:17:07 <HackEgo> All that glitters is not gold.
03:19:34 <oerjan> tswett: have considered computing mod by using div as a subroutine hth
03:19:46 <tswett> You can do that?
03:20:20 <oerjan> mod(x,y) = x - y*div(x,y) hth
03:20:39 <oerjan> *have you
03:20:44 <tswett> Ooh. Yeah, gee, that's a good idea.
03:20:48 <tswett> Thanks!
03:20:56 <oerjan> you're welcome
03:23:48 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:26:30 <tswett> 'Course, I went ahead and did the wrong thing. I defined modulo all by itself and now I have to define division.
03:29:42 <tswett> Am I going to end up defining a helper function for this?
03:29:57 <tswett> This feels like the sort of thing that will need a helper function.
03:33:36 <tswett> Here we go. I can just define div_mod all in one shot.
03:33:50 <oerjan> that also works.
03:35:18 -!- Cale has joined.
03:40:42 <tswett> Next up: GCD.
03:42:51 <tswett> Man. It's totally obvious how to implement GCD if I'm allowed to recurse back to arbitrary smaller arguments.
03:43:12 <oerjan> just count down from the original size hth
03:43:33 <oerjan> that'll always be larger, and will be enough to force it to halt.
03:44:17 <oerjan> or hm
03:44:44 <oerjan> well i think that should work, just requires a bit of a helper function
03:44:59 <tswett> Yup, I'll probably do that.
03:49:00 <hppavilion[1]> OK, "a div b" must mean something weird
03:49:06 <hppavilion[1]> What is it?
03:49:24 <tswett> I think it's usually floor(a/b).
03:49:31 <hppavilion[1]> Oh.
03:49:48 <hppavilion[1]> tswett: In this context?: https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm#Pseudocode
03:50:48 <tswett> I think so.
03:51:33 <hppavilion[1]> OK
03:51:59 <hppavilion[1]> YES!
03:52:04 <hppavilion[1]> AFFINE CYPHER WORKS!
03:52:29 <hppavilion[1]> (FOR EXACTLY ONE 6-LETTER TEST STRING WITH FIXED KEYS!)
04:01:05 <hppavilion[1]> (s/EXACTLY/AT LEAST/ !)
04:01:25 <tswett> Man, my code looks weird.
04:01:51 <tswett> inductive of t append(_, y : List(t)) over List(t) { empty := y; cons(h, t) := cons(h, base); }
04:02:08 <hppavilion[1]> tswett: I have code with the segment <<results[msg][t][cyn][aln][k][0]>> used multiple times
04:02:29 <hppavilion[1]> I wrote it 20 minutes ago and I don't remember what it does
04:03:04 -!- hppavilion[1] has set topic: There is currently an esolang contest: http://calesyta.xyz/en/ | Warning: This channel may contain large-scale traces of ionizing radiation | The international hub of esoteric pizza discussion and development | http://esolangs.org/ | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf.
04:03:29 <hppavilion[1]> `? #esoteric
04:03:30 <HackEgo> ​#esoteric is the only channel that exists. After monqy left it became slightly off-centër. It's a 7-codimensional hyperenchilada about 30 m (100 ft) across. oerjan seems to be making a lawn in the northern part, but it keeps getting dug up by free ranging moons. May contain crude drawings of nuts.
04:13:17 <hppavilion[1]> I forget, did the actual reactors at Fukushima explode, or was it only the systems sustaining them?
04:14:17 <hppavilion[1]> I seem to remember hearing that they actually exploded in the sense that the television screen would have been turned entirely white due to the light
04:16:07 <hppavilion[1]> It was definitely on the same day as the earthquake (in retrospect, I live in Alaska and probably would have felt it)... maybe they were referring to Chernobyl as an analogy for how bad it could get?
04:18:22 * pikhq blinks
04:18:25 <pikhq> You live in AK?
04:18:35 <tswett> In retrospect, hppavilion[1] lives in Alaska.
04:18:37 * tswett coughs.
04:18:45 <hppavilion[1]> pikhq: ...yes.
04:18:51 <pikhq> Huh.
04:18:52 <hppavilion[1]> pikhq: Were you not aware?
04:18:54 <pikhq> No.
04:19:02 <hppavilion[1]> I'm pretty sure boily has my actual address. Somehow.
04:19:10 <shachaf> And body weigh, no doubt.
04:19:13 <hppavilion[1]> And also, I @metar PAMR
04:19:16 <hppavilion[1]> @metar PAMR
04:19:16 <lambdabot> PAMR 180253Z AUTO 01004KT 10SM OVC075 04/M09 A2909 RMK AO2 SLP852 T00391089 53013 TSNO
04:19:24 <hppavilion[1]> Which is an airport that's under a mile from my house
04:19:37 <hppavilion[1]> Hm, still no negative temperatures
04:20:13 <pikhq> I don't read metar
04:20:27 <hppavilion[1]> shachaf: If I were to enter cardiac arrest, boily would probably call an ambulance before the people around me.
04:20:44 <hppavilion[1]> pikhq: I do, but only to feel smug at people who don't
04:20:51 <hppavilion[1]> (Overcast, huh)
04:21:00 <tswett> Man, recursion over just one argument is a tough way to get stuff done.
04:21:15 <shachaf> @quote Jafet argument
04:21:15 <lambdabot> Jafet says: unsafeCoerce takes any argument. AND IT WINS THAT ARGUMENT.
04:21:25 <pikhq> @metar KCOS
04:21:25 <lambdabot> KCOS 180254Z 03007KT 10SM CLR 09/M03 A2992 RMK AO2 SLP068 T00891033 51046
04:21:27 <hppavilion[1]> tswett: I prefer infinite recursion over infinitely many arguments
04:21:34 <shachaf> oerjan: have you considered nopinging `quote wth
04:22:28 <hppavilion[1]> Hm, there should be a /me's command
04:23:04 <hppavilion[1]> (well, /my)
04:24:22 <oerjan> shachaf: very briefly.
04:25:02 <hppavilion[1]> This election has hit forecasters hard; all they can really do is discuss HOW bad Trump is doing
04:25:34 <pikhq> No kidding.
04:26:40 <shachaf> copumpkin: are you going to vote early or wait until nov 8
04:27:46 <hppavilion[1]> shachaf: itym nov 28
04:27:56 <pikhq> That's only the date for Trump votes.
04:28:03 <hppavilion[1]> (Trump accidentally said that election day is nov 28)
04:30:35 <hppavilion[1]> Utah's democrat senatorial candidate (0.3% chance) is apparently named "Misty Snow"
04:30:51 <hppavilion[1]> Which I can't tell whether it's a videogame name or a pornstar name
04:34:11 <shachaf> What happens when you represent computable reals in balanced ternary?
04:37:48 <oerjan> is this a pun
04:37:56 <shachaf> No.
04:38:14 <shachaf> But does balanced ternary avoid the 0.111... = 1.000... problem?
04:39:25 <tswett> Not really.
04:39:40 <tswett> The number 1 only has one representation, but consider, lemme see.
04:40:09 <tswett> Like, 0.111... versus 1.(-1)(-1)(-1)...
04:40:19 <tswett> I'm pretty sure those are both the same number.
04:40:22 <oerjan> avoiding that would prove an interval homeomorphic to a cantor set tinp
04:40:29 -!- `^_^v has joined.
04:41:01 <shachaf> oerjan: Well, I'm sure it causes some other problem, I'm not proposing that the reals are secretly disconnected and no one noticed.
04:41:11 <shachaf> Which is why I'm asking what happens.
04:41:46 <oerjan> well i'm saying that automatically implies you _must_ have a collision
04:41:49 <tswett> I think the answer is, you still end up with the 0.111... = 1.000... problem, just with different numbers.
04:42:07 <shachaf> I'm not saying there isn't a collision.
04:42:11 <oerjan> or else, discontinuity, which you don't seem to have here.
04:42:20 <shachaf> But doesn't balanced ternary have this property that truncation is the same operation as rounding?
04:42:38 <oerjan> shachaf: what's the 0.111... = 1.000... problem other than a collision
04:44:04 <shachaf> I guess you end up with tswett's collision.
04:44:16 <shachaf> Both equal to 1/2
04:45:59 <oerjan> trausiple
04:46:02 <oerjan> *b
04:46:22 * oerjan chases muphry across the channel with the swatter -----###
04:46:45 <tswett> Which letter is b supposed to be correcting?
04:46:52 <hppavilion[1]> Hm, the problem with using Cladistics for taxonomy is that, over evolutionary time, you have to keep adding new levels
04:47:14 -!- Cale has quit (Quit: Leaving).
04:47:23 <hppavilion[1]> So what's a species today could be future peoples' relative equivalent of a class
04:48:04 <pikhq> Part of the thing with cladistic taxonomy is, you don't rank the groupings at all.
04:48:25 <pikhq> i.e. the kingdom domain etc. thing is bogus.
04:48:40 <pikhq> There's just life, which includes the bacteria and the archaea.
04:48:56 <pikhq> (the eukaryotes appear to be members of the archaean clade)
04:49:27 <hppavilion[1]> Ah
04:49:50 <hppavilion[1]> Right
04:55:50 <tswett> Whelp, I'm tired of writing primitive-recursive functions.
04:56:44 <tswett> I wanna do something more interesting, like proving that the natural numbers form a monoid.
05:01:44 <pikhq> Oh, c'mon. I can't even play the new Pokémon demo yet and there's already leaks from data mining happening?
05:05:08 <oerjan> tswett: p hth
05:05:28 <tswett> The collection of all decision problems solvable in polynomial time?
05:06:47 <oerjan> no, the corrected letter hth
05:07:26 <shachaf> the ptime numbers
05:07:49 <tswett> Ah.
05:17:35 <hppavilion[1]> Henceforth, people who insist we COMPLETELY replace pi with tau (rather than just having them both on hand for convenience) shall be known as "taurrorists"
05:19:26 <hppavilion[1]> Just because it's a nice pun
05:34:14 <\oren\> I'm nearly finished conquering all eurasia as the USSR
05:34:46 <\oren\> The iron curtain is now at the borders of france, belgium, and the netherlands
05:35:10 <\oren\> britain is slowly becoming communist
05:37:35 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
05:39:09 <oerjan> \oren\: soon you will have it all except for a small, annoying village in bretagne that somehow defeats all your plans hth
05:39:58 <oerjan> (yep, that includes your nukes)
05:41:05 <shachaf> How do you draw a 0xn or nx0 matrix?
05:41:14 <oerjan> shachaf: -----------
05:41:33 <shachaf> Hard to tell the dimensionality that way.
05:41:43 <oerjan> yep
05:43:30 <izalove> \
05:43:32 <izalove> \
05:43:34 <izalove> \
05:43:36 <izalove> \
05:43:38 <izalove> \
05:43:40 <izalove> \
05:43:42 <izalove> \
05:43:48 -!- atehwa has quit (Ping timeout: 245 seconds).
05:43:55 -!- atehwa has joined.
05:44:02 <izalove> shachaf: ^
05:44:14 <oerjan> i think your basis is off hth
05:44:57 <izalove> /
05:44:59 <izalove> /
05:45:01 <izalove> /
05:45:03 <izalove> /
05:45:05 <izalove> /
05:45:07 <izalove> /
05:45:09 <izalove> /
05:45:11 <izalove> /
05:45:13 <izalove> /
05:45:15 <izalove> //
05:45:19 <izalove> did i fix the basis?
05:45:24 <shachaf> oerjan: a baseless accusation hth
05:46:50 -!- hppavilion[1] has joined.
05:47:45 -!- digin4 has joined.
05:49:23 <oerjan> shachaf: are you saying i'm thinking too linearly?
05:49:56 -!- otherbot has quit (Remote host closed the connection).
05:59:25 -!- digin4 has quit (Quit: Leaving).
06:13:52 -!- ais523 has joined.
06:18:57 <hppavilion[1]> Fun little encrypter I made: seqxor (sequential xor)
06:19:04 <hppavilion[1]> Almost certainly been done before, but I like it
06:19:14 <hppavilion[1]> Turns "walrus" to (hex) 77 16 0D 1E 07 06
06:21:37 <ais523> oh, is it just xoring each byte of plaintext with the previous byte of ciphertext?
06:21:46 <ais523> that seems fairly easy to cryptanalyse…
06:22:01 <hppavilion[1]> ais523: No, it xors each byte in the plaintext with the previous byte in the plaintext
06:22:13 <ais523> oh
06:22:18 <hppavilion[1]> ais523: Obviously, it isn't good on its own because it violates Kerckhoffs's Assumption
06:22:20 <ais523> that's even easier to cryptanalyse :-P
06:23:05 <hppavilion[1]> (Unless, of course, you're using it against someone REALLY bad at crypto- pretty much exclusively if it's written on physical paper and passed to someone else)
06:23:07 <hppavilion[1]> ais523: Yes :P
06:23:32 <hppavilion[1]> But it'd probably make a good component of a larger system
06:23:41 <ais523> not really
06:23:43 <ais523> as there's no way to key it
06:23:52 <hppavilion[1]> ais523: Yeah, exactly. No key
06:24:00 <ais523> modern ciphers are basically just random number generators
06:24:09 <hppavilion[1]> Yes
06:24:27 <ais523> which you either seed with the message + key (block ciphers), or else seed with the key and xor with the message (stream ciphers)
06:24:28 <hppavilion[1]> (If you want a key, you start with the key as a character and exclude it from the output)
06:24:43 <ais523> hppavilion[1]: if keying only affects the first character it's not very useful
06:24:56 <hppavilion[1]> ais523: Good point
06:25:08 <hppavilion[1]> (Xoring cyphertext almost certainly works better)
06:27:09 <pikhq> *facepalm* Oh, GameFreak, how do you screw up like that?
06:27:50 <pikhq> Apparently, in the SUMO demo, they managed to scrub out data for everything... but the freaking models for shiny Pokémon.
06:30:14 -!- oerjan has quit (Quit: Nite).
06:31:31 <hppavilion[1]> ais523: There, now I have one that uses the previous CYPHERtext character each time, and can be keyed (...by a single byte)
06:31:58 <myname> pikhq: what's sumo?
06:32:13 <ais523> Pokémon Sun/Moon?
06:32:25 <myname> ah
06:32:58 <myname> i don't really follow that in lack of console
06:33:12 <myname> the latest handheld i own is a ds phat
06:35:57 <pikhq> *If* you want to, the 2DS is fairly cheap these days.
06:36:12 <myname> i know, i thought about it
06:37:06 <myname> also, sky3ds looks promising
07:06:27 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
07:45:22 -!- hppavilion[1] has joined.
07:45:55 <hppavilion[1]> Can OEIS extend indefinitely?
07:46:11 <hppavilion[1]> (as in, sequences of the OEIS- can they be lazy-evaluated?)
07:47:16 <ais523> OEIS often gives a formula, if there is one
07:52:54 -!- Frooxius has joined.
07:57:26 -!- MoALTz has quit (Quit: Leaving).
08:07:00 -!- imode has quit (Ping timeout: 250 seconds).
08:10:08 -!- augur has quit (Ping timeout: 256 seconds).
08:12:14 -!- augur has joined.
08:14:59 -!- augur has quit (Remote host closed the connection).
08:16:38 -!- hppavilion[1] has quit (Quit: Leaving).
08:18:17 -!- copumpkin has quit (Ping timeout: 250 seconds).
08:21:20 -!- copumpkin has joined.
08:27:52 -!- ais523 has quit.
08:49:41 -!- augur has joined.
09:05:36 <b_jonas> hpp: no, OEIS only contains static data. many entries contain code to compute the series, but OEIS itself doesn't run those.
09:05:52 <b_jonas> hpp: http://oeis.org/eishelp2.html tells about the format
09:09:08 <b_jonas> hppavilion[1]: in particular, OEIS is only allowed to have as many lines as fit in three lines of the screen.
09:10:40 <b_jonas> At least 4 terms are required, and there's an "easy" keyword to mean that terms of the sequence are easy to compute.
09:41:01 -!- fungot has joined.
09:47:45 <b_jonas> hi, fungot.
09:47:46 <fungot> b_jonas: headlines tell: the majority of the implementors who currently implement a dase must agree to withdraw it... maxium recursion fnord")
11:33:21 -!- boily has joined.
11:40:30 -!- AnotherTest has joined.
11:45:21 <HackEgo> [wiki] [[Headache]] https://esolangs.org/w/index.php?diff=50017&oldid=46810 * YSomebody * (+7)
11:45:29 <boily> `wisdom
11:45:32 <HackEgo> footnote 8//Isn't it fun reading through all the footnotes⁺?
12:09:01 -!- moony has joined.
12:18:40 -!- boily has quit (Quit: WEDDING CHICKEN).
12:20:38 -!- `^_^v has quit (Quit: This computer has gone to sleep).
12:28:04 -!- moony has quit (Ping timeout: 260 seconds).
13:09:07 -!- `^_^v has joined.
13:36:31 -!- Phantom_Hoover has joined.
14:49:08 -!- AnotherTest has quit (Ping timeout: 250 seconds).
14:51:24 -!- Cale has joined.
14:52:00 <copumpkin> shachaf: not sure :)
14:59:55 -!- ais523 has joined.
15:06:26 -!- AnotherTest has joined.
15:44:14 -!- MoALTz has joined.
15:53:45 -!- HackEgo has quit (Remote host closed the connection).
15:53:56 -!- HackEgo has joined.
15:55:18 -!- lynn has quit (Ping timeout: 258 seconds).
16:03:53 -!- lynn__ has joined.
16:25:55 -!- otherbot has joined.
16:35:28 -!- AnotherTest has quit (Ping timeout: 250 seconds).
16:50:58 -!- AnotherTest has joined.
16:58:58 -!- lynn__ has changed nick to lynn.
16:59:18 -!- lynn has quit (Changing host).
16:59:18 -!- lynn has joined.
16:59:18 -!- lynn has quit (Changing host).
16:59:18 -!- lynn has joined.
17:20:17 -!- DHeadshot has joined.
17:52:56 -!- DHeadshot has quit (Ping timeout: 260 seconds).
17:54:53 -!- DHeadshot has joined.
18:02:40 <alercah> the worst coin flip in history is surely the sign of charge
18:03:37 -!- imode has joined.
18:04:44 -!- LKoen has joined.
18:08:12 <shachaf> i,i "the sign of charge", more commonly known as "alternating current"
18:08:14 <shachaf> er
18:08:18 <shachaf> i,i "the sine of charge", more commonly known as "alternating current"
18:08:23 <shachaf> what a mess
18:09:20 -!- DHeadshot has quit (Ping timeout: 244 seconds).
18:12:49 -!- DHeadshot has joined.
18:33:21 -!- nisstyre has quit (*.net *.split).
18:33:21 -!- dingbat has quit (*.net *.split).
18:33:21 -!- prooftechnique_ has quit (*.net *.split).
18:33:22 -!- Lord_of_- has quit (*.net *.split).
18:33:22 -!- jeffl35 has quit (*.net *.split).
18:33:25 -!- lambdabot has quit (*.net *.split).
18:33:25 -!- ski has quit (*.net *.split).
18:33:25 -!- clog has quit (*.net *.split).
18:33:25 -!- Guest66666 has quit (*.net *.split).
18:33:25 -!- Taneb has quit (*.net *.split).
18:33:25 -!- kline has quit (*.net *.split).
18:33:25 -!- Jafet has quit (*.net *.split).
18:33:25 -!- BooK has quit (*.net *.split).
18:33:25 -!- pdxleif has quit (*.net *.split).
18:33:25 -!- feliks has quit (*.net *.split).
18:33:25 -!- zemhill has quit (*.net *.split).
18:33:27 -!- clog_ has joined.
18:33:31 -!- atriq has joined.
18:33:31 -!- zemhill_ has joined.
18:33:32 -!- ski_ has joined.
18:33:36 -!- Guest66666 has joined.
18:33:58 -!- BooK has joined.
18:34:02 -!- Jafet has joined.
18:34:02 -!- feliks has joined.
18:34:19 -!- kline has joined.
18:34:37 -!- prooftechnique has joined.
18:35:03 -!- pdxleif has joined.
18:35:42 -!- Lord_of_Life has joined.
18:36:13 -!- ocharles_ has quit (Ping timeout: 250 seconds).
18:37:43 -!- jeffl35 has joined.
18:37:56 -!- lambdabot has joined.
18:40:11 -!- dingbat has joined.
18:44:20 -!- ocharles_ has joined.
18:50:13 -!- Zarutian has joined.
19:09:38 -!- `^_^v has quit (Quit: This computer has gone to sleep).
19:12:23 <Zarutian> hmm.. does a Forth machine without any other branch instruction than EXIT (or return) fall under esoteric programming? (it also does not have add or subtract instructions in its set)
19:12:32 -!- DHeadshot_ has joined.
19:12:44 -!- ais523 has quit.
19:12:53 -!- ais523 has joined.
19:13:05 -!- DHeadshot has quit (Ping timeout: 252 seconds).
19:13:13 -!- ais523 has quit (Read error: Connection reset by peer).
19:13:41 -!- ais523 has joined.
19:13:46 -!- ais523 has quit (Changing host).
19:13:46 -!- ais523 has joined.
19:17:30 -!- ratpuke has joined.
19:18:12 <ratpuke> Been a long thyme since I came 'ere
19:22:17 -!- ratpuke has changed nick to Abaddon.
19:22:28 -!- Abaddon has left ("Leaving").
19:31:04 <ais523> huh, and they left before I noticed they were here
19:37:55 <APic> =]
19:37:59 <APic> Happens
19:43:12 <shachaf> `wisdom
19:43:13 <shachaf> `wisdom
19:43:13 <shachaf> `wisdom
19:43:14 <shachaf> `wisdom
19:43:14 <shachaf> `wisdom
19:43:21 <HackEgo> tdt//That doesn't tdt.
19:43:21 <HackEgo> monoidal category//Monoidal categories are just 2-categories with a single object.
19:43:21 <HackEgo> poland//Połąńd is a European country. Its population consists of two main ethnicities, the North Połes and the South Połes.
19:43:21 <HackEgo> rust//Rust is C++ as designed by the makers of Haskell.
19:43:21 <HackEgo> monad//Monads are just monoids in the category of endofunctors.
19:43:44 <shachaf> Those are strong monoidal categories in particular, right?
19:43:55 <shachaf> I imagine people usually talk about weak monoidal categories more often.
19:44:02 -!- hppavilion[1] has joined.
19:44:07 <hppavilion[1]> @metar PAMR
19:44:09 <lambdabot> PAMR 181753Z 00000KT 10SM OVC110 01/M05 A2953 RMK AO2 SLP002 T00061050 10011 21033 53015
20:03:31 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
20:05:40 <izalove> i wrote a sorta library thingy for small string optimization in c
20:05:43 <HackEgo> [wiki] [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=50018&oldid=50011 * B jonas * (+179) +Homespring
20:05:44 <izalove> https://github.com/izabera/s
20:05:59 <izalove> can someone check it out and see if i made some huge blunder?
20:09:18 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
20:12:34 <fizzie> I'm constitutionally unable to check non-portable code.
20:13:41 -!- hppavilion[1] has joined.
20:15:51 <izalove> it's portable to most 64 bit little endian archs if you compile with gcc or clang
20:17:54 <izalove> actually the endian isn't even necessary
20:20:12 <izalove> it just needs size_t to be at least 54 bits long and pointers to be at most 8 bytes long
20:20:33 <izalove> and a compiler that supports a few __builtin_* instructions
20:22:57 <fizzie> That's not really the full list of assumptions it makes.
20:23:20 <fizzie> It also assumes a particular way of packing bitfields, and support for #pragma once.
20:26:00 -!- bibibi has quit (Ping timeout: 250 seconds).
20:30:10 -!- izalove has quit (Remote host closed the connection).
20:30:23 -!- izabera has joined.
20:32:49 <izabera> i was actually assuming that pragma once was standard
20:35:29 -!- bibibi has joined.
20:35:31 <fizzie> There's a total of three standard #pragma directives, they're all of the form "#pragma STDC <name> on-off-switch" and they're about boring floating point stuff.
20:35:43 <ais523> the whole purpose of pragma is for nonstandard things
20:36:03 <ais523> but gcc decided to use __attribute__ instead because they didn't like the way pragma worked syntactically and were worried about clashing with other compilers
20:36:10 <ais523> then C99 added _Pragma to fix the syntax issues
20:37:32 <izabera> can you focus on the rest? <.<
20:40:18 <fizzie> Okay -- using size_t as the type of a bit-field relies on an implementation-defined extension. :)
20:40:38 <fizzie> (I'd be pointing out "real problems" (FSVO) if I had found one.)
20:40:57 <ais523> fizzie: is that true even if size_t is an alias for an unsigned int variety
20:42:20 -!- MoALTz has quit (Quit: Leaving).
20:42:22 <fizzie> Well, sort-of no, but it's implementation-defined what integer type it is, so that seems like a relatively minor distinction.
20:43:28 <fizzie> The exact rule is: A bit-field shall have a type that is a qualified or unqualified version of _Bool, signed int, unsigned int, or some other implementation-defined tpye. It is implementation-defined whether atomic types are permitted. (C11 6.7.2.1p5)
20:47:56 -!- ocharles_ has quit (Ping timeout: 250 seconds).
20:50:01 -!- ocharles_ has joined.
20:51:41 <fizzie> izabera: I like the idea of using space_left instead of bytes_used to make the flag byte act as the null termination, but I guess that sort of restricts what you can use the other flag bits for.
20:52:08 <izabera> they just have to be zeros when the string is in place and 15 bytes long
20:52:38 <izabera> so instead of is_in_place there's is_on_heap
20:55:32 <HackEgo> [wiki] [[Special:Log/newusers]] create * Ag8 * New user account
20:55:41 <fizzie> You could probably make it a compile-time error to use s_small_temporary on an overlong string.
20:56:09 -!- DHeadshot_ has quit (Ping timeout: 260 seconds).
20:58:01 <izabera> i couldn't come up with a way to put a static assert there
20:58:59 <fizzie> You can put a static assert anywhere an expression can go.
20:59:14 <ais523> although it's best to only place them in places where declarations go
20:59:29 <ais523> this is because static asserts can be implemented using declarations in older versions of C
20:59:40 <fizzie> Well, but a compound literal with a struct declaration is an expression that includes a declaration.
20:59:42 <ais523> you could probably do some trick with sizeof, though?
21:01:10 <fizzie> x -> ((struct { _Static_assert(sizeof x <= 16, "it's too big"); int dummy; }){1}, x)
21:01:26 <fizzie> Approximately.
21:01:42 <fizzie> And possibly with one of the static-assert hacks instead of a real _Static_assert if you like.
21:02:07 <izabera> i tried something like #define s_small_temporary(x) (_Static_assert(sizeof(x) <= 16, "no no no"), s_new(&s_literal_empty(), "" x)
21:02:32 <izabera> error: expected expression before ‘_Static_assert’
21:02:35 <izabera> #define s_small_temporary(x) (_Static_assert(sizeof(x) <= 16, "no no no"), s_new(&s_literal_empty(), "" x)
21:02:36 <izabera> ^
21:02:40 <fizzie> Yeah, it's a declaration.
21:03:02 <fizzie> You need something like that struct literal to make it part of an expression.
21:04:31 <izabera> error: expected ‘)’ before ‘;’ token
21:04:33 <izabera> s_cat(&s1, s_small_temporary("foo bar baz bat"));
21:04:35 <izabera> ^
21:04:42 <izabera> this is from #define s_small_temporary(x) ((struct { _Static_assert(sizeof x <= 16, "it's too big"); int dummy; }){1}, s_new(&s_literal_empty(), "" x)
21:04:53 <izabera> oh i stupid
21:05:11 <izabera> thanks it works
21:05:16 <fizzie> I'm not entirely sure *why* it's a declaration, although I vaguely recall I had a plausible argument at some point.
21:05:29 <fizzie> It certainly makes that sort of thing uglier, though.
21:06:13 <fizzie> Oh, right! Having it a declaration makes putting it outside functions less ugly.
21:06:54 <izabera> and i guess it would be unreasonable to be special and behave as both an expression and a declaration?
21:23:52 <\oren\> izabera: I think in some cicumstances that would introduce parsing ambiguities
21:24:15 <\oren\> (not that C++ even tries to avoid those anyway)
21:26:47 <int-e> df
21:27:11 <izabera> Filesystem Size Used Avail Use% Mounted on
21:27:13 <izabera> dev 1.9G 0 1.9G 0% /dev
21:27:15 <izabera> run 1.9G 920K 1.9G 1% /run
21:28:52 <int-e> IRC 250 105 120 42% #esoteric
21:30:50 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
21:34:12 <\oren\> but seriously, in canada you can't just "run for prime minister". You have to be an member of parliament and supported by a plurality of members in parliament. I think americans should really consider whether President Paul Ryan would be so bad.
21:40:23 <izabera> you have the factorization of x!
21:40:26 <izabera> how do you get x?
21:40:42 <ais523> izabera: multiply the factors together?
21:40:48 <izabera> and then what?
21:41:23 <izabera> let me clarify
21:41:33 <izabera> you have the factorization of x! (factorial of x)
21:41:53 <ais523> ah right
21:42:04 <ais523> it's fairly easy to figure out the largest prime ≤ x, at least
21:42:39 <int-e> the power of 2 determines floor(x / 2)
21:42:57 <izabera> good starting point
21:43:19 <izabera> kind of
21:43:45 <ais523> actually you just use the power of 2 and then test the two possibilities
21:43:46 <izabera> is there an easy way to get that?
21:44:20 <int-e> . o O ( inverse culmulative ruler function )
21:44:21 <izabera> but 6! = 2^4 * 3^2 * 5
21:45:06 <ais523> int-e is right, the problem is I'm not sure what the formula for the inverse cumulative ruler function looks like
21:45:18 <ais523> @oeis 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16
21:45:25 <lambdabot> https://oeis.org/A006519 Highest power of 2 dividing n.
21:45:25 <lambdabot> [1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,32,1,2,1,4,1...
21:45:28 <int-e> 4 = 1+2+1 --> it's 6 or 7; you need to test some prime factor of 7 to rule out 7!
21:46:21 <ais523> @oeis 1 3 4 8 9 11 12 20
21:46:25 <lambdabot> https://oeis.org/A006520 Partial sums of A006519.
21:46:25 <lambdabot> [1,3,4,8,9,11,12,20,21,23,24,28,29,31,32,48,49,51,52,56,57,59,60,68,69,71,72...
21:46:37 <izabera> @oeis A006519
21:46:38 <lambdabot> https://oeis.org/A006519 Highest power of 2 dividing n.
21:46:38 <lambdabot> [1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,32,1,2,1,4,1...
21:47:55 <int-e> note that it's easy to compute how often a prime p divides n!: just take n/p + n/p^2 + ... using truncating division and stopping when the terms reach 0
21:53:22 -!- DHeadshot has joined.
21:57:13 -!- S1 has joined.
22:03:03 -!- Cale has quit (Remote host closed the connection).
22:05:41 -!- S1 has left ("Leaving").
22:15:34 -!- lynn has quit (Read error: Connection reset by peer).
22:17:01 -!- lynn has joined.
22:17:25 -!- lynn has changed nick to Guest23427.
22:18:30 -!- Guest23427 has changed nick to lynn.
22:18:34 -!- lynn has quit (Changing host).
22:18:34 -!- lynn has joined.
22:18:34 -!- lynn has quit (Changing host).
22:18:34 -!- lynn has joined.
22:29:52 -!- moonheart08 has joined.
22:35:10 -!- atriq has changed nick to Taneb.
22:36:27 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
22:38:29 -!- Phantom_Hoover has joined.
22:41:18 <moonheart08> winderp: http://pasteboard.co/gAAPkAHyL.png
22:41:20 <moonheart08> pls explain
22:41:39 <ais523> moonheart08: wrong channel?
22:42:10 <moonheart08> no. i want a explaination, derpiest thing i've ever seen windows do
22:42:29 <moonheart08> im on hexchat. its complaining it cant start hexchat (another instancE) due to a missing DLL
22:42:32 <ais523> ah right
22:42:46 <ais523> I interpreted the "winderp:" as a nick, and mentally parsed it "winder-p"
22:48:02 -!- digin4 has joined.
22:48:39 <imode> winderp 10
22:48:49 <moonheart08> :P
22:48:50 -!- digin4 has left.
22:51:05 <moonheart08> imode: https://what-if.xkcd.com/imgs/a/16/lightning_bios.png
23:04:17 -!- ais523 has quit (Remote host closed the connection).
23:05:26 -!- ais523 has joined.
23:10:58 -!- moonheart08 has changed nick to sshark.
23:11:04 -!- sshark has changed nick to moony.
23:13:13 -!- boily has joined.
23:13:39 <boily> `wisdom
23:13:40 <HackEgo> morphism//A morphism is just a natural transformation between two functors on 1.
23:14:25 <ais523> that is a terrible definition :-D
23:14:43 <ais523> is there any non-circular way to make use of it?
23:15:41 -!- AnotherTest has quit (Ping timeout: 260 seconds).
23:18:59 <boily> it's a good definition. it has words in it, the verb "to be", and is totally impenetrable.
23:19:08 <boily> as to uncircularify it, fungot?
23:19:08 <fungot> boily: dmnt claimed it's 14. :p i think that
23:21:26 <ais523> actually I'm not even sure it's correct (although it might be)
23:21:56 <ais523> a morphism in a category C is a functor from 1 to C
23:22:04 <ais523> what does "functor on 1" even mean? functors have two endpoints
23:22:17 <ais523> and there is only one functor from 1 to 1
23:22:27 <ais523> wait, no
23:22:33 <ais523> I guess the definition is right
23:22:44 <ais523> you need two functors because the morphism has two endpoints
23:22:49 <shachaf> What you said is an object.
23:22:59 <shachaf> Yes.
23:23:41 <shachaf> Though "functors on 1" is an odd way to say "functors : 1 -> C"?
23:24:57 <shachaf> `? morphisms
23:24:58 <HackEgo> A morphism is just a natural transformation between two functors on 1.
23:25:12 <ais523> making it "functors from 1" would be clearer
23:25:16 <shachaf> Ah, not one of the ones with two definitions.
23:25:34 <shachaf> @quote copumpkin terminal
23:25:34 <lambdabot> copumpkin says: a monad is just a lax functor from a terminal bicategory, duh. fuck that monoid in category of endofunctors shit
23:26:04 <ais523> it took me a while to understand the endofunctor definition
23:26:47 <ais523> basically because the concept of an endofunctor violates my internal typechecker by merging things that I mentally consider different
23:26:55 <shachaf> Did you know applicative functors are also monoids in the category of endofunctors?
23:27:21 <boily> @quote boily
23:27:21 <lambdabot> No quotes match. Where did you learn to type?
23:27:31 * boily mapoles lambdabot for being cheeky
23:28:35 <ais523> shachaf: well monads are applicative functors
23:28:40 <ais523> but the opposite isn't necessarily true?
23:28:42 <ais523> `? monad
23:28:43 <HackEgo> Monads are just monoids in the category of endofunctors.
23:28:56 <shachaf> `? monads
23:28:57 <HackEgo> Monads are just free monad monad monad algebras.
23:28:59 <ais523> so I guess the definition of monad is more general than it should be?
23:29:06 <shachaf> ?
23:29:21 <shachaf> I'm talking about a different category of endofunctors.
23:29:37 <shachaf> or rather the same endofunctors but a different tensor product.
23:29:41 <shachaf> O
23:29:49 <\oren\> `? algebra
23:29:50 <HackEgo> algebra? ¯\(°​_o)/¯
23:30:01 <\oren\> `? endofunctor
23:30:02 <HackEgo> Endofunctors are just endomorphisms in the category of categories.
23:30:10 <\oren\> `? endomorphism
23:30:11 <HackEgo> Endomorphisms are just morphisms which compose with themselves.
23:30:20 <\oren\> `? morphism
23:30:21 <HackEgo> A morphism is just a natural transformation between two functors on 1.
23:30:36 <\oren\> `? functor
23:30:37 <HackEgo> Functors are just morphisms in the category of small categories.
23:30:49 <imode> what should I name my new programming language? candidates are Flame, SPL (Small Programming Language), SCL (Small Control Language), Nano, Nanostack, Jewel, Mark, and Oro.
23:30:49 <\oren\> ERROR! Cycle detected!
23:31:05 <shachaf> In the one where the tensor product is Day convolution.
23:31:48 <shachaf> particular
23:31:54 <shachaf> Typing on phones is scow.
23:32:33 <shachaf> You shouldn't user an acronym.
23:32:39 <shachaf> use
23:33:15 <ais523> imode: that possibly depends on the language's semantics
23:33:25 -!- Cale has joined.
23:33:26 <ais523> although I don't like SPL, you should probably have something more descriptive
23:34:22 <imode> ais523: based around a stack machine. intended as a "readable machine code"... has 48 commands, each of which are single-characters.
23:34:46 <ais523> oh, hmm, an esoasm
23:34:52 <imode> heh.
23:35:08 <imode> can post an example of a factorial function if you want.
23:35:23 <ais523> does it fit in one line of IRC? it probably should for that sort of language
23:35:28 <ais523> it's not a tarpit, at least
23:35:35 <imode> indeed, you can fit in one line.
23:35:36 <ais523> reminds me of Redcode more than anything else, from that description
23:35:48 -!- oerjan has joined.
23:36:08 <imode> ,:,1-[,1:?,:,2#,2#*,1#,1-].
23:36:31 <imode> thaaat's factorial! I can post the equivalent forth code.
23:36:41 <boily> `words
23:36:45 <HackEgo> anajv
23:36:51 <boily> `words -10
23:36:53 <HackEgo> Unknown option: 1 \ Unknown option: 0
23:36:55 <boily> `words -n10
23:36:56 <HackEgo> Unknown option: n \ Unknown option: 1 \ Unknown option: 0
23:36:59 <boily> ...
23:37:15 <boily> `words 10
23:37:16 <HackEgo> equaquil rrich orowing diphulen fidiq sec hau jem desidea mim
23:37:19 <boily> ah!
23:37:23 <ais523> imode: what does , do?
23:37:33 <imode> pushes a 0 to the stack.
23:37:45 <boily> imode: imhellode. orowing? diphulen? mim?
23:37:53 <ais523> I'm a little surprised that the command's being used that often
23:38:11 <imode> characters 0 through 9 and A through F perform an operation like...
23:38:22 <imode> stack[top] = (stack[top] << 4) | <digit>
23:38:31 <ais523> oh, it's a "this is the start of a number"
23:38:34 <\oren\> The blue jays just scored two goals in one faceoff!
23:38:39 <imode> yeah, kinda.
23:38:49 <boily> he\\oren\. Go Maple Leafs!
23:38:56 <imode> so, to add two numbers together...
23:38:58 <imode> 1,2+
23:39:05 <ais523> \oren\: ugh, my American sports knowledge is just good enough that I can probably figure out what that means given the sport, but just bad enough that I'm not 100% sure what sport it is
23:39:22 <\oren\> it's base ball
23:39:24 <imode> also, in lieu of a stack underflow, we just yield a ero.
23:39:27 <imode> *zero
23:39:32 -!- Cale has quit (Ping timeout: 250 seconds).
23:39:39 <ais523> imode: is this intended to be particularly golfy or just portable?
23:39:46 <imode> incredibly portable.
23:39:46 <pikhq> Goals? Baseball? Whut?
23:39:50 <ais523> \oren\: no it isn't, baseball is the one US sport I'm really confident on
23:40:03 <ais523> I used to watch it back when it was shown in the UK
23:40:03 <pikhq> The Blue Jays are a baseball team.
23:40:04 <imode> no parsing required! the instruction set is ASCII. :P
23:40:14 <pikhq> But... goals?
23:40:30 <ais523> hockey has goals, as do most variants of football (including american football)
23:40:38 -!- hppavilion[1] has joined.
23:40:52 <\oren\> they got two points in one down
23:40:58 <pikhq> The Maple Leafs are the hockey team from the same city (Toronto, Canada), so...
23:41:01 <pikhq> *wince*
23:41:08 <pikhq> That is neither hockey nor baseball.
23:41:17 <ais523> actually I think \oren\ is just trolling
23:41:20 <pikhq> Yeah.
23:41:27 <\oren\> because Encarnation hit the puck out of the stadium
23:41:33 <pikhq> Though, Toronto also has a (Canadian) football team...
23:41:33 <ais523> is a safety worth 2? that would be an easy way to get 2 points in one down
23:41:42 <hppavilion[1]> What types of numbers are used in big-O?
23:41:52 <hppavilion[1]> Like, obviously it's mostly real numbers
23:42:06 <ais523> oh, you're asking of big-O notation could use, say, complex numbers?
23:42:16 <hppavilion[1]> ais523: Not ATM
23:42:18 <pikhq> ais523: Yes, safeties are worth 2 in both common gridiron variants.
23:42:20 <boily> \oren\: oooh, you tengwared your font! ^^
23:42:24 <hppavilion[1]> But since you can have O(\inf) time, you clearly aren't just dealing with JUST real numbers
23:42:27 -!- DHeadshot has quit (Ping timeout: 252 seconds).
23:42:27 <ais523> the "n" in big-O notation acts a bit like whatever the reciprocal of an infinitesmal is
23:42:43 <hppavilion[1]> ais523: Yes...
23:42:49 <hppavilion[1]> (Isn't that infinity?)
23:42:57 <oerjan> Добройлый вечер!
23:43:01 <ais523> hppavilion[1]: only in nonstandard analysis
23:43:06 <ais523> so I guess it's a nonstandard number
23:43:26 <hppavilion[1]> ais523: By my understanding it just means an-arbitrary-but-fixed-constant
23:43:44 <ais523> hppavilion[1]: n? no
23:43:51 <hppavilion[1]> ais523: I suppose not...
23:43:52 <hppavilion[1]> Wait...
23:43:55 <hppavilion[1]> Hm...
23:43:56 <ais523> the most notable property that n in big-O notation has is that it's large compared to any real number
23:44:15 <hppavilion[1]> ais523: Wait, doesn't n usually mean "the size of the problem"
23:44:18 <ais523> because the whole point of big-O notation is to deal with asymptotic performance
23:44:20 <ais523> hppavilion[1]: yes
23:44:21 <boily> 晚尔亚安
23:44:21 <hppavilion[1]> Yes
23:44:25 <ais523> but, say, O(2n) = On)
23:44:32 <ais523> *O(n)
23:44:33 <hppavilion[1]> Yes, I forgot about that for a momen
23:44:37 <hppavilion[1]> *moment
23:45:07 <hppavilion[1]> ais523: You could probably say "n is a finite infinity" and capture the meaning while saying something utterly meaningless
23:45:10 <\oren\> boily: yes, I put in tengwar, but the dots won't look right unless your terminal knows elvish
23:45:16 <hppavilion[1]> (Take THAT, Chomsky!)
23:45:43 <boily> \oren\: bummer. at least you can write in Beleriand mode...
23:45:44 <ais523> I just realised what the hppavilion[1] style is
23:45:44 <pikhq> \oren\: Hrm, did they encode it with combining chars?
23:45:56 <hppavilion[1]> ais523: Wait, I have a style?
23:45:58 <\oren\> yeah.
23:45:59 <hppavilion[1]> What is it?
23:46:09 <pikhq> Grumble.
23:46:15 <ais523> most people, when they have ideas, start with the assumption that they need something possible and try to maximise creativity
23:46:17 <hppavilion[1]> (...is it in season?)
23:46:23 <ais523> whereas you start with the assumption that the idea has to be creative
23:46:31 <ais523> and then an idea is better if it's more possible
23:46:31 <hppavilion[1]> ais523: Yeah, pretty much
23:46:40 <hppavilion[1]> But that wasn't what I was doing right now, was it?
23:46:46 <ais523> so you approach the intersection of creative+reasonable from the opposite direction of most people
23:47:15 <\oren\> I should add sarati maybe
23:47:18 <hppavilion[1]> I was just trying to figure out what kinds of numbers you deal with in O
23:47:46 <boily> \oren\: is there support for vertical text in common terminal software?
23:47:51 * pikhq wonders what's holding up the Tengwar proposal...
23:47:54 <pikhq> boily: No.
23:48:10 <ais523> also I'm not convinced O(∞) is a real complexity class
23:48:12 <boily> pikhq: pikhelloq. aaaaaaaaaargh :(
23:48:13 <ais523> any more than O(0) is
23:48:16 <hppavilion[1]> ais523: But it IS looking like n behaves exactly like infinity in every way, except it's finite
23:48:17 <alercah> pikhq: I suspect nobody caring
23:48:22 <alercah> ais523: O(0) is
23:48:25 <hppavilion[1]> ais523: Oh? It isn't?
23:48:31 <alercah> O(\infty) is not
23:48:31 <hppavilion[1]> alercah: What's O(0) then?
23:48:33 <ais523> alercah: but it differs from O(1) by a constnat
23:48:39 <boily> alercah: hellorcah.
23:48:57 <hppavilion[1]> ais523: But then what's the worst case for bogosort?
23:49:11 <hppavilion[1]> Wait, do complexity classes only apply to algorithms? Probably
23:49:15 <alercah> ais523: it does, but it's even a distinct class
23:49:17 <pikhq> Actually, possibly not much. It appears to have a tentative assignment to U+16080-U+160FF.
23:49:21 <alercah> O(0) contains only the constant zero function
23:49:35 <hppavilion[1]> alercah: Wait, what?
23:49:40 <ais523> alercah: not constant functions that return other numbers?
23:49:48 <alercah> go back to the definition, folks ;)
23:49:48 <hppavilion[1]> alercah: You mean a function that always returns 0?
23:49:58 <ais523> actually my guess as to what O(0) means is that it only captures identity functions
23:50:04 <hppavilion[1]> And an algorithm has to ALWAYS, PROVABLY return a CORRECT answer in FINITE time
23:50:22 <alercah> f \in O(g) if there exists M and x_0 such that |f(x)| \le M|g(x)| for all x \ge x_0
23:50:33 <alercah> if g(x) = 0, then this can only be true if f(x) = 0 also
23:50:35 <hppavilion[1]> Therefor, Bogosort isn't a proper algorithm and complexity classes aren't 100% applicable
23:50:47 <alercah> `? randomized algorithms
23:50:48 <HackEgo> randomized algorithms? ¯\(°​_o)/¯
23:50:50 <pikhq> Of course, a tentative allocation only means that the Unicode Roadmap Committee is aware of the proposal and hasn't thrown it out as completely ridiculous.
23:51:10 <alercah> `le/rn randomized algorithms/Nobody tell hppavilion[1] about randomized algorithms.
23:51:13 <HackEgo> Learned 'randomized algorithms': Nobody tell hppavilion[1] about randomized algorithms.
23:51:27 <hppavilion[1]> alercah: Those aren't properly algorithms under the mathematical definition
23:51:27 <myname> :D
23:51:43 <hppavilion[1]> `rm "wisdom/randomized algorithms"
23:51:43 <HackEgo> rm: cannot remove `"wisdom/randomized algorithms"': No such file or directory
23:51:47 <ais523> `? strong pseudoprime
23:51:47 <HackEgo> strong pseudoprime? ¯\(°​_o)/¯
23:52:02 <hppavilion[1]> `rm wisdom/randomized algorithms
23:52:04 <HackEgo> No output.
23:52:07 <pikhq> (for comparison, Klingon does not even have a tentative allocation as yet)
23:52:11 <hppavilion[1]> Hm, `rw would be nice
23:52:14 <hppavilion[1]> `rw
23:52:15 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rw: not found
23:52:16 <alercah> ais523: and \infty is not a valid value for a function (assuming the reals, which I suppose might be unreasonable)
23:52:17 <ais523> pikhq: it has an unofficial one IIRC
23:52:28 <alercah> if you're using the extended reals, O(\infty) is all functions
23:52:45 <hppavilion[1]> `mkx bin/rw//rm "wisdom/$1"
23:52:47 <HackEgo> bin/rw
23:52:52 <pikhq> ais523: It has a PUA allocation with the Conscript Registry, much like what Tengwar has in use in the wild.
23:52:58 <ais523> now I'm wondering if one of the uncomputable languages that support time travel would allow O(-1)
23:53:08 <alercah> No
23:53:10 <hppavilion[1]> `le/rn phnglui/This wisdom exists only to test a command
23:53:12 <HackEgo> Learned 'phnglui': This wisdom exists only to test a command
23:53:15 <hppavilion[1]> `? phnglui
23:53:16 <alercah> because the definition uses the absolute value
23:53:16 <HackEgo> This wisdom exists only to test a command
23:53:22 <hppavilion[1]> `rw phnglui
23:53:22 <pikhq> There was a proposal to Unicode to formally add Klingon, but it was rejected outright on the basis that no user of the language actually uses the script.
23:53:24 <HackEgo> No output.
23:53:29 <hppavilion[1]> `? phnglui
23:53:30 <HackEgo> phnglui? ¯\(°​_o)/¯
23:53:32 <hppavilion[1]> :)
23:53:33 -!- ^v has quit (Quit: ZNC - http://znc.in).
23:53:35 <pikhq> (which at the time was true)
23:53:41 <alercah> `le/rn phnglui/This wisdom existed only to test a command, but then it was deleted.
23:53:43 <HackEgo> Learned 'phnglui': This wisdom existed only to test a command, but then it was deleted.
23:53:48 <ais523> alercah: any reason why the absolute value is needed in the definition?
23:54:12 <pikhq> Huh, TIL. The BMP isn't completely allocated yet.
23:54:17 -!- ^v has joined.
23:54:17 <alercah> ais523: I don't think there's a technical reason, no, since most of the functions you generally care about are nonnegative
23:54:21 <hppavilion[1]> alercah: A randomized algorithm is, properly, a heuristic at best
23:54:27 <alercah> but it's fun to write sin \in O(1)
23:54:27 <ais523> pikhq: there's still plenty of space for relatively small things in the BMP
23:54:38 -!- Cale has joined.
23:54:39 <pikhq> There aren't many free blocks, but there definitely are free blocks.
23:54:40 <ais523> but I think new blocks are placed in the astral planes if there's any risk of them being fairly large
23:54:53 <myname> alercah: O(0) does not contain only the contant 0 function
23:54:55 <hppavilion[1]> (Alercahtively, it could be a potentially-nonterminating algorithm)
23:54:58 <alercah> myname: oh?
23:55:02 <pikhq> Or being anything other than very high use.
23:55:07 * boily mapoles hppavilion[1]. 0.87 Sh.
23:55:12 <myname> alercah: sgn(x) - 1 should also be O(0)
23:55:20 <pikhq> And even then, I think the preference is that new allocations be for things used with scripts already in the BMP.
23:55:26 <alercah> oh that's true
23:55:32 <hppavilion[1]> OK, what defines O(0)?
23:55:33 <alercah> it includes all eventually constant functions
23:55:35 <alercah> hppavilion[1]: see above
23:55:41 <alercah> myname: thank you!
23:55:47 <alercah> or more accurately
23:55:47 <pikhq> (see the not yet in Unicode, but accepted for the next version "Syriac Supplemental" block)
23:55:52 * moony gives boily sqrt(mapole)
23:55:54 <alercah> O(0) is exactly the eventually constant 0 functions
23:55:57 <ais523> what about functions that are asymptotially constant, like 1/x?
23:56:03 <alercah> nope
23:56:06 <ais523> *asymptotically
23:56:20 <alercah> because |f(x)| <= 0 if and only if f(x) = 0
23:56:20 <ais523> I guess you'd have to call that, what, o(1)?
23:56:23 <ais523> (little-o notation)
23:56:26 <hppavilion[1]> Because I'm pretty sure O(1) is just any algorithm that always takes the same amount of time to return an answer (*roughly* constant, not varying in a way predictable by problem size)
23:56:31 <alercah> hppavilion[1]: no
23:56:37 <hppavilion[1]> alercah: Oh?
23:56:44 <myname> o(1) is a thing
23:56:44 <alercah> hppavilion[1]: as I already said
23:56:51 <ais523> hppavilion[1]: O(1) is bounded time
23:57:03 <hppavilion[1]> ais523: Oh, it is?
23:57:05 <boily> moony: mhelloony. don't you dare root my mapole :P
23:57:12 <alercah> f \in O(g) if and only if there exist M and x_0 such that |f(x)| <= M|g(x)| for all x >= x_0
23:57:13 <ais523> i.e. when applied to computational complexity, there's a limit to how long the algorithm takes regardless of input
23:57:17 <pikhq> An algorithm is O(1) iff for any n you can guarantee the algorithm will take at most x time.
23:57:17 <ais523> it's allowed to return early though
23:57:29 <hppavilion[1]> ais523: Yes, I get it
23:57:32 <pikhq> O notation is always about the worst case.
23:57:33 <myname> hppavilion[1]: O(1) is any algorithm that takes at most some constant time no matter the input
23:57:35 <alercah> saying that an algorithm is O(1) is really saying that its running time, as a function of input size, is O(1)
23:57:35 * moony gives boily the sqrt(-mapole)
23:57:43 <alercah> which means that it must be eventually bounded by a constant
23:57:46 <ais523> note that alercah's definition is a little confusing, f here is the algorithm's runtime
23:57:46 <myname> it can however take different times depending on the input
23:58:04 <pikhq> An algorithm could be O(n log n), but in most cases take a constant amount of time.
23:58:19 <alercah> assuming your input sizes are discrete, then O(1) means that the running time is bounded
23:58:25 <myname> pikhq: or every time
23:58:27 <alercah> but 1/x is O(1) despite being unbounded
23:58:29 <pikhq> Similarly an implementation of an O(1) algorithm could usually take 1 hour but sometimes take 1 second.
23:58:44 <pikhq> myname: Well, then O(n log n) is a crap bound.
23:58:52 <alercah> but a valid one
23:58:56 <myname> pikhq: a valid nontheless
23:58:57 <pikhq> Not *inaccurate*, but pretty crap.
23:59:06 <boily> moony: my mapole ain't to be imaginarified. tsé.
23:59:12 <ais523> pikhq: well, worst case insertion for a hash table is O(log n)
23:59:18 <hppavilion[1]> ...yeah, I still don't get O(0)
23:59:19 <ais523> but in most practical cases it's O(1)
23:59:24 <pikhq> Average case is O(1), yeah.
23:59:34 <alercah> ais523: 1/x is o(1), yeah
23:59:46 <alercah> hppavilion[1]: O(0) means that the function is eventually 0
23:59:57 <hppavilion[1]> alercah: ...eventually?
23:59:58 <ais523> however, I insist on using the O(log n) definition when calculating computational classes as you're meant to take the worst case
←2016-10-17 2016-10-18 2016-10-19→ ↑2016 ↑all