Also, I or someone else can help you out on our IRC channel (if we're around, of course), which is #sympy on freenode. Feel free to ask for help there if you get stuck with the git stuff, or with SymPy questions.
Aaron Meurer On Fri, Oct 7, 2011 at 5:00 PM, Matthew Rocklin <[email protected]> wrote: > I've found the sympy github wiki page on "Development Workflow" to be > quite helpful in getting started with git and github > > https://github.com/sympy/sympy/wiki/Development-workflow > > On Fri, Oct 7, 2011 at 5:50 PM, Hans Harhoff Andersen > <[email protected]> wrote: >> Hello >> >> Thanks for your informative replies. I am kinda new to git but I will >> try to figure out how to do pull requests (do I need to create a >> separate fork in github that you can pull?) >> We probably also need some sort of class to handle mixed control gates >> ie. trigger on some qubits on and some off. I was fiddling around with >> making the gate listen to the control value to determine filled or not >> filled, but I didn't wont to mess to much with the API. >> >> Regarding the CNOT gate I think we should also add a note in the >> documentation or a more clearly worded error to indicate that it is >> not supposed to be able to handle more than one control qubit. Right >> now the documentation for CNOT and CGate looks very much the same. >> >> I am new to contributing but I will try to come up with some suggestions. >> >> -Hans >> >> On Fri, Oct 7, 2011 at 11:07 PM, Brian Granger <[email protected]> wrote: >>> On Thu, Oct 6, 2011 at 2:19 PM, Hans Harhoff Andersen >>> <[email protected]> wrote: >>>> I just checked that the problem persists even in newest git version. >>> >>> I should mention that I don't consider this to be a bug as most people >>> use the word "CNOT gate" to mean the two qubit gate. >>> >>>> Also I have a feature request for circuit_plot. It would be very nice >>>> to have a way of making circuit plot display unfilled circles for >>>> controls which are triggered on qubit being in 0 state instead of >>>> state 1 (cf. Nielsen and Chuang book for examples of this eg. page 193 >>>> (fig. 4.16)). >>>> Without this feature you have to include a lot of NOTs in your circuit >>>> digram which makes it ugly and unreadable. >>> >>> A simple subclass of CGate would accomplish this: >>> >>> class AntiCGate(CGate): >>> >>> control_value = Integer(0) >>> >>> def plot_gate(self, circ_plot, gate_idx): >>> min_wire = int(min(chain(self.controls, self.targets))) >>> max_wire = int(max(chain(self.controls, self.targets))) >>> circ_plot.control_line(gate_idx, min_wire, max_wire) >>> for c in self.controls: >>> circ_plot.anti_control_point(gate_idx, int(c)) >>> self.gate.plot_gate(circ_plot, gate_idx) >>> >>> This would also require the anti_control_point method of >>> circuitplot.CircuitPlot: >>> >>> def anti_control_point(self, gate_idx, wire_idx): >>> """Draw a control point.""" >>> x = self._gate_grid[gate_idx] >>> y = self._wire_grid[wire_idx] >>> radius = self.control_radius >>> c = Circle( >>> (x,y), >>> radius*self.scale, >>> ec='k', >>> fc='k', >>> fill=False, >>> lw=self.linewidth >>> ) >>> self._axes.add_patch(c) >>> >>> Could you create a pull request on github with these changes? I am >>> short on time right now and won't be able to get to this for a while. >>> If you can't create a pull request, please open an issue with this >>> information. >>> >>> Cheers, >>> >>> Brian >>> >>> >>> >>> >>>> Best regards, Hans >>>> >>>> On Oct 6, 9:13 pm, Hans Harhoff Andersen <[email protected]> >>>> wrote: >>>>> I suspect that this is a bug since I can get it to work by writing: >>>>> gate.CGate((2,1),gate.X(0)) >>>>> >>>>> When I do >>>>> gate.CNOT((2,1),0) >>>>> I get: >>>>> TypeError: List indices must be integers, not Tuple >>>>> >>>>> On Thu, Oct 6, 2011 at 8:54 PM, Hans Harhoff Andersen >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> <[email protected]> wrote: >>>>> > Hi Sympy. >>>>> >>>>> > I am trying to use circuit_plot to plot my quantum circuit. I can get >>>>> > CNOT and such gates working, but I can't get the Toffoli/CCNOT gate to >>>>> > plot. As I read the documentation I should be able to use mutiple >>>>> > control qubits on the CNOT gate by writing something like: >>>>> > gate.CNOT([2,1],0) to have qubit 1 and 2 control qubit 0. But this >>>>> > doesn't work with sympy 0.7. >>>>> >>>>> > Any hints or suggestions? >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "sympy" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/sympy?hl=en. >>>> >>>> >>> >>> >>> >>> -- >>> Brian E. Granger >>> Cal Poly State University, San Luis Obispo >>> [email protected] and [email protected] >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sympy" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/sympy?hl=en. >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/sympy?hl=en. >> >> > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
