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.
