00:26:32 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
00:27:40 -!- puzzlet has joined.
00:50:27 <oklopol> competing with your own game ai's is always disappointing, if you win, your ai sucks, if you lose, you suck
00:51:20 <pikhq> If you win, you suck. If you lose, you suck.
00:52:22 <pikhq> The glass that's just too big.
01:01:19 <GregorR> If you solve the game and make it so that the AI literally cannot lose, it's different. If you win, you suck, if you lose, you're brilliant.
01:09:43 <pikhq> Unless you're solving something too damned simple.
01:10:04 <pikhq> Then, no matter what you do, you suck: who the hell bothers solving something that simple? :p
01:10:21 <graue> i used to beat all the other kids at tic-tac-toe
01:10:23 <graue> i thought i was so smart
01:10:55 <pikhq> I used to be able to force a tie or win.
01:11:05 <graue> yeah, that's what i mean
01:11:16 <pikhq> (if both sides have perfect play, tie is the best that can be done)
01:12:18 <oklopol> i never considered tic-tac-toe a game
01:12:33 <graue> i can force a tie or win in nim too :))))
01:12:47 <pikhq> I consider it a trivial game.
01:12:48 <GregorR> I can force a tie or win in vim.
01:12:55 <graue> nim is a trivial game
01:13:05 <pikhq> But can you do that in Emacs?
01:13:50 -!- chuck has quit (Read error: 104 (Connection reset by peer)).
01:14:20 -!- chuck has joined.
01:32:35 -!- jix has quit ("CommandQ").
02:18:25 -!- puzzlet_ has joined.
02:25:17 -!- puzzlet__ has joined.
02:30:09 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
02:35:17 -!- puzzlet__ has quit (Remote closed the connection).
02:35:21 -!- puzzlet has joined.
02:35:35 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
02:44:05 -!- puzzlet has quit (Remote closed the connection).
02:44:06 -!- puzzlet_ has joined.
02:54:21 -!- puzzlet_ has quit (Remote closed the connection).
02:54:26 -!- puzzlet has joined.
02:59:14 -!- oerjan has joined.
03:03:46 <oerjan> <bsmntbombdood> are there any others?
03:03:54 <oerjan> an uncountable number in fact
03:06:38 <oerjan> 1 - exp(-x) is another simple one
03:09:53 <dbc> f(x)=x/(x-1)
03:10:47 <oerjan> dblog: not defined in 1
03:10:47 <dbc> or for that matter, f(x)=x/(x+c) where c is any nonzero constant.
03:11:47 <oerjan> c=1 gives bsmntbombdood's original if you rewrite a bit
03:12:01 -!- puzzlet_ has joined.
03:12:10 <dbc> Yeah. Was there a criterion that said the function had to be total?
03:12:50 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:12:52 <dbc> Okay. Then we have to use a positive value for c.
03:13:23 <oerjan> i was going to say there were _more_ of them than the number of reals, but continuity whittles that down to equal number
03:17:07 <dbc> Is that a condition and not a definition?
03:17:09 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
03:17:36 <oerjan> i say it's a definition, which means there is only one f, although a definition is sort of a condition too
03:18:28 <oerjan> for one thing, that one is imaginary for big x
03:18:32 <dbc> Was about to say.
03:19:13 -!- puzzlet has joined.
03:21:33 <oerjan> another one: arctan x / (pi/2)
03:24:15 <bsmntbombdood> i'm using this function to map values in [0, \infty) into [0, 1) to give to OR
03:24:45 <bsmntbombdood> so i would like f(2*x) to be the same as or(f(x), f(x))
03:26:30 -!- puzzlet_ has joined.
03:27:09 <oerjan> um that n=1 makes little sense?
03:28:45 <oerjan> otoh generalizing to n is obvious i think
03:31:21 <bsmntbombdood> i can just do this recursively using that definition
03:31:23 <oerjan> a+(b+c-b*c)-a*(b+c-b*c) = a+b+c -b*c-a*b-a*c +a*b*c
03:32:37 <oerjan> logarithms were originally calculated that way, i think
03:32:51 -!- puzzlet__ has joined.
03:34:17 <oerjan> ah, of course a+b-a*b = 1 - (1-a)*(1-b)
03:34:56 <oerjan> de morgan's law essentially
03:35:51 <oerjan> or 1 - exp(-x), which i think i already mentioned
03:36:52 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
03:38:31 <oerjan> f(x) = (1 - exp(-x))^(1/n) i think
03:39:39 <oerjan> basically all your or's are equivalent to multiplication except for applying to a function to the initial arguments and its inverse to the result
03:41:00 <oerjan> so just apply that inverse function to exp(-x) and you get f(x)
03:41:21 <oerjan> what's incorrect about the n case?
03:43:07 <oerjan> oh. well you can replace ^n with any other invertible function in both or and f
03:43:31 -!- puzzlet has joined.
03:43:49 <oerjan> ^n by the function and ^(1/n) by its inverse. all of them.
03:44:42 <oerjan> for g(x) = x**n you have
03:45:31 <oerjan> g(1 - or(a,b)) = g(1-a) * g(1-b)
03:45:37 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
03:45:46 <oerjan> and get f(x) = g(1 - exp(-x))
03:46:09 <oerjan> and get g(f(x)) = 1 - exp(-x)
03:47:37 <oerjan> no matter how you choose it, it gets cancelled out and f(a+b) = or(f(a),f(b))
03:48:01 <oerjan> did i make an error somewhere?
03:52:14 <oerjan> maybe i got something inverted
03:52:47 -!- puzzlet has quit (Remote closed the connection).
03:52:48 -!- puzzlet_ has joined.
03:54:50 <oerjan> or(f(a),f(b)) = 1 - (1 - f(a))*(1 - f(b)) = 1 - exp(-a)*exp(-b) = f(a+b)
03:56:20 -!- puzzlet__ has quit (Connection timed out).
03:56:33 -!- fizzie has quit (Read error: 60 (Operation timed out)).
03:56:49 <oerjan> or(a,b) = (1 - (1 - a**n)*(1 - b**n))**(1/n)
03:57:14 <oerjan> f(x) = (1 - exp(-x))**(1/n)
03:58:26 <oerjan> or(f(a),f(b)) = (1 - (1 - f(a)**n)*(1 - f(b)**n))**(1/n) = (1 - exp(-a)*exp(-b))**(1/n) = f(a+b)
04:03:21 <oerjan> perhaps a more abstract view...
04:04:50 <oerjan> hmph, hard to draw categorical diagrams in irc
04:06:55 <oerjan> anyway say you have some functions + : (A,A) -> A, or : (B,B) -> B and f : A -> B such that f(x+y) = or(f(x),f(y))
04:07:30 <oerjan> (while A = B in our case it is simpler to understand by treating them as separate i think)
04:08:02 <oerjan> now add a function g : B -> C which happens to be invertible
04:18:00 -!- chuck has quit ("This computer has gone to sleep").
06:45:35 -!- puzzlet has joined.
06:45:35 -!- puzzlet_ has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:52 -!- puzzlet has quit (Remote closed the connection).
08:04:05 -!- puzzlet has joined.
08:49:27 -!- calamari has left (?).
08:50:04 -!- RedDak has joined.
09:16:24 -!- dbc has quit (Client Quit).
09:55:56 -!- oerjan has quit ("leaving").
11:35:39 -!- jix has joined.
11:39:34 -!- Tritonio_ has joined.
12:03:49 -!- puzzlet has quit (Remote closed the connection).
12:03:57 -!- puzzlet has joined.
12:08:44 -!- Chadwick|359 has joined.
12:28:44 <oklopol> oerjan: in case you read logs, A B !A !B doesn't work as you said
12:53:35 -!- puzzlet has quit (Remote closed the connection).
12:53:43 -!- puzzlet has joined.
13:25:28 -!- Chadwick|359 has quit (Remote closed the connection).
13:56:14 -!- Tritonio_ has quit (Remote closed the connection).
15:24:46 -!- jix has quit (Nick collision from services.).
15:24:56 -!- jix has joined.
15:47:39 -!- oerjan has joined.
15:50:49 <oerjan> oklopol: what A B !A !B are you talking about?
15:51:24 <oklopol> does it suffice to say !A == not A?
15:53:07 <oerjan> i may have been imprecise
15:54:02 <oklopol> can you be precise then? :P
15:54:17 <oerjan> but anything which is not moved by either A or !A is unchanged by the combination, and similarly for B or !B
15:55:30 <oklopol> hmm... i'm pretty sure that's incorrect :\
15:55:56 <oklopol> if A is a simple twist, and B is another twist where the twists share an edge
15:56:26 <oklopol> then the... blocks *only* B touches will change.
15:57:11 * oerjan picks his cube out of the drawer
15:57:42 <oklopol> cube one edge forward then left forward twist, right forward twist, left backward twist, right backward twist
15:58:12 <oerjan> argh, i cannot turn those words into movements
15:59:07 <oklopol> meant the you have your right hand on the forward-right side
15:59:35 <oerjan> argh there is an annoying noise around
15:59:44 <oklopol> when the cube is rotated so that one of the edges is pointing forward... err.. not sure it's an edge, actually, i mean the intersection of two faces...
16:00:29 -!- chuck has joined.
16:00:37 <oerjan> ok let's say i have a corner pointing toward me
16:00:55 <oklopol> like the corner of 3 faces?
16:01:07 <oerjan> red face up, yellow down right, blue down left
16:02:08 <oerjan> so which faces do i turn?
16:02:13 <oklopol> now if you rotate yellow cw, blue ccw, yellow ccw and blue cw
16:02:54 <oklopol> now the thingie that was below yellow
16:03:32 <oklopol> even though it's not touched by B == the blue twist...
16:03:46 <oklopol> or, then i misunderstood what you meant by B's domain
16:03:59 <oklopol> i thought you meant what it'd have touched if applied as such.
16:04:24 <oklopol> a blue twist wouldn't have any effect on what's below yellow
16:04:51 <oerjan> i mean the actual blocks and tiny faces moved
16:05:24 <oerjan> i.e. it counts as touched by B if A moves it into position to be touched by B first
16:06:48 <oklopol> it's much more realistic, but much less usable then :)
16:09:15 <oklopol> i wonder how much societies with infinite population have been studied
16:10:02 <oerjan> argh messed up my cube
16:11:06 <oklopol> since every node can still only be connected to finitely many other nodes (given a finite number of dimensions for the world they move in, and a finite size of nodes [people]), they couldn't actually produce an infinite amount of products for everyone in finite time
16:11:29 <oklopol> hard to concentrate on the cube now that that came to mind xD
16:12:42 <oklopol> i'm not sure sociologists are that interested in that kind of stuff... or they'd chosen something more theoretical to study in the first place
16:13:03 <oklopol> if sociology is what i think it is
16:13:19 <oklopol> anyhow, i mean the correct thing if that's not it
16:13:24 <oerjan> i do recall looking at some work on continuous populations
16:14:18 <oerjan> although that is mostly to replace large populations with something calculus can work with, i think
16:15:48 <oklopol> right, that is a bit different
16:16:11 <oerjan> me and a collaborator had some hope of connecting a generalization of measures we were working on to that theory. but nothing real came of it
16:17:32 <oklopol> generalization of measures... measuring what? :D
16:18:29 <oerjan> only open and closed sets have measures in that theory
16:19:08 <oerjan> and the union of two sets can have larger measure than the sum if they are not disjoint
16:19:17 -!- RedDak has quit (Remote closed the connection).
16:19:37 <oerjan> he did his PhD on them
16:20:24 <oklopol> umm... isn't the complement of "open and closed sets" the empty set??
16:20:52 <oklopol> can a set be other than open or closed
16:20:53 <oerjan> um, the sets that are either open or closed (or sometimes both)
16:21:30 <oklopol> okay, now what's the "measure" of a set?
16:21:45 <oerjan> e.g. the rationals are a subset of the reals which is neither open nor closed
16:22:13 <oklopol> hmm... is it because it's infinite?
16:22:34 <oerjan> well partly, since all finite sets are closed in the reals
16:23:14 <oerjan> but e.g. a closed interval is not a finite set
16:23:17 <oklopol> "in the reals", but not always?
16:23:42 <oerjan> general topological spaces are _very_ general
16:24:07 <oerjan> although you usually add some nicer axioms
16:24:23 <oerjan> and single points being closed is one of the first
16:24:50 <oerjan> finite sets follow from that, since the union of two closed sets is closed
16:25:41 <oklopol> not sure what you mean by "single points being closed"
16:26:10 <oerjan> a set containing a single element (point) of the space in question
16:27:10 <oerjan> now being closed is also very general, the topology of a space is simply defined by which subsets are considered closed (or equivalently, open)
16:27:43 <oerjan> the complement of a closed set is open, and vice versa
16:30:38 <oklopol> lol i'd forgotten how great music my composer program created
16:37:18 -!- calamari has joined.
17:33:15 <RodgerTheGreat> pikhq: new minus! http://www.kiwisbybeat.com/minus.html
17:57:20 -!- chuck has quit ("This computer has gone to sleep").
17:59:16 -!- RodgerTheGreat has quit.
17:59:20 -!- RodgerTheGreat has joined.
17:59:32 -!- RodgerTheGreat has quit (Client Quit).
18:07:01 -!- chuck has joined.
18:08:31 -!- oerjan has quit ("Good night").
18:22:08 -!- chuck has quit ("This computer has gone to sleep").
19:11:41 * SimonRC thinks that Colorforth rox
19:24:44 -!- puzzlet_ has joined.
19:24:44 -!- puzzlet has quit (Remote closed the connection).
20:28:43 -!- ihope has joined.
20:28:50 <ihope> I'm suddenly wishing Haskell were Redivider.
20:32:49 -!- Sgeo has joined.
20:34:13 <ihope> I guess Haskell does have Parsec, though, which obviously is Redivider-like.
20:35:19 <SimonRC> and, for that matter, what?
20:37:37 <ihope> Oh, I just have a simple parsing job that would be annoying with patterns..
20:38:13 * ihope ponders a melding of Redivider and ///
21:11:53 <oklopol> ihope: why code in haskell then, and not in redivider?
21:36:59 -!- chuck has joined.
21:59:20 -!- Jontte has joined.
22:01:31 -!- jix has quit ("CommandQ").
22:11:57 <ihope> oklopol: Redivider doesn't have support for threading.
22:12:21 <ihope> If it did, I'd probably use it :-P
22:19:58 -!- dbc has joined.
22:28:06 -!- chuck_ has joined.
22:31:10 -!- chuck has quit (Connection reset by peer).
22:58:56 -!- puzzlet has joined.
22:58:56 -!- puzzlet_ has quit (Remote closed the connection).
23:09:00 -!- ihope_ has joined.
23:11:15 <ihope_> You know, if in a type system, all "forall"s must be explicitly stated with a dependent function arrow, I think every value has exactly one type.
23:12:10 <ihope_> As in no more Id : a => a; only Id : All \a (a => a), which would take a value for a as its first argument.
23:13:10 <ihope_> And then you'd have stuff like Id Integer 3 instead of just Id 3.
23:16:42 -!- chuck_ has quit (Connection reset by peer).
23:41:30 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
23:42:57 -!- pikhq has joined.
23:56:38 -!- sebbu has quit ("@+").