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 Today's smbc... actually seems like something that one could do 00:48:55 Find someone with the last name Riemann and pay them to make utterly stupid mathematical statements 00:54:55 should be a rieot. 00:55:55 relcoerjan 00:56:12 yochaf 00:56:42 `? oerjan 00:56:46 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 still an octoberlord? 01:00:37 it is still october, after all 01:01:01 `slwd oerjan//s/quack/woof/ 01:01:03 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 `slwd oerjan//s/comput/complic/ 01:02:00 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 THE WISDOM MUST FLOW 01:03:48 i am computic 01:04:30 don't you mean computit hth 01:04:42 I forgot how time consuming installing new PCs is. 01:05:17 ah, right 01:27:59 Oh my god 01:28:08 I just spent over an hour trying to debug a caesar cypher 01:28:59 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 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 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 I've set up a program that runs various tests on all of my encryption definitions 02:06:22 And now it can handle cyphers that require multiple keys (e.g. affine) 02:21:42 -!- imode has joined. 02:32:15 Uh oh, what did I just sign myself up for? 02:33:04 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 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 Roight. Modulo. 03:14:48 mod(x,y) should probably be computed by recursion over x. 03:14:56 Doing it by recursion over y sounds like a bad idea. 03:17:06 `? all 03:17:07 All that glitters is not gold. 03:19:34 tswett: have considered computing mod by using div as a subroutine hth 03:19:46 You can do that? 03:20:20 mod(x,y) = x - y*div(x,y) hth 03:20:39 *have you 03:20:44 Ooh. Yeah, gee, that's a good idea. 03:20:48 Thanks! 03:20:56 you're welcome 03:23:48 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:26:30 '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 Am I going to end up defining a helper function for this? 03:29:57 This feels like the sort of thing that will need a helper function. 03:33:36 Here we go. I can just define div_mod all in one shot. 03:33:50 that also works. 03:35:18 -!- Cale has joined. 03:40:42 Next up: GCD. 03:42:51 Man. It's totally obvious how to implement GCD if I'm allowed to recurse back to arbitrary smaller arguments. 03:43:12 just count down from the original size hth 03:43:33 that'll always be larger, and will be enough to force it to halt. 03:44:17 or hm 03:44:44 well i think that should work, just requires a bit of a helper function 03:44:59 Yup, I'll probably do that. 03:49:00 OK, "a div b" must mean something weird 03:49:06 What is it? 03:49:24 I think it's usually floor(a/b). 03:49:31 Oh. 03:49:48 tswett: In this context?: https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm#Pseudocode 03:50:48 I think so. 03:51:33 OK 03:51:59 YES! 03:52:04 AFFINE CYPHER WORKS! 03:52:29 (FOR EXACTLY ONE 6-LETTER TEST STRING WITH FIXED KEYS!) 04:01:05 (s/EXACTLY/AT LEAST/ !) 04:01:25 Man, my code looks weird. 04:01:51 inductive of t append(_, y : List(t)) over List(t) { empty := y; cons(h, t) := cons(h, base); } 04:02:08 tswett: I have code with the segment <> used multiple times 04:02:29 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 `? #esoteric 04:03:30 ​#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 I forget, did the actual reactors at Fukushima explode, or was it only the systems sustaining them? 04:14:17 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 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 You live in AK? 04:18:35 In retrospect, hppavilion[1] lives in Alaska. 04:18:37 * tswett coughs. 04:18:45 pikhq: ...yes. 04:18:51 Huh. 04:18:52 pikhq: Were you not aware? 04:18:54 No. 04:19:02 I'm pretty sure boily has my actual address. Somehow. 04:19:10 And body weigh, no doubt. 04:19:13 And also, I @metar PAMR 04:19:16 @metar PAMR 04:19:16 PAMR 180253Z AUTO 01004KT 10SM OVC075 04/M09 A2909 RMK AO2 SLP852 T00391089 53013 TSNO 04:19:24 Which is an airport that's under a mile from my house 04:19:37 Hm, still no negative temperatures 04:20:13 I don't read metar 04:20:27 shachaf: If I were to enter cardiac arrest, boily would probably call an ambulance before the people around me. 04:20:44 pikhq: I do, but only to feel smug at people who don't 04:20:51 (Overcast, huh) 04:21:00 Man, recursion over just one argument is a tough way to get stuff done. 04:21:15 @quote Jafet argument 04:21:15 Jafet says: unsafeCoerce takes any argument. AND IT WINS THAT ARGUMENT. 04:21:25 @metar KCOS 04:21:25 KCOS 180254Z 03007KT 10SM CLR 09/M03 A2992 RMK AO2 SLP068 T00891033 51046 04:21:27 tswett: I prefer infinite recursion over infinitely many arguments 04:21:34 oerjan: have you considered nopinging `quote wth 04:22:28 Hm, there should be a /me's command 04:23:04 (well, /my) 04:24:22 shachaf: very briefly. 04:25:02 This election has hit forecasters hard; all they can really do is discuss HOW bad Trump is doing 04:25:34 No kidding. 04:26:40 copumpkin: are you going to vote early or wait until nov 8 04:27:46 shachaf: itym nov 28 04:27:56 That's only the date for Trump votes. 04:28:03 (Trump accidentally said that election day is nov 28) 04:30:35 Utah's democrat senatorial candidate (0.3% chance) is apparently named "Misty Snow" 04:30:51 Which I can't tell whether it's a videogame name or a pornstar name 04:34:11 What happens when you represent computable reals in balanced ternary? 04:37:48 is this a pun 04:37:56 No. 04:38:14 But does balanced ternary avoid the 0.111... = 1.000... problem? 04:39:25 Not really. 04:39:40 The number 1 only has one representation, but consider, lemme see. 04:40:09 Like, 0.111... versus 1.(-1)(-1)(-1)... 04:40:19 I'm pretty sure those are both the same number. 04:40:22 avoiding that would prove an interval homeomorphic to a cantor set tinp 04:40:29 -!- `^_^v has joined. 04:41:01 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 Which is why I'm asking what happens. 04:41:46 well i'm saying that automatically implies you _must_ have a collision 04:41:49 I think the answer is, you still end up with the 0.111... = 1.000... problem, just with different numbers. 04:42:07 I'm not saying there isn't a collision. 04:42:11 or else, discontinuity, which you don't seem to have here. 04:42:20 But doesn't balanced ternary have this property that truncation is the same operation as rounding? 04:42:38 shachaf: what's the 0.111... = 1.000... problem other than a collision 04:44:04 I guess you end up with tswett's collision. 04:44:16 Both equal to 1/2 04:45:59 trausiple 04:46:02 *b 04:46:22 * oerjan chases muphry across the channel with the swatter -----### 04:46:45 Which letter is b supposed to be correcting? 04:46:52 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 So what's a species today could be future peoples' relative equivalent of a class 04:48:04 Part of the thing with cladistic taxonomy is, you don't rank the groupings at all. 04:48:25 i.e. the kingdom domain etc. thing is bogus. 04:48:40 There's just life, which includes the bacteria and the archaea. 04:48:56 (the eukaryotes appear to be members of the archaean clade) 04:49:27 Ah 04:49:50 Right 04:55:50 Whelp, I'm tired of writing primitive-recursive functions. 04:56:44 I wanna do something more interesting, like proving that the natural numbers form a monoid. 05:01:44 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 tswett: p hth 05:05:28 The collection of all decision problems solvable in polynomial time? 05:06:47 no, the corrected letter hth 05:07:26 the ptime numbers 05:07:49 Ah. 05:17:35 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 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 \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 (yep, that includes your nukes) 05:41:05 How do you draw a 0xn or nx0 matrix? 05:41:14 shachaf: ----------- 05:41:33 Hard to tell the dimensionality that way. 05:41:43 yep 05:43:30 \ 05:43:32 \ 05:43:34 \ 05:43:36 \ 05:43:38 \ 05:43:40 \ 05:43:42 \ 05:43:48 -!- atehwa has quit (Ping timeout: 245 seconds). 05:43:55 -!- atehwa has joined. 05:44:02 shachaf: ^ 05:44:14 i think your basis is off hth 05:44:57 / 05:44:59 / 05:45:01 / 05:45:03 / 05:45:05 / 05:45:07 / 05:45:09 / 05:45:11 / 05:45:13 / 05:45:15 // 05:45:19 did i fix the basis? 05:45:24 oerjan: a baseless accusation hth 05:46:50 -!- hppavilion[1] has joined. 05:47:45 -!- digin4 has joined. 05:49:23 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 Fun little encrypter I made: seqxor (sequential xor) 06:19:04 Almost certainly been done before, but I like it 06:19:14 Turns "walrus" to (hex) 77 16 0D 1E 07 06 06:21:37 oh, is it just xoring each byte of plaintext with the previous byte of ciphertext? 06:21:46 that seems fairly easy to cryptanalyse… 06:22:01 ais523: No, it xors each byte in the plaintext with the previous byte in the plaintext 06:22:13 oh 06:22:18 ais523: Obviously, it isn't good on its own because it violates Kerckhoffs's Assumption 06:22:20 that's even easier to cryptanalyse :-P 06:23:05 (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 ais523: Yes :P 06:23:32 But it'd probably make a good component of a larger system 06:23:41 not really 06:23:43 as there's no way to key it 06:23:52 ais523: Yeah, exactly. No key 06:24:00 modern ciphers are basically just random number generators 06:24:09 Yes 06:24:27 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 (If you want a key, you start with the key as a character and exclude it from the output) 06:24:43 hppavilion[1]: if keying only affects the first character it's not very useful 06:24:56 ais523: Good point 06:25:08 (Xoring cyphertext almost certainly works better) 06:27:09 *facepalm* Oh, GameFreak, how do you screw up like that? 06:27:50 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 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 pikhq: what's sumo? 06:32:13 Pokémon Sun/Moon? 06:32:25 ah 06:32:58 i don't really follow that in lack of console 06:33:12 the latest handheld i own is a ds phat 06:35:57 *If* you want to, the 2DS is fairly cheap these days. 06:36:12 i know, i thought about it 06:37:06 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 Can OEIS extend indefinitely? 07:46:11 (as in, sequences of the OEIS- can they be lazy-evaluated?) 07:47:16 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 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 hpp: http://oeis.org/eishelp2.html tells about the format 09:09:08 hppavilion[1]: in particular, OEIS is only allowed to have as many lines as fit in three lines of the screen. 09:10:40 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 hi, fungot. 09:47:46 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 [wiki] [[Headache]] https://esolangs.org/w/index.php?diff=50017&oldid=46810 * YSomebody * (+7) 11:45:29 `wisdom 11:45:32 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 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 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 i,i "the sign of charge", more commonly known as "alternating current" 18:08:14 er 18:08:18 i,i "the sine of charge", more commonly known as "alternating current" 18:08:23 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 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 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 huh, and they left before I noticed they were here 19:37:55 =] 19:37:59 Happens 19:43:12 `wisdom 19:43:13 `wisdom 19:43:13 `wisdom 19:43:14 `wisdom 19:43:14 `wisdom 19:43:21 tdt//That doesn't tdt. 19:43:21 monoidal category//Monoidal categories are just 2-categories with a single object. 19:43:21 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 rust//Rust is C++ as designed by the makers of Haskell. 19:43:21 monad//Monads are just monoids in the category of endofunctors. 19:43:44 Those are strong monoidal categories in particular, right? 19:43:55 I imagine people usually talk about weak monoidal categories more often. 19:44:02 -!- hppavilion[1] has joined. 19:44:07 @metar PAMR 19:44:09 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 i wrote a sorta library thingy for small string optimization in c 20:05:43 [wiki] [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=50018&oldid=50011 * B jonas * (+179) +Homespring 20:05:44 https://github.com/izabera/s 20:05:59 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 I'm constitutionally unable to check non-portable code. 20:13:41 -!- hppavilion[1] has joined. 20:15:51 it's portable to most 64 bit little endian archs if you compile with gcc or clang 20:17:54 actually the endian isn't even necessary 20:20:12 it just needs size_t to be at least 54 bits long and pointers to be at most 8 bytes long 20:20:33 and a compiler that supports a few __builtin_* instructions 20:22:57 That's not really the full list of assumptions it makes. 20:23:20 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 i was actually assuming that pragma once was standard 20:35:29 -!- bibibi has joined. 20:35:31 There's a total of three standard #pragma directives, they're all of the form "#pragma STDC on-off-switch" and they're about boring floating point stuff. 20:35:43 the whole purpose of pragma is for nonstandard things 20:36:03 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 then C99 added _Pragma to fix the syntax issues 20:37:32 can you focus on the rest? <.< 20:40:18 Okay -- using size_t as the type of a bit-field relies on an implementation-defined extension. :) 20:40:38 (I'd be pointing out "real problems" (FSVO) if I had found one.) 20:40:57 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 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 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 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 they just have to be zeros when the string is in place and 15 bytes long 20:52:38 so instead of is_in_place there's is_on_heap 20:55:32 [wiki] [[Special:Log/newusers]] create * Ag8 * New user account 20:55:41 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 i couldn't come up with a way to put a static assert there 20:58:59 You can put a static assert anywhere an expression can go. 20:59:14 although it's best to only place them in places where declarations go 20:59:29 this is because static asserts can be implemented using declarations in older versions of C 20:59:40 Well, but a compound literal with a struct declaration is an expression that includes a declaration. 20:59:42 you could probably do some trick with sizeof, though? 21:01:10 x -> ((struct { _Static_assert(sizeof x <= 16, "it's too big"); int dummy; }){1}, x) 21:01:26 Approximately. 21:01:42 And possibly with one of the static-assert hacks instead of a real _Static_assert if you like. 21:02:07 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 error: expected expression before ‘_Static_assert’ 21:02:35 #define s_small_temporary(x) (_Static_assert(sizeof(x) <= 16, "no no no"), s_new(&s_literal_empty(), "" x) 21:02:36 ^ 21:02:40 Yeah, it's a declaration. 21:03:02 You need something like that struct literal to make it part of an expression. 21:04:31 error: expected ‘)’ before ‘;’ token 21:04:33 s_cat(&s1, s_small_temporary("foo bar baz bat")); 21:04:35 ^ 21:04:42 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 oh i stupid 21:05:11 thanks it works 21:05:16 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 It certainly makes that sort of thing uglier, though. 21:06:13 Oh, right! Having it a declaration makes putting it outside functions less ugly. 21:06:54 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 df 21:27:11 Filesystem Size Used Avail Use% Mounted on 21:27:13 dev 1.9G 0 1.9G 0% /dev 21:27:15 run 1.9G 920K 1.9G 1% /run 21:28:52 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 you have the factorization of x! 21:40:26 how do you get x? 21:40:42 izabera: multiply the factors together? 21:40:48 and then what? 21:41:23 let me clarify 21:41:33 you have the factorization of x! (factorial of x) 21:41:53 ah right 21:42:04 it's fairly easy to figure out the largest prime ≤ x, at least 21:42:39 the power of 2 determines floor(x / 2) 21:42:57 good starting point 21:43:19 kind of 21:43:45 actually you just use the power of 2 and then test the two possibilities 21:43:46 is there an easy way to get that? 21:44:20 . o O ( inverse culmulative ruler function ) 21:44:21 but 6! = 2^4 * 3^2 * 5 21:45:06 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 @oeis 1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16 21:45:25 https://oeis.org/A006519 Highest power of 2 dividing n. 21:45:25 [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 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 @oeis 1 3 4 8 9 11 12 20 21:46:25 https://oeis.org/A006520 Partial sums of A006519. 21:46:25 [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 @oeis A006519 21:46:38 https://oeis.org/A006519 Highest power of 2 dividing n. 21:46:38 [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 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 winderp: http://pasteboard.co/gAAPkAHyL.png 22:41:20 pls explain 22:41:39 moonheart08: wrong channel? 22:42:10 no. i want a explaination, derpiest thing i've ever seen windows do 22:42:29 im on hexchat. its complaining it cant start hexchat (another instancE) due to a missing DLL 22:42:32 ah right 22:42:46 I interpreted the "winderp:" as a nick, and mentally parsed it "winder-p" 22:48:02 -!- digin4 has joined. 22:48:39 winderp 10 22:48:49 :P 22:48:50 -!- digin4 has left. 22:51:05 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 `wisdom 23:13:40 morphism//A morphism is just a natural transformation between two functors on 1. 23:14:25 that is a terrible definition :-D 23:14:43 is there any non-circular way to make use of it? 23:15:41 -!- AnotherTest has quit (Ping timeout: 260 seconds). 23:18:59 it's a good definition. it has words in it, the verb "to be", and is totally impenetrable. 23:19:08 as to uncircularify it, fungot? 23:19:08 boily: dmnt claimed it's 14. :p i think that 23:21:26 actually I'm not even sure it's correct (although it might be) 23:21:56 a morphism in a category C is a functor from 1 to C 23:22:04 what does "functor on 1" even mean? functors have two endpoints 23:22:17 and there is only one functor from 1 to 1 23:22:27 wait, no 23:22:33 I guess the definition is right 23:22:44 you need two functors because the morphism has two endpoints 23:22:49 What you said is an object. 23:22:59 Yes. 23:23:41 Though "functors on 1" is an odd way to say "functors : 1 -> C"? 23:24:57 `? morphisms 23:24:58 A morphism is just a natural transformation between two functors on 1. 23:25:12 making it "functors from 1" would be clearer 23:25:16 Ah, not one of the ones with two definitions. 23:25:34 @quote copumpkin terminal 23:25:34 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 it took me a while to understand the endofunctor definition 23:26:47 basically because the concept of an endofunctor violates my internal typechecker by merging things that I mentally consider different 23:26:55 Did you know applicative functors are also monoids in the category of endofunctors? 23:27:21 @quote boily 23:27:21 No quotes match. Where did you learn to type? 23:27:31 * boily mapoles lambdabot for being cheeky 23:28:35 shachaf: well monads are applicative functors 23:28:40 but the opposite isn't necessarily true? 23:28:42 `? monad 23:28:43 Monads are just monoids in the category of endofunctors. 23:28:56 `? monads 23:28:57 Monads are just free monad monad monad algebras. 23:28:59 so I guess the definition of monad is more general than it should be? 23:29:06 ? 23:29:21 I'm talking about a different category of endofunctors. 23:29:37 or rather the same endofunctors but a different tensor product. 23:29:41 O 23:29:49 <\oren\> `? algebra 23:29:50 algebra? ¯\(°​_o)/¯ 23:30:01 <\oren\> `? endofunctor 23:30:02 Endofunctors are just endomorphisms in the category of categories. 23:30:10 <\oren\> `? endomorphism 23:30:11 Endomorphisms are just morphisms which compose with themselves. 23:30:20 <\oren\> `? morphism 23:30:21 A morphism is just a natural transformation between two functors on 1. 23:30:36 <\oren\> `? functor 23:30:37 Functors are just morphisms in the category of small categories. 23:30:49 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 In the one where the tensor product is Day convolution. 23:31:48 particular 23:31:54 Typing on phones is scow. 23:32:33 You shouldn't user an acronym. 23:32:39 use 23:33:15 imode: that possibly depends on the language's semantics 23:33:25 -!- Cale has joined. 23:33:26 although I don't like SPL, you should probably have something more descriptive 23:34:22 ais523: based around a stack machine. intended as a "readable machine code"... has 48 commands, each of which are single-characters. 23:34:46 oh, hmm, an esoasm 23:34:52 heh. 23:35:08 can post an example of a factorial function if you want. 23:35:23 does it fit in one line of IRC? it probably should for that sort of language 23:35:28 it's not a tarpit, at least 23:35:35 indeed, you can fit in one line. 23:35:36 reminds me of Redcode more than anything else, from that description 23:35:48 -!- oerjan has joined. 23:36:08 ,:,1-[,1:?,:,2#,2#*,1#,1-]. 23:36:31 thaaat's factorial! I can post the equivalent forth code. 23:36:41 `words 23:36:45 anajv 23:36:51 `words -10 23:36:53 Unknown option: 1 \ Unknown option: 0 23:36:55 `words -n10 23:36:56 Unknown option: n \ Unknown option: 1 \ Unknown option: 0 23:36:59 ... 23:37:15 `words 10 23:37:16 equaquil rrich orowing diphulen fidiq sec hau jem desidea mim 23:37:19 ah! 23:37:23 imode: what does , do? 23:37:33 pushes a 0 to the stack. 23:37:45 imode: imhellode. orowing? diphulen? mim? 23:37:53 I'm a little surprised that the command's being used that often 23:38:11 characters 0 through 9 and A through F perform an operation like... 23:38:22 stack[top] = (stack[top] << 4) | 23:38:31 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 yeah, kinda. 23:38:49 he\\oren\. Go Maple Leafs! 23:38:56 so, to add two numbers together... 23:38:58 1,2+ 23:39:05 \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 also, in lieu of a stack underflow, we just yield a ero. 23:39:27 *zero 23:39:32 -!- Cale has quit (Ping timeout: 250 seconds). 23:39:39 imode: is this intended to be particularly golfy or just portable? 23:39:46 incredibly portable. 23:39:46 Goals? Baseball? Whut? 23:39:50 \oren\: no it isn't, baseball is the one US sport I'm really confident on 23:40:03 I used to watch it back when it was shown in the UK 23:40:03 The Blue Jays are a baseball team. 23:40:04 no parsing required! the instruction set is ASCII. :P 23:40:14 But... goals? 23:40:30 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 The Maple Leafs are the hockey team from the same city (Toronto, Canada), so... 23:41:01 *wince* 23:41:08 That is neither hockey nor baseball. 23:41:17 actually I think \oren\ is just trolling 23:41:20 Yeah. 23:41:27 <\oren\> because Encarnation hit the puck out of the stadium 23:41:33 Though, Toronto also has a (Canadian) football team... 23:41:33 is a safety worth 2? that would be an easy way to get 2 points in one down 23:41:42 What types of numbers are used in big-O? 23:41:52 Like, obviously it's mostly real numbers 23:42:06 oh, you're asking of big-O notation could use, say, complex numbers? 23:42:16 ais523: Not ATM 23:42:18 ais523: Yes, safeties are worth 2 in both common gridiron variants. 23:42:20 \oren\: oooh, you tengwared your font! ^^ 23:42:24 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 the "n" in big-O notation acts a bit like whatever the reciprocal of an infinitesmal is 23:42:43 ais523: Yes... 23:42:49 (Isn't that infinity?) 23:42:57 Добройлый вечер! 23:43:01 hppavilion[1]: only in nonstandard analysis 23:43:06 so I guess it's a nonstandard number 23:43:26 ais523: By my understanding it just means an-arbitrary-but-fixed-constant 23:43:44 hppavilion[1]: n? no 23:43:51 ais523: I suppose not... 23:43:52 Wait... 23:43:55 Hm... 23:43:56 the most notable property that n in big-O notation has is that it's large compared to any real number 23:44:15 ais523: Wait, doesn't n usually mean "the size of the problem" 23:44:18 because the whole point of big-O notation is to deal with asymptotic performance 23:44:20 hppavilion[1]: yes 23:44:21 晚尔亚安 23:44:21 Yes 23:44:25 but, say, O(2n) = On) 23:44:32 *O(n) 23:44:33 Yes, I forgot about that for a momen 23:44:37 *moment 23:45:07 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 (Take THAT, Chomsky!) 23:45:43 \oren\: bummer. at least you can write in Beleriand mode... 23:45:44 I just realised what the hppavilion[1] style is 23:45:44 \oren\: Hrm, did they encode it with combining chars? 23:45:56 ais523: Wait, I have a style? 23:45:58 <\oren\> yeah. 23:45:59 What is it? 23:46:09 Grumble. 23:46:15 most people, when they have ideas, start with the assumption that they need something possible and try to maximise creativity 23:46:17 (...is it in season?) 23:46:23 whereas you start with the assumption that the idea has to be creative 23:46:31 and then an idea is better if it's more possible 23:46:31 ais523: Yeah, pretty much 23:46:40 But that wasn't what I was doing right now, was it? 23:46:46 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 I was just trying to figure out what kinds of numbers you deal with in O 23:47:46 \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 boily: No. 23:48:10 also I'm not convinced O(∞) is a real complexity class 23:48:12 pikhq: pikhelloq. aaaaaaaaaargh :( 23:48:13 any more than O(0) is 23:48:16 ais523: But it IS looking like n behaves exactly like infinity in every way, except it's finite 23:48:17 pikhq: I suspect nobody caring 23:48:22 ais523: O(0) is 23:48:25 ais523: Oh? It isn't? 23:48:31 O(\infty) is not 23:48:31 alercah: What's O(0) then? 23:48:33 alercah: but it differs from O(1) by a constnat 23:48:39 alercah: hellorcah. 23:48:57 ais523: But then what's the worst case for bogosort? 23:49:11 Wait, do complexity classes only apply to algorithms? Probably 23:49:15 ais523: it does, but it's even a distinct class 23:49:17 Actually, possibly not much. It appears to have a tentative assignment to U+16080-U+160FF. 23:49:21 O(0) contains only the constant zero function 23:49:35 alercah: Wait, what? 23:49:40 alercah: not constant functions that return other numbers? 23:49:48 go back to the definition, folks ;) 23:49:48 alercah: You mean a function that always returns 0? 23:49:58 actually my guess as to what O(0) means is that it only captures identity functions 23:50:04 And an algorithm has to ALWAYS, PROVABLY return a CORRECT answer in FINITE time 23:50:22 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 if g(x) = 0, then this can only be true if f(x) = 0 also 23:50:35 Therefor, Bogosort isn't a proper algorithm and complexity classes aren't 100% applicable 23:50:47 `? randomized algorithms 23:50:48 randomized algorithms? ¯\(°​_o)/¯ 23:50:50 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 `le/rn randomized algorithms/Nobody tell hppavilion[1] about randomized algorithms. 23:51:13 Learned 'randomized algorithms': Nobody tell hppavilion[1] about randomized algorithms. 23:51:27 alercah: Those aren't properly algorithms under the mathematical definition 23:51:27 :D 23:51:43 `rm "wisdom/randomized algorithms" 23:51:43 rm: cannot remove `"wisdom/randomized algorithms"': No such file or directory 23:51:47 `? strong pseudoprime 23:51:47 strong pseudoprime? ¯\(°​_o)/¯ 23:52:02 `rm wisdom/randomized algorithms 23:52:04 No output. 23:52:07 (for comparison, Klingon does not even have a tentative allocation as yet) 23:52:11 Hm, `rw would be nice 23:52:14 `rw 23:52:15 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rw: not found 23:52:16 ais523: and \infty is not a valid value for a function (assuming the reals, which I suppose might be unreasonable) 23:52:17 pikhq: it has an unofficial one IIRC 23:52:28 if you're using the extended reals, O(\infty) is all functions 23:52:45 `mkx bin/rw//rm "wisdom/$1" 23:52:47 bin/rw 23:52:52 ais523: It has a PUA allocation with the Conscript Registry, much like what Tengwar has in use in the wild. 23:52:58 now I'm wondering if one of the uncomputable languages that support time travel would allow O(-1) 23:53:08 No 23:53:10 `le/rn phnglui/This wisdom exists only to test a command 23:53:12 Learned 'phnglui': This wisdom exists only to test a command 23:53:15 `? phnglui 23:53:16 because the definition uses the absolute value 23:53:16 This wisdom exists only to test a command 23:53:22 `rw phnglui 23:53:22 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 No output. 23:53:29 `? phnglui 23:53:30 phnglui? ¯\(°​_o)/¯ 23:53:32 :) 23:53:33 -!- ^v has quit (Quit: ZNC - http://znc.in). 23:53:35 (which at the time was true) 23:53:41 `le/rn phnglui/This wisdom existed only to test a command, but then it was deleted. 23:53:43 Learned 'phnglui': This wisdom existed only to test a command, but then it was deleted. 23:53:48 alercah: any reason why the absolute value is needed in the definition? 23:54:12 Huh, TIL. The BMP isn't completely allocated yet. 23:54:17 -!- ^v has joined. 23:54:17 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 alercah: A randomized algorithm is, properly, a heuristic at best 23:54:27 but it's fun to write sin \in O(1) 23:54:27 pikhq: there's still plenty of space for relatively small things in the BMP 23:54:38 -!- Cale has joined. 23:54:39 There aren't many free blocks, but there definitely are free blocks. 23:54:40 but I think new blocks are placed in the astral planes if there's any risk of them being fairly large 23:54:53 alercah: O(0) does not contain only the contant 0 function 23:54:55 (Alercahtively, it could be a potentially-nonterminating algorithm) 23:54:58 myname: oh? 23:55:02 Or being anything other than very high use. 23:55:07 * boily mapoles hppavilion[1]. 0.87 Sh. 23:55:12 alercah: sgn(x) - 1 should also be O(0) 23:55:20 And even then, I think the preference is that new allocations be for things used with scripts already in the BMP. 23:55:26 oh that's true 23:55:32 OK, what defines O(0)? 23:55:33 it includes all eventually constant functions 23:55:35 hppavilion[1]: see above 23:55:41 myname: thank you! 23:55:47 or more accurately 23:55:47 (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 O(0) is exactly the eventually constant 0 functions 23:55:57 what about functions that are asymptotially constant, like 1/x? 23:56:03 nope 23:56:06 *asymptotically 23:56:20 because |f(x)| <= 0 if and only if f(x) = 0 23:56:20 I guess you'd have to call that, what, o(1)? 23:56:23 (little-o notation) 23:56:26 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 hppavilion[1]: no 23:56:37 alercah: Oh? 23:56:44 o(1) is a thing 23:56:44 hppavilion[1]: as I already said 23:56:51 hppavilion[1]: O(1) is bounded time 23:57:03 ais523: Oh, it is? 23:57:05 moony: mhelloony. don't you dare root my mapole :P 23:57:12 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 i.e. when applied to computational complexity, there's a limit to how long the algorithm takes regardless of input 23:57:17 An algorithm is O(1) iff for any n you can guarantee the algorithm will take at most x time. 23:57:17 it's allowed to return early though 23:57:29 ais523: Yes, I get it 23:57:32 O notation is always about the worst case. 23:57:33 hppavilion[1]: O(1) is any algorithm that takes at most some constant time no matter the input 23:57:35 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 which means that it must be eventually bounded by a constant 23:57:46 note that alercah's definition is a little confusing, f here is the algorithm's runtime 23:57:46 it can however take different times depending on the input 23:58:04 An algorithm could be O(n log n), but in most cases take a constant amount of time. 23:58:19 assuming your input sizes are discrete, then O(1) means that the running time is bounded 23:58:25 pikhq: or every time 23:58:27 but 1/x is O(1) despite being unbounded 23:58:29 Similarly an implementation of an O(1) algorithm could usually take 1 hour but sometimes take 1 second. 23:58:44 myname: Well, then O(n log n) is a crap bound. 23:58:52 but a valid one 23:58:56 pikhq: a valid nontheless 23:58:57 Not *inaccurate*, but pretty crap. 23:59:06 moony: my mapole ain't to be imaginarified. tsé. 23:59:12 pikhq: well, worst case insertion for a hash table is O(log n) 23:59:18 ...yeah, I still don't get O(0) 23:59:19 but in most practical cases it's O(1) 23:59:24 Average case is O(1), yeah. 23:59:34 ais523: 1/x is o(1), yeah 23:59:46 hppavilion[1]: O(0) means that the function is eventually 0 23:59:57 alercah: ...eventually? 23:59:58 however, I insist on using the O(log n) definition when calculating computational classes as you're meant to take the worst case