unitaria.Simulator

class unitaria.Simulator(scheme: str = 'exact', default_precision: float | None = None, default_failure_probability: float | None = None, seed: SeedSequence | None = None, count_gates: bool = False)[source]

Bases: Estimator

Estimator based on matrix-arithmetic simulation

Parameters:
  • scheme – The measurement scheme, which is simulated. Should be one of "exact" or "monte-carlo".

  • default_precision – Default for the precision parameter in estimate_norm.

  • default_failure_probability – Default for the failure_probability parameter in estimate_norm.

  • count_gates – Wether to count the number of gates. May be much slower.

estimate_norm(node: Node, precision: float | None = None, failure_probability: float | None = None) float[source]

Estimate the norm of the given block encoding.

The block encoding must represent a vector. The returned value is guaranteed to lie in the range [0, node.normalization].

The implementors of this method are free to interpret the precision``argument loosely, and ignore the ``failure_probability argument.

Parameters:
  • node – The node representing the vector of which to compute the norm.

  • precision – The absolute precision, with which the norm should be computed. If None, self.default_precision is used instead.

  • failure_probability – The maximum allowed failure probability, with which the absolute error of the estimate may exceed the given precision. If None, self.default_failure_probability is used instead.