33#include  < libfqfft/evaluation_domain/domains/basic_radix2_domain.hpp> 
44#include  < libfqfft/evaluation_domain/domains/basic_radix2_domain_aux.hpp> 
55
6- #include  " libiop/algebra/field_utils.hpp" 
6+ #include  < libff/common/profiling.hpp> 
7+ #include  < libff/algebra/field_utils/field_utils.hpp> 
78#include  " libiop/algebra/utils.hpp" 
8- #include  " libiop/common/profiling.hpp" 
99
1010namespace  libiop  {
1111
@@ -207,23 +207,23 @@ template<typename FieldT>
207207std::vector<FieldT> additive_FFT_wrapper (const  std::vector<FieldT> &v,
208208                                         const  affine_subspace<FieldT> &H)
209209{
210-     libiop ::enter_block" Call to additive_FFT_wrapper" 
211-     libiop ::print_indentprintf (" * Vector size: %zu\n " size ());
212-     libiop ::print_indentprintf (" * Subspace size: %zu\n " num_elements ());
210+     libff ::enter_block" Call to additive_FFT_wrapper" 
211+     libff ::print_indentprintf (" * Vector size: %zu\n " size ());
212+     libff ::print_indentprintf (" * Subspace size: %zu\n " num_elements ());
213213    const  std::vector<FieldT> result = additive_FFT (v, H);
214-     libiop ::leave_block" Call to additive_FFT_wrapper" 
214+     libff ::leave_block" Call to additive_FFT_wrapper" 
215215    return  result;
216216}
217217
218218template <typename  FieldT>
219219std::vector<FieldT> additive_IFFT_wrapper (const  std::vector<FieldT> &v,
220220                                          const  affine_subspace<FieldT> &H)
221221{
222-     libiop ::enter_block" Call to additive_IFFT_wrapper" 
223-     libiop ::print_indentprintf (" * Vector size: %zu\n " size ());
224-     libiop ::print_indentprintf (" * Subspace size: %zu\n " num_elements ());
222+     libff ::enter_block" Call to additive_IFFT_wrapper" 
223+     libff ::print_indentprintf (" * Vector size: %zu\n " size ());
224+     libff ::print_indentprintf (" * Subspace size: %zu\n " num_elements ());
225225    const  std::vector<FieldT> result = additive_IFFT (v, H);
226-     libiop ::leave_block" Call to additive_IFFT_wrapper" 
226+     libff ::leave_block" Call to additive_IFFT_wrapper" 
227227    return  result;
228228}
229229
@@ -239,7 +239,7 @@ std::vector<FieldT> multiplicative_FFT_degree_aware(const std::vector<FieldT> &p
239239                                                    const  FieldT &shift)
240240{
241241    assert (poly_coeffs.size () <= coset.num_elements ());
242-     const  size_t  n = coset.num_elements (), logn = libiop ::log2
242+     const  size_t  n = coset.num_elements (), logn = libff ::log2
243243
244244    std::vector<FieldT> a (poly_coeffs);
245245    /* * If there is a coset shift x, the degree i term of the polynomial is multiplied by x^i */ 
@@ -249,7 +249,7 @@ std::vector<FieldT> multiplicative_FFT_degree_aware(const std::vector<FieldT> &p
249249    }
250250    a.resize (n, FieldT::zero ());
251251
252-     const  size_t  poly_dimension = libiop ::log2size ());
252+     const  size_t  poly_dimension = libff ::log2size ());
253253    const  size_t  poly_size = poly_coeffs.size ();
254254    /* * When the polynomial is of size k*|coset|, for k < 2^i,
255255     *  the first i iterations of Cooley Tukey are easily predictable. 
@@ -318,7 +318,7 @@ std::vector<FieldT> multiplicative_FFT_degree_aware(const std::vector<FieldT> &p
318318
319319template <typename  FieldT>
320320std::vector<FieldT> multiplicative_FFT_internal (
321-     const  std::vector<typename  enable_if<is_multiplicative<FieldT>::value, FieldT>::type> &poly_coeffs,
321+     const  std::vector<typename  libff:: enable_if<libff:: is_multiplicative<FieldT>::value, FieldT>::type> &poly_coeffs,
322322    const  multiplicative_subgroup_base<FieldT> &domain, const  FieldT shift)
323323{
324324    assert (poly_coeffs.size () <= domain.num_elements ());
@@ -327,7 +327,7 @@ std::vector<FieldT> multiplicative_FFT_internal(
327327
328328template <typename  FieldT>
329329std::vector<FieldT> multiplicative_FFT_internal (
330-     const  std::vector<typename  enable_if<is_additive<FieldT>::value, FieldT>::type> &poly_coeffs,
330+     const  std::vector<typename  libff:: enable_if<libff:: is_additive<FieldT>::value, FieldT>::type> &poly_coeffs,
331331    const  multiplicative_subgroup_base<FieldT> &domain, const  FieldT shift)
332332{
333333    throw  std::invalid_argument (" attempting to perform multiplicative IFFT with non-multiplicative field type" 
@@ -342,7 +342,7 @@ std::vector<FieldT> multiplicative_FFT(const std::vector<FieldT> &poly_coeffs,
342342
343343template <typename  FieldT>
344344std::vector<FieldT> multiplicative_IFFT_internal (
345-     const  std::vector<typename  enable_if<is_multiplicative<FieldT>::value, FieldT>::type> &evals,
345+     const  std::vector<typename  libff:: enable_if<libff:: is_multiplicative<FieldT>::value, FieldT>::type> &evals,
346346    const  multiplicative_subgroup_base<FieldT> &domain, const  FieldT shift)
347347{
348348    assert (domain.num_elements () == evals.size ());
@@ -362,7 +362,7 @@ std::vector<FieldT> multiplicative_IFFT_internal(
362362
363363template <typename  FieldT>
364364std::vector<FieldT> multiplicative_IFFT_internal (
365-     const  std::vector<typename  enable_if<is_additive<FieldT>::value, FieldT>::type> &evals,
365+     const  std::vector<typename  libff:: enable_if<libff:: is_additive<FieldT>::value, FieldT>::type> &evals,
366366    const  multiplicative_subgroup_base<FieldT> &domain, const  FieldT shift)
367367{
368368    throw  std::invalid_argument (" attempting to perform multiplicative IFFT with non-multiplicative field type" 
@@ -379,62 +379,62 @@ template<typename FieldT>
379379std::vector<FieldT> multiplicative_FFT_wrapper (const  std::vector<FieldT> &v,
380380                                               const  multiplicative_coset<FieldT> &H)
381381{
382-     libiop ::enter_block" Call to multiplicative_FFT_wrapper" 
383-     libiop ::print_indentprintf (" * Vector size: %zu\n " size ());
384-     libiop ::print_indentprintf (" * Subgroup size: %zu\n " num_elements ());
382+     libff ::enter_block" Call to multiplicative_FFT_wrapper" 
383+     libff ::print_indentprintf (" * Vector size: %zu\n " size ());
384+     libff ::print_indentprintf (" * Subgroup size: %zu\n " num_elements ());
385385    const  std::vector<FieldT> result = multiplicative_FFT (v, H);
386-     libiop ::leave_block" Call to multiplicative_FFT_wrapper" 
386+     libff ::leave_block" Call to multiplicative_FFT_wrapper" 
387387    return  result;
388388}
389389
390390template <typename  FieldT>
391391std::vector<FieldT> multiplicative_IFFT_wrapper (const  std::vector<FieldT> &v,
392392                                                const  multiplicative_coset<FieldT> &H)
393393{
394-     libiop ::enter_block" Call to multiplicative_IFFT_wrapper" 
395-     libiop ::print_indentprintf (" * Vector size: %zu\n " size ());
396-     libiop ::print_indentprintf (" * Coset size: %zu\n " num_elements ());
394+     libff ::enter_block" Call to multiplicative_IFFT_wrapper" 
395+     libff ::print_indentprintf (" * Vector size: %zu\n " size ());
396+     libff ::print_indentprintf (" * Coset size: %zu\n " num_elements ());
397397    if  (v.size () == 1 )
398398    {
399-         libiop ::leave_block" Call to multiplicative_IFFT_wrapper" 
399+         libff ::leave_block" Call to multiplicative_IFFT_wrapper" 
400400        return  {v[0 ]};
401401    }
402402    const  std::vector<FieldT> result = multiplicative_IFFT (v, H);
403-     libiop ::leave_block" Call to multiplicative_IFFT_wrapper" 
403+     libff ::leave_block" Call to multiplicative_IFFT_wrapper" 
404404    return  result;
405405}
406406
407407template <typename  FieldT>
408- std::vector<FieldT> FFT_over_field_subset (const  std::vector<typename  enable_if<is_multiplicative<FieldT>::value, FieldT>::type> coeffs,
408+ std::vector<FieldT> FFT_over_field_subset (const  std::vector<typename  libff:: enable_if<libff:: is_multiplicative<FieldT>::value, FieldT>::type> coeffs,
409409                                          field_subset<FieldT> domain)
410410{
411411    return  multiplicative_FFT_wrapper<FieldT>(coeffs, domain.coset ());
412412}
413413
414414template <typename  FieldT>
415- std::vector<FieldT> FFT_over_field_subset (const  std::vector<typename  enable_if<is_additive<FieldT>::value, FieldT>::type> coeffs,
415+ std::vector<FieldT> FFT_over_field_subset (const  std::vector<typename  libff:: enable_if<libff:: is_additive<FieldT>::value, FieldT>::type> coeffs,
416416                                          field_subset<FieldT> domain)
417417{
418418    return  additive_FFT_wrapper<FieldT>(coeffs, domain.subspace ());
419419}
420420
421421template <typename  FieldT>
422- std::vector<FieldT> IFFT_over_field_subset (const  std::vector<typename  enable_if<is_multiplicative<FieldT>::value, FieldT>::type> evals,
422+ std::vector<FieldT> IFFT_over_field_subset (const  std::vector<typename  libff:: enable_if<libff:: is_multiplicative<FieldT>::value, FieldT>::type> evals,
423423                                           field_subset<FieldT> domain)
424424{
425425    return  multiplicative_IFFT_wrapper<FieldT>(evals, domain.coset ());
426426}
427427
428428template <typename  FieldT>
429- std::vector<FieldT> IFFT_over_field_subset (const  std::vector<typename  enable_if<is_additive<FieldT>::value, FieldT>::type> evals,
429+ std::vector<FieldT> IFFT_over_field_subset (const  std::vector<typename  libff:: enable_if<libff:: is_additive<FieldT>::value, FieldT>::type> evals,
430430                                           field_subset<FieldT> domain)
431431{
432432    return  additive_IFFT_wrapper<FieldT>(evals, domain.subspace ());
433433}
434434
435435template <typename  FieldT>
436436std::vector<FieldT> IFFT_of_known_degree_over_field_subset (
437-     const  std::vector<typename  enable_if<is_multiplicative<FieldT>::value, FieldT>::type> evals,
437+     const  std::vector<typename  libff:: enable_if<libff:: is_multiplicative<FieldT>::value, FieldT>::type> evals,
438438    size_t  degree,
439439    field_subset<FieldT> domain)
440440{
@@ -443,7 +443,7 @@ std::vector<FieldT> IFFT_of_known_degree_over_field_subset(
443443     *  The evaluations in this coset are every nth element of the evaluations 
444444     *  over the entire domain, where n = |domain| / |degree| 
445445     */  
446-     const  size_t  closest_power_of_two = round_to_next_power_of_2 (degree);
446+     const  size_t  closest_power_of_two = libff:: round_to_next_power_of_2
447447    field_subset<FieldT> minimal_coset = domain.get_subset_of_order (closest_power_of_two);
448448    std::vector<FieldT> evals_in_minimal_coset;
449449    evals_in_minimal_coset.reserve (closest_power_of_two);
@@ -457,7 +457,7 @@ std::vector<FieldT> IFFT_of_known_degree_over_field_subset(
457457
458458template <typename  FieldT>
459459std::vector<FieldT> IFFT_of_known_degree_over_field_subset (
460-     const  std::vector<typename  enable_if<is_additive<FieldT>::value, FieldT>::type> evals,
460+     const  std::vector<typename  libff:: enable_if<libff:: is_additive<FieldT>::value, FieldT>::type> evals,
461461    size_t  degree,
462462    field_subset<FieldT> domain)
463463{
@@ -466,7 +466,7 @@ std::vector<FieldT> IFFT_of_known_degree_over_field_subset(
466466     *  therefore the evaluations are the first elements of the evaluations 
467467     *  over the entire domain. 
468468     */  
469-     const  size_t  closest_power_of_two = round_to_next_power_of_2 (degree);
469+     const  size_t  closest_power_of_two = libff:: round_to_next_power_of_2
470470    field_subset<FieldT> minimal_subspace = domain.get_subset_of_order (closest_power_of_two);
471471    std::vector<FieldT> evals_in_minimal_subspace;
472472    evals_in_minimal_subspace.insert (
0 commit comments