Skip to content

Commit

Permalink
Update RegisterManager's constructor.
Browse files Browse the repository at this point in the history
  • Loading branch information
rturrado committed May 17, 2024
1 parent b9d3e18 commit e915d1c
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions src/qx/RegisterManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ struct RegisterManagerError : public SimulationError {
};

RegisterManager::RegisterManager(const V3OneProgram &program) {
auto &&qubit_variable_sizes = program->variables.get_vec()
| ranges::views::filter([&](const V3OneVariable &variable) { return is_qubit_variable(*variable); })
auto &&qubit_variables = program->variables.get_vec()
| ranges::views::filter([&](const V3OneVariable &variable) { return is_qubit_variable(*variable); });
auto &&qubit_variable_sizes = qubit_variables
| ranges::views::transform([](const V3OneVariable &variable) { return v3_types::size_of(variable->typ); });
qubit_register_size_ = ranges::accumulate(qubit_variable_sizes, size_t{});

Expand All @@ -31,10 +32,7 @@ RegisterManager::RegisterManager(const V3OneProgram &program) {
qubit_index_to_variable_name_.resize(qubit_register_size_);

auto current_qubit_index = size_t{};
for (const auto &variable: program->variables) {
if (!is_qubit_variable(*variable)) {
continue;
}
for (auto &&variable: qubit_variables) {
const auto &variable_size = static_cast<size_t>(cqasm::v3x::types::size_of(variable->typ));
variable_name_to_qubit_range_[variable->name] = QubitRange{ current_qubit_index, variable_size };
std::fill(qubit_index_to_variable_name_.begin() + static_cast<long>(current_qubit_index),
Expand Down

0 comments on commit e915d1c

Please sign in to comment.