@@ -713,7 +713,7 @@ typename CurveTrees<C1, C2>::TreeExtension CurveTrees<C1, C2>::get_tree_extensio
713713 const uint64_t old_n_leaf_tuples,
714714 const LastHashes &existing_last_hashes,
715715 std::vector<std::vector<UnifiedOutput>> &&new_outputs,
716- const bool use_fast_torsion_check)
716+ const bool use_fast_torsion_check) const
717717{
718718 TreeExtension tree_extension;
719719 tree_extension.leaves .start_leaf_tuple_idx = old_n_leaf_tuples;
@@ -747,9 +747,9 @@ typename CurveTrees<C1, C2>::TreeExtension CurveTrees<C1, C2>::get_tree_extensio
747747 // and place the outputs in a tree extension struct for insertion into the db. We ignore invalid outputs, since
748748 // they cannot be inserted to the tree.
749749 std::vector<typename C1 ::Scalar> flattened_leaves;
750- this ->set_valid_leaves (flattened_leaves,
750+ this ->outputs_to_leaves (std::move (flat_sorted_outputs),
751+ flattened_leaves,
751752 tree_extension.leaves .tuples ,
752- std::move (flat_sorted_outputs),
753753 use_fast_torsion_check);
754754
755755 if (flattened_leaves.empty ())
@@ -829,7 +829,7 @@ template CurveTrees<Selene, Helios>::TreeExtension CurveTrees<Selene, Helios>::g
829829 const uint64_t old_n_leaf_tuples,
830830 const LastHashes &existing_last_hashes,
831831 std::vector<std::vector<UnifiedOutput>> &&new_outputs,
832- const bool use_fast_torsion_check);
832+ const bool use_fast_torsion_check) const ;
833833// ----------------------------------------------------------------------------------------------------------------------
834834template <typename C1 , typename C2 >
835835CompressedTreeExtension CurveTrees<C1 , C2 >::compress_tree_extension(
@@ -1508,13 +1508,15 @@ template CurveTrees<Selene, Helios>::TreeExtension CurveTrees<Selene, Helios>::p
15081508// CurveTrees private member functions
15091509// ----------------------------------------------------------------------------------------------------------------------
15101510template <typename C1 , typename C2 >
1511- void CurveTrees<C1 , C2 >::set_valid_leaves(
1511+ void CurveTrees<C1 , C2 >::outputs_to_leaves(std::vector<UnifiedOutput> &&new_outputs,
15121512 std::vector<typename C1 ::Scalar> &flattened_leaves_out,
1513- std::vector<UnifiedOutput> &tuples_out,
1514- std::vector<UnifiedOutput> &&new_outputs,
1515- const bool use_fast_torsion_check)
1513+ std::vector<UnifiedOutput> &valid_outputs_out,
1514+ const bool use_fast_torsion_check) const
15161515{
1517- TIME_MEASURE_START (set_valid_leaves);
1516+ flattened_leaves_out.clear ();
1517+ valid_outputs_out.clear ();
1518+
1519+ TIME_MEASURE_START (outputs_to_leaves);
15181520
15191521 // Keep track of valid outputs to make sure we only use leaves from valid outputs. Can't use std::vector<bool>
15201522 // because std::vector<bool> concurrent access is not thread safe.
@@ -1673,8 +1675,7 @@ void CurveTrees<C1, C2>::set_valid_leaves(
16731675 TIME_MEASURE_FINISH (get_selene_scalars);
16741676
16751677 // Step 5. Set valid tuples to be stored in the db
1676- tuples_out.clear ();
1677- tuples_out.reserve (n_valid_outputs);
1678+ valid_outputs_out.reserve (n_valid_outputs);
16781679 for (std::size_t i = 0 ; i < valid_outputs.size (); ++i)
16791680 {
16801681 if (!valid_outputs[i])
@@ -1683,19 +1684,19 @@ void CurveTrees<C1, C2>::set_valid_leaves(
16831684 CHECK_AND_ASSERT_THROW_MES (new_outputs.size () > i, " unexpected size of valid outputs" );
16841685
16851686 // We can derive leaf tuples from output pairs, so we store just the unified output in the db to save 32 bytes
1686- tuples_out .emplace_back (std::move (new_outputs[i]));
1687+ valid_outputs_out .emplace_back (std::move (new_outputs[i]));
16871688 }
16881689
1689- TIME_MEASURE_FINISH (set_valid_leaves );
1690+ TIME_MEASURE_FINISH (outputs_to_leaves );
16901691
16911692 m_convert_valid_leaves_ms += convert_valid_leaves;
16921693 m_collect_derivatives_ms += collect_derivatives;
16931694 m_batch_invert_ms += batch_invert;
16941695 m_get_selene_scalars_ms += get_selene_scalars;
16951696
1696- m_set_valid_leaves_ms += set_valid_leaves ;
1697+ m_outputs_to_leaves_ms += outputs_to_leaves ;
16971698
1698- LOG_PRINT_L2 (" Total time spent setting leaves: " << m_set_valid_leaves_ms / 1000
1699+ LOG_PRINT_L2 (" Total time spent setting leaves: " << m_outputs_to_leaves_ms / 1000
16991700 << " , converting valid leaves: " << m_convert_valid_leaves_ms / 1000
17001701 << " , collecting derivatives: " << m_collect_derivatives_ms / 1000
17011702 << " , batch invert: " << m_batch_invert_ms / 1000
0 commit comments