PyQTorch
Fast differentiable statevector emulator based on PyTorch. The code is open source, hosted on Github and maintained by Pasqal.
              Backend(name=BackendName.PYQTORCH, supports_ad=True, support_bp=True, supports_adjoint=True, is_remote=False, with_measurements=True, native_endianness=Endianness.BIG, engine=Engine.TORCH, with_noise=False, config=Configuration())
  
      dataclass
  
    
              Bases: Backend
PyQTorch backend.
            convert(circuit, observable=None)
    Convert an abstract circuit and an optional observable to their native representation.
Additionally, this function constructs an embedding function which maps from user-facing parameters to device parameters (read more on parameter embedding here).
Source code in qadence/backend.py
              
              Configuration(_use_gate_params=True, use_sparse_observable=False, use_gradient_checkpointing=False, use_single_qubit_composition=False, transpilation_passes=None, algo_hevo=AlgoHEvo.EXP, ode_solver=SolverType.DP5_SE, n_steps_hevo=100, loop_expectation=False)
  
      dataclass
  
    
              Bases: BackendConfiguration
            algo_hevo: AlgoHEvo = AlgoHEvo.EXP
  
      class-attribute
      instance-attribute
  
    Determine which kind of Hamiltonian evolution algorithm to use.
            loop_expectation: bool = False
  
      class-attribute
      instance-attribute
  
    When computing batches of expectation values, only allocate one wavefunction.
Loop over the batch of parameters to only allocate a single wavefunction at any given time.
            n_steps_hevo: int = 100
  
      class-attribute
      instance-attribute
  
    Default number of steps for the Hamiltonian evolution.
            ode_solver: SolverType = SolverType.DP5_SE
  
      class-attribute
      instance-attribute
  
    Determine which ODE solver to use for time-dependent blocks.
            use_gradient_checkpointing: bool = False
  
      class-attribute
      instance-attribute
  
    Use gradient checkpointing.
Recommended for higher-order optimization tasks.
            use_single_qubit_composition: bool = False
  
      class-attribute
      instance-attribute
  
    Composes chains of single qubit gates into a single matmul if possible.
            supported_gates = list(set(OpName.list()) - set([OpName.TDAGGER]))
  
      module-attribute
  
    The set of supported gates.
Tdagger is currently not supported.
              PyQHamiltonianEvolution(qubit_support, n_qubits, block, config)
    
              Bases: Module
Source code in qadence/backends/pyqtorch/convert_ops.py
                    
            dagger(values)
    
            jacobian_generator(values)
    Approximate jacobian of the evolved operator with respect to generator parameter(s).
Source code in qadence/backends/pyqtorch/convert_ops.py
              
            jacobian_time(values)
    Approximate jacobian of the evolved operator with respect to time evolution.
Source code in qadence/backends/pyqtorch/convert_ops.py
              
            unitary(values)
    The evolved operator given current parameter values for generator and time evolution.