Skip to content

Commit

Permalink
separate generate/controlbitpatterns
Browse files Browse the repository at this point in the history
  • Loading branch information
josephleekl committed Oct 22, 2024
1 parent 6598acf commit ce9250e
Showing 1 changed file with 22 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
namespace {
using namespace Pennylane::Util;
using Kokkos::Experimental::swap;
using Pennylane::LightningKokkos::Util::generateControlBitPatterns;
using Pennylane::LightningKokkos::Util::ControlBitPatterns;
using Pennylane::LightningKokkos::Util::generateBitPatterns;
using Pennylane::LightningKokkos::Util::one;
using Pennylane::LightningKokkos::Util::parity_2_offset;
using Pennylane::LightningKokkos::Util::reverseWires;
Expand Down Expand Up @@ -140,8 +141,11 @@ template <class Precision> struct NCMultiQubitOpFunctor {
num_qubits = num_qubits_;
std::tie(parity, rev_wires) =
reverseWires(num_qubits_, wires_, controlled_wires_);
indices = generateControlBitPatterns(num_qubits_, controlled_wires_,
controlled_values_, wires_);
std::vector<std::size_t> indices_ =
generateBitPatterns(wires_, num_qubits_);
ControlBitPatterns(indices_, num_qubits_, controlled_wires_,
controlled_values_);
indices = vector2view(indices_);
}

KOKKOS_INLINE_FUNCTION
Expand Down Expand Up @@ -230,8 +234,11 @@ template <class PrecisionT> struct applyNC1QubitOpFunctor {
num_qubits = num_qubits_;
std::tie(parity, rev_wires) =
reverseWires(num_qubits_, wires_, controlled_wires_);
indices = generateControlBitPatterns(num_qubits_, controlled_wires_,
controlled_values_, wires_);
std::vector<std::size_t> indices_ =
generateBitPatterns(wires_, num_qubits_);
ControlBitPatterns(indices_, num_qubits_, controlled_wires_,
controlled_values_);
indices = vector2view(indices_);
}

KOKKOS_INLINE_FUNCTION
Expand Down Expand Up @@ -331,8 +338,11 @@ template <class PrecisionT> struct applyNC2QubitOpFunctor {
num_qubits = num_qubits_;
std::tie(parity, rev_wires) =
reverseWires(num_qubits_, wires_, controlled_wires_);
indices = generateControlBitPatterns(num_qubits_, controlled_wires_,
controlled_values_, wires_);
std::vector<std::size_t> indices_ =
generateBitPatterns(wires_, num_qubits_);
ControlBitPatterns(indices_, num_qubits_, controlled_wires_,
controlled_values_);
indices = vector2view(indices_);
}

KOKKOS_INLINE_FUNCTION
Expand Down Expand Up @@ -443,8 +453,11 @@ template <class PrecisionT> struct applyNC3QubitOpFunctor {
num_qubits = num_qubits_;
std::tie(parity, rev_wires) =
reverseWires(num_qubits_, wires_, controlled_wires_);
indices = generateControlBitPatterns(num_qubits_, controlled_wires_,
controlled_values_, wires_);
std::vector<std::size_t> indices_ =
generateBitPatterns(wires_, num_qubits_);
ControlBitPatterns(indices_, num_qubits_, controlled_wires_,
controlled_values_);
indices = vector2view(indices_);
}

KOKKOS_INLINE_FUNCTION
Expand Down

0 comments on commit ce9250e

Please sign in to comment.