diff --git a/include/nil/crypto3/zk/snark/arithmetization/plonk/copy_constraint.hpp b/include/nil/crypto3/zk/snark/arithmetization/plonk/copy_constraint.hpp index 4140e6a1..f0594194 100644 --- a/include/nil/crypto3/zk/snark/arithmetization/plonk/copy_constraint.hpp +++ b/include/nil/crypto3/zk/snark/arithmetization/plonk/copy_constraint.hpp @@ -38,16 +38,17 @@ namespace nil { template struct plonk_copy_constraint { - plonk_copy_constraint() = default; - plonk_copy_constraint(const plonk_copy_constraint &other){ - initialize(other.first, other.second); + plonk_copy_constraint() = delete; + plonk_copy_constraint(const plonk_copy_constraint &other): first(other.first), second(other.second) { + initialize(first, second); } plonk_copy_constraint( const plonk_variable &_first, const plonk_variable &_second - ){ + ): first(_first), second(_second) { initialize(_first, _second); } + plonk_variable first; plonk_variable second; bool operator==(const plonk_copy_constraint &other){ @@ -67,6 +68,12 @@ namespace nil { std::swap(first, second); } } + + void swap() { + const auto tmp = first; + first = second; + second = tmp; + } }; template diff --git a/include/nil/crypto3/zk/snark/arithmetization/plonk/table_description.hpp b/include/nil/crypto3/zk/snark/arithmetization/plonk/table_description.hpp index ffc1694d..fa4ea3e1 100644 --- a/include/nil/crypto3/zk/snark/arithmetization/plonk/table_description.hpp +++ b/include/nil/crypto3/zk/snark/arithmetization/plonk/table_description.hpp @@ -74,10 +74,6 @@ namespace nil { return witness_columns + public_input_columns + a.index; case plonk_variable::column_type::selector: return witness_columns + public_input_columns + constant_columns + a.index; - case plonk_variable::column_type::uninitialized: - std::cerr << "trying to access uninitialized var!"; - std::abort(); - break; } /* unreachable*/ return std::numeric_limits::max(); diff --git a/include/nil/crypto3/zk/snark/arithmetization/plonk/variable.hpp b/include/nil/crypto3/zk/snark/arithmetization/plonk/variable.hpp index e8b0f469..6d584492 100644 --- a/include/nil/crypto3/zk/snark/arithmetization/plonk/variable.hpp +++ b/include/nil/crypto3/zk/snark/arithmetization/plonk/variable.hpp @@ -69,7 +69,7 @@ namespace nil { using assignment_type = AssignmentType; enum column_type : std::uint8_t { - witness, public_input, constant, selector, uninitialized + witness, public_input, constant, selector }; /** @@ -80,7 +80,11 @@ namespace nil { bool relative; column_type type; - constexpr plonk_variable() : index(0), rotation(0), relative(false), type(column_type::uninitialized) {}; + constexpr plonk_variable() = delete; + + constexpr plonk_variable(const plonk_variable &other) : + index(other.index), + rotation(other.rotation), relative(other.relative), type(other.type) {}; constexpr plonk_variable(const std::size_t index, std::int32_t rotation, @@ -176,8 +180,7 @@ namespace nil { {plonk_variable::column_type::witness, "w"}, {plonk_variable::column_type::public_input, "pub"}, {plonk_variable::column_type::constant, "c"}, - {plonk_variable::column_type::selector, "sel"}, - {plonk_variable::column_type::uninitialized,"NaN"} + {plonk_variable::column_type::selector, "sel"} }; os << type_map[var.type] << "_" << var.index; if (!var.relative) { diff --git a/include/nil/crypto3/zk/snark/systems/plonk/placeholder/gates_argument.hpp b/include/nil/crypto3/zk/snark/systems/plonk/placeholder/gates_argument.hpp index 92ce849d..cb46911d 100644 --- a/include/nil/crypto3/zk/snark/systems/plonk/placeholder/gates_argument.hpp +++ b/include/nil/crypto3/zk/snark/systems/plonk/placeholder/gates_argument.hpp @@ -107,10 +107,6 @@ namespace nil { case polynomial_dfs_variable_type::column_type::selector: assignment = assignments.selector(var.index); break; - case polynomial_dfs_variable_type::column_type::uninitialized: - std::cerr << "trying to access uninitialized var!"; - std::abort(); - break; } if (var.rotation != 0) { diff --git a/include/nil/crypto3/zk/snark/systems/plonk/placeholder/lookup_argument.hpp b/include/nil/crypto3/zk/snark/systems/plonk/placeholder/lookup_argument.hpp index 1dafb48c..dc1acca6 100644 --- a/include/nil/crypto3/zk/snark/systems/plonk/placeholder/lookup_argument.hpp +++ b/include/nil/crypto3/zk/snark/systems/plonk/placeholder/lookup_argument.hpp @@ -462,10 +462,6 @@ namespace nil { case DfsVariableType::column_type::selector: assignment = assignments.selector(var.index); break; - case DfsVariableType::column_type::uninitialized: - std::cerr << "trying to access uninitialized var!"; - std::abort(); - break; } if (var.rotation != 0) {