<commit_before>#pragma once

namespace tools::common::moments{
    template<typename mps_type, typename mpo_type, typename env_type>
    double first(const mps_type &mps,const mpo_type &mpo, const env_type &envL, const env_type &envR);
    template<typename mps_type, typename mpo_type, typename env_type>
    double second(const mps_type &mps,const mpo_type &mpo, const env_type &envL, const env_type &envR);

    // Extern templates
    using cplx = std::complex<double>;
    using real = double;
    template<typename Scalar>
    using T3 = Eigen::Tensor<Scalar, 3>;
    template<typename Scalar>
    using T4 = Eigen::Tensor<Scalar, 4>;
    template<typename T>
    using TM = Eigen::TensorMap<T>;
    extern template double tools::common::moments::first(const T3<real> &, const T4<real> &, const T3<real> &, const T3<real> &);
    extern template double tools::common::moments::first(const T3<cplx> &, const T4<cplx> &, const T3<cplx> &, const T3<cplx> &);
    extern template double tools::common::moments::first(const TM<T3<real>> &, const T4<real> &, const T3<real> &, const T3<real> &);
    extern template double tools::common::moments::first(const TM<T3<cplx>> &, const T4<cplx> &, const T3<cplx> &, const T3<cplx> &);
    extern template double tools::common::moments::second(const T3<real> &, const T4<real> &, const T4<real> &, const T4<real> &);
    extern template double tools::common::moments::second(const T3<cplx> &, const T4<cplx> &, const T4<cplx> &, const T4<cplx> &);
    extern template double tools::common::moments::second(const TM<T3<real>> &, const T4<real> &, const T4<real> &, const T4<real> &);
    extern template double tools::common::moments::second(const TM<T3<cplx>> &, const T4<cplx> &, const T4<cplx> &, const T4<cplx> &);


}<commit_msg>Remove extra declarations<commit_after>#pragma once

namespace tools::common::moments{
    template<typename mps_type, typename mpo_type, typename env_type>
    double first(const mps_type &mps,const mpo_type &mpo, const env_type &envL, const env_type &envR);
    template<typename mps_type, typename mpo_type, typename env_type>
    double second(const mps_type &mps,const mpo_type &mpo, const env_type &envL, const env_type &envR);

    // Extern templates
    using cplx = std::complex<double>;
    using real = double;
    template<typename Scalar>
    using T3 = Eigen::Tensor<Scalar, 3>;
    template<typename Scalar>
    using T4 = Eigen::Tensor<Scalar, 4>;
    template<typename T>
    using TM = Eigen::TensorMap<T>;
//    extern template double tools::common::moments::first(const T3<real> &, const T4<real> &, const T3<real> &, const T3<real> &);
    extern template double tools::common::moments::first(const T3<cplx> &, const T4<cplx> &, const T3<cplx> &, const T3<cplx> &);
//    extern template double tools::common::moments::first(const TM<T3<real>> &, const T4<real> &, const T3<real> &, const T3<real> &);
//    extern template double tools::common::moments::first(const TM<T3<cplx>> &, const T4<cplx> &, const T3<cplx> &, const T3<cplx> &);
//    extern template double tools::common::moments::second(const T3<real> &, const T4<real> &, const T4<real> &, const T4<real> &);
    extern template double tools::common::moments::second(const T3<cplx> &, const T4<cplx> &, const T4<cplx> &, const T4<cplx> &);
//    extern template double tools::common::moments::second(const TM<T3<real>> &, const T4<real> &, const T4<real> &, const T4<real> &);
//    extern template double tools::common::moments::second(const TM<T3<cplx>> &, const T4<cplx> &, const T4<cplx> &, const T4<cplx> &);


}
{'fraction_non_alphanumeric': 0.15651201788708777, 'fraction_numerical': 0.020122973728339856, 'mean_word_length': 5.202772963604852, 'pattern_counts': {'":': 0, '<': 93, '<?xml version=': 0, '>': 93, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7531813', 'n_tokens_mistral': 1342, 'n_tokens_neox': 1289, 'n_words': 308}