<commit_before>#ifndef MLT_MODELS_TRANSFORMERS_TRANSFORMER_MIXIN_HPP
#define MLT_MODELS_TRANSFORMERS_TRANSFORMER_MIXIN_HPP

#include <Eigen/Core>
#include <vector>

namespace mlt {
namespace models {
namespace transformers {
	template <class Transformer>
	class TransformerMixin {
	public:
		template <typename Input>
		Transformer& fit(Input&& input, const Eigen::Ref<const Eigen::MatrixXd>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start);
		}

		template <typename Input>
		Transformer& fit(Input&& input, const Eigen::Ref<const Eigen::MatrixXi>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start);
		}

		template <typename Input>
		Transformer& fit(Input&& input, const std::vector<int>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start);
		}

		template <typename Input>
		Eigen::MatrixXd fit_transform(Input&& input, const Eigen::Ref<const Eigen::MatrixXd>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start).transform(input);
		}

		template <typename Input>
		Eigen::MatrixXd fit_transform(Input&& input, const Eigen::Ref<const Eigen::MatrixXi>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start).transform(input);
		}

		template <typename Input>
		Eigen::MatrixXd fit_transform(Input&& input, const std::vector<int>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start).transform(input);
		}
	};
}
}
}
#endif<commit_msg>Improvements in TransformerMixin<commit_after>#ifndef MLT_MODELS_TRANSFORMERS_TRANSFORMER_MIXIN_HPP
#define MLT_MODELS_TRANSFORMERS_TRANSFORMER_MIXIN_HPP

#include <Eigen/Core>
#include <vector>

namespace mlt {
namespace models {
namespace transformers {
	template <class Transformer>
	class TransformerMixin {
	public:
		template <typename Input>
		Transformer& fit(Input&& input, const Eigen::Ref<const Eigen::MatrixXd>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start);
		}

		template <typename Input>
		Transformer& fit(Input&& input, const Eigen::Ref<const Eigen::VectorXi>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start);
		}

		template <typename Input>
		Eigen::MatrixXd fit_transform(Input&& input, const Eigen::Ref<const Eigen::MatrixXd>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start).transform(input);
		}

		template <typename Input>
		Eigen::MatrixXd fit_transform(Input&& input, const Eigen::Ref<const Eigen::VectorXi>&, bool cold_start = true) {
			return static_cast<Transformer&>(*this).fit(std::forward<Input>(input), cold_start).transform(input);
		}

	protected:
		TransformerMixin() {}
	};
}
}
}
#endif
{'fraction_non_alphanumeric': 0.1419631093544137, 'fraction_numerical': 0.0, 'mean_word_length': 7.185983827493262, 'pattern_counts': {'":': 0, '<': 49, '<?xml version=': 0, '>': 49, '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': '7551793', 'n_tokens_mistral': 1064, 'n_tokens_neox': 982, 'n_words': 193}