qiskit icon indicating copy to clipboard operation
qiskit copied to clipboard

Symbolic pulse raise `TypeError`

Open miamico opened this issue 2 years ago • 0 comments

Environment

  • Qiskit Terra version: 0.21.1
  • Python version: 3.9.12
  • Operating system: macOS Monterey 12.4

What is happening?

When trying to instantiate a SymbolicPulse as follows:


GaussianSquare(
        duration=280,
        amp=0.1,
        sigma=12,
        width=100)

I get the following error:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/Users/mirko/Desktop/symbolic_pulse.ipynb Cell 6 in <cell line: 1>()
----> [1](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=0) GaussianSquare(
      [2](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=1)         duration=280,
      [3](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=2)         amp=0.1,
      [4](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=3)         sigma=12,
      [5](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=4)         width=100)

/Users/mirko/Desktop/symbolic_pulse.ipynb Cell 6 in GaussianSquare.__init__(self, duration, amp, sigma, width, risefall_sigma_ratio, name, limit_amplitude)
    [641](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=640) valid_amp_conditions_expr = sym.Abs(_amp) <= 1.0
    [643](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=642) super().__init__(
    [644](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=643)     pulse_type=self.__class__.__name__,
    [645](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=644)     duration=duration,
   (...)
    [651](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=650)     valid_amp_conditions=valid_amp_conditions_expr,
    [652](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=651) )
--> [653](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=652) self.validate_parameters()

/Users/mirko/Desktop/symbolic_pulse.ipynb Cell 6 in SymbolicPulse.validate_parameters(self)
    [441](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=440) if self._constraints is not None:
    [442](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=441)     fargs = _get_expression_args(self._constraints, self.parameters)
--> [443](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=442)     if not bool(self._constraints_lam(*fargs)):
    [444](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=443)         param_repr = ", ".join(f"{p}={v}" for p, v in self.parameters.items())
    [445](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=444)         const_repr = str(self._constraints)

/Users/mirko/Desktop/symbolic_pulse.ipynb Cell 6 in LambdifiedExpression.__get__(self, instance, owner)
    [145](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=144) key = hash(expr)
    [146](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=145) if key not in self.lambda_funcs:
--> [147](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=146)     self.__set__(instance, expr)
    [149](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=148) return self.lambda_funcs[key]

/Users/mirko/Desktop/symbolic_pulse.ipynb Cell 6 in LambdifiedExpression.__set__(self, instance, value)
    [162](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=161) if _optional.HAS_SYMENGINE:
    [163](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=162)     try:
--> [164](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=163)         lamb = sym.lambdify(params, [value], real=False)
    [166](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=165)         def _wrapped_lamb(*args):
    [167](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=166)             if isinstance(args[0], np.ndarray):
    [168](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=167)                 # When the args[0] is a vector ("t"), tile other arguments args[1:]
    [169](vscode-notebook-cell:/Users/mirko/Desktop/symbolic_pulse.ipynb#ch0000016?line=168)                 # to prevent evaluation from looping over each element in t.

TypeError: lambdify() got an unexpected keyword argument 'real'

How can we reproduce the issue?

GaussianSquare(
        duration=280,
        amp=0.1,
        sigma=12,
        width=100)

What should happen?

A GaussianSquare pulse object should be instantiated

Any suggestions?

No response

miamico avatar Aug 09 '22 17:08 miamico