00:14:46 It's not cheating to use constant inputs and outputs, right? :-) 01:08:32 -!- GregorR-W has quit ("And the workday finally comes to an end."). 01:12:13 So what's half a NOT gate, I wonder... 01:15:31 Must be HVH. 01:19:34 And HVH sure is a doozy. 01:27:54 Hey: for once I can say I did some fancy quantum stuff to obtain some weird result and I'd actually be right! 02:30:04 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 03:35:50 ihope: My Brainfuck code. 03:37:10 You hope your Brainfuck code what? ;) 04:25:09 -!- Sgeo has joined. 04:55:35 -!- Sgeo has quit ("Ex-Chat"). 05:05:26 -!- GregorR has quit (brown.freenode.net irc.freenode.net). 05:05:27 -!- mtve has quit (brown.freenode.net irc.freenode.net). 05:05:30 -!- sp3tt has quit (brown.freenode.net irc.freenode.net). 05:16:15 -!- clog has joined. 05:16:15 -!- clog has joined. 05:33:23 -!- bsmntbombdood has joined. 05:35:38 -!- lament has joined. 05:38:45 -!- cmeme has joined. 05:51:52 -!- clog has joined. 05:51:52 -!- clog has joined. 05:58:23 -!- mtve has joined. 05:59:01 -!- ihope_ has joined. 05:59:05 -!- ihope_ has changed nick to ihope. 06:01:30 -!- pikhq has joined. 06:03:04 -!- nickv111 has joined. 06:09:26 -!- sekhmet has joined. 06:29:28 -!- bsmntbombdood has quit ("all your basment are belong to bsmntbombdood"). 07:57:13 -!- Arrogant has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:06:04 -!- bsmntbombdood has joined. 08:53:00 -!- bsmntbombdood has quit ("all your basment are belong to bsmntbombdood"). 08:55:20 -!- sekhmet_ has joined. 09:00:44 -!- sekhmet has quit (Read error: 110 (Connection timed out)). 11:02:41 -!- Arrogant has quit ("Leaving"). 12:30:51 -!- jix_ has joined. 12:34:21 -!- tgwizard has joined. 13:19:42 -!- jix_ has changed nick to jix. 14:14:49 -!- ihope_ has joined. 14:20:41 -!- ihope has quit (Connection timed out). 14:20:49 -!- ihope_ has changed nick to ihope. 14:37:53 -!- sekhmet_ has changed nick to sekhmet. 14:40:10 -!- ihope_ has joined. 14:42:56 -!- ihope has quit (Connection timed out). 14:43:00 -!- ihope_ has changed nick to ihope. 14:54:02 -!- ihope_ has joined. 15:01:10 ...So CNOT and Hadamard *are* all that's required? 15:01:13 Argh. 15:11:22 -!- ihope has quit (Connection timed out). 16:09:31 -!- GregorR-W has joined. 17:13:29 -!- CXI has joined. 17:18:33 ihope_: what?????? 17:18:58 Hmm, now I don't remember where I read it :-P 17:35:30 when will we see a qutrit-based language? 17:37:16 Once you tell me how to do a qutrit Hadamard transform. 17:37:34 And a qutrit controlled-V, at that. 20:08:55 -!- ihope_ has changed nick to ihope. 20:18:34 Slow day. 20:19:48 Yep. 20:20:26 Well, there's this question that, well... 20:21:01 If I have two qubits that are pretty much entangled copies of each other, what happens when I observe one? 20:22:10 Does what I think happens happen? 20:29:50 Well, I posted a new version of quantum brainfuck. 20:31:42 ihope: i think what you think happens happens 20:31:59 you observe one, the other folds into |0> or |1> 20:33:40 Yep, makes sense. 20:34:05 So, do you like the new language better? http://esoteric.voxelperfect.net/wiki/Quantum_brainfuck 20:36:17 yes, if it's "quantum-complete" 20:36:35 what's controlled-V? 20:36:52 i mean 20:37:03 who cares what's controlled V, can you implement Shor's algorithm in that thing? :) 20:37:21 being able to swap things makes it very much NOT like brainfuck, though 20:37:43 (which is a good thing in my book since i hate brainfuck clones) 20:37:51 :-) 20:39:04 um 20:39:08 explain output, i don't get it 20:39:51 it's a cnot that works on what? 20:40:09 Call the current qubit C. Output takes a qubit D initially containing |0>. Then it does a CNOT with C as the control and D as the target, then it sends D out to who-knows-where. 20:40:24 oh 20:40:48 and every time you use output, D is initialized to |0> ? 20:41:03 Yep. 20:41:08 But it's a new D every time. 20:41:20 * lament tries to understand whether that makes sense or not 20:42:23 It just outputs a copy of C that's entangled with the original. 20:42:46 why? 20:42:53 you can't do that 20:43:01 i mean 20:43:16 Why not? 20:43:23 are you saying that output does not collapse the qubit? 20:43:30 is that why you're doing this? 20:43:37 Yeah. 20:43:41 that's cheating 20:43:53 Why? 20:44:03 because observing the entangled qubit leads to collapse of the other one 20:44:35 Well, I could zero a qubit upon output. 20:44:46 i think you should simply observe it 20:44:50 and output the result 20:44:59 after which the qubit is either |0> or |1>, whichever's appropriate. 20:45:06 that's how it would happen in a real quantum computer. 20:45:20 you can't output things without affecting them. 20:45:20 What if it were outputting right into another quantum computer? 20:45:55 then that would be fine :) 20:46:00 but that's not output 20:46:16 Well, it's still going somewhere. 20:46:25 but it's not observed 20:46:28 output implies observation 20:46:33 so you need to collapse it 20:46:42 Why does output imply observation? 20:46:53 well 20:46:56 it doesn't. 20:47:15 but if you want to get a "1" or a "0" out of it, then you have to observe it 20:47:23 which involves collapsing the qubit 20:48:30 you seem to get around that by cheating - by collapsing one qubit but not the one entangled with it 20:48:57 unless i misunderstood you 20:49:54 Well, I never said that a classical bit would come from the qubit that was output. 20:50:36 well, what happens to this D qubit? 20:50:55 what would happen to it in an actual implementation of this language? (are you writing one?) 20:55:58 Well, in a quantum implementation, the qubit itself would go on to wherever it's needed. In a classical implementation, either the qubit would be observed and the result output, or some representation of the qubit would be output. 20:57:20 supposing it gets observed (which seems to be the most practical solution), would that collaps the qubit on the tape? 20:57:24 *collapse 20:57:26 Yes. 20:57:37 oh, okay. 20:57:46 write an implementation! 20:58:10 or i could do it if you're lazy 20:58:22 Oh, I might do it. 20:58:45 But lemme reboot first. 20:59:33 -!- ihope has quit (Read error: 104 (Connection reset by peer)). 21:08:44 -!- ihope has joined. 21:08:46 There. Better. 21:39:19 So now I have the whatchamies down. 21:39:30 Complex numbers. 21:45:13 -!- kipple has joined. 21:59:50 okkay. 22:00:14 Actually, it turns out I don't need to implement those after all... 22:00:24 okkay. 22:00:27 dude 22:00:34 use some existing linear algebra library 22:00:41 you want all these operations to be _fast_ 22:00:45 Some existing what? 22:00:56 some existing library for dealing with matrix operations 22:01:28 Um... 22:03:53 Well, I'm defining these quantum things with wavefunctions. 22:06:47 now i have no idea what you're doing :) 22:08:38 You know. A qubit is a function taking a bit and returning the probability amplitude. 22:22:48 * ihope ponders the Hadamard gate 22:30:49 Well, that was harder than I expected. 22:33:18 haha 22:36:09 * ihope gets dizzy at his long string of type errors 22:36:30 I see what whoever said when he/she said that typeless Haskell would be a nightmare to debug. 22:39:21 typeless haskell? 22:39:35 Yep. 22:39:52 Well... Haskell with all the type stuff done at runtime. 22:45:45 ihope: what are you writing the implementation in? 22:46:29 H 22:46:35 Haskell, with types :-) 22:47:25 Oh, you write it. I'm incompetent :-P 22:48:34 mmmm 22:49:03 okay 22:49:26 but i'll write it in non-optimized python for now :) 22:59:59 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 23:00:03 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 23:00:05 mmmmmmmmmmmmmmmmmmm 23:00:31 this sort of requires a good matrix-library, i think 23:00:47 anyway 23:00:53 i'll write it in the least efficient way possible, for now 23:01:41 god this is ugly. 23:14:05 -!- nickv111 has left (?). 23:14:31 god this is WAY too ugly. 23:14:44 * ihope suddenly realizes that probably the best way to write a wave function is, in fact, using a function 23:14:56 . 23:15:20 * ihope doesn't use periods at the end of his CTCP ACTIONs 23:15:31 * GregorR-W . 23:15:59 * ihope decides to do so, so GregorR-W will stop throwing periods at him. 23:16:03 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 23:17:00 Actually, that first period was a "I have no response for that" mark. 23:17:40 -!- puzzlet has joined. 23:18:28 -!- kipple has quit (Read error: 110 (Connection timed out)). 23:22:00 Oh. 23:22:36 Well, I expect that wave functions commonly aren't written as functions. 23:31:10 oh god this is so ugly. 23:33:45 Can you give me a code sample? 23:34:29 no 23:34:39 i don't actually have any useful code yet :) 23:35:39 the problem is to apply the gate to all the possible different states of OTHER qubits in the register 23:43:01 So are you using actual functions for your wave functions? :-) 23:43:26 huh 23:43:29 what 23:43:43 i dunno what you're talking about :) 23:46:21 -!- fuse has joined. 23:51:39 Those things that take things like |000> and tell you their probability amplitudes. 23:51:56 my god i suck at programming. 23:52:02 my GOD i suck at programming 23:52:05 ihope: that's just a number. 23:52:10 it's not a function :) 23:52:23 oh god. quantum mechanics. 23:52:28 okay 23:52:33 i finished classes Gate and Register 23:52:43 lament: watcha doing? 23:52:55 fuse: writing an interpreter for quantum brainfuck. 23:53:08 woot. 23:53:11 So the probability amplitude of |000> is a number, but how do you determine that number? Is it an array? 23:53:31 is there a specification for that somewhere? 23:53:41 Yes, it's on the wiki. 23:54:06 ihope: it's not an array, it's a number 23:54:42 lament: yes, but where do you store the whole mass of probability amplitudes? 23:55:49 in an array 23:55:57 ahhhh 23:55:58 Hadamard = Gate(2, [[st, st], [st, -st]]) 23:56:00 :D 23:56:32 (st = 1/sqrt(2)) 23:57:05 so the thing between the outermost [ ] is a matrix? 23:57:12 sorry, i'll shut up