/*! * Copyright (c) 2021 Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See LICENSE file in the project root for * license information. */ #include "sparse_bin.hpp" namespace LightGBM { template <> const void* SparseBin::GetColWiseData( uint8_t* bit_type, bool* is_sparse, std::vector* bin_iterator, const int num_threads) const { *is_sparse = true; *bit_type = 8; for (int thread_index = 0; thread_index < num_threads; ++thread_index) { bin_iterator->emplace_back(new SparseBinIterator(this, 0)); } return nullptr; } template <> const void* SparseBin::GetColWiseData( uint8_t* bit_type, bool* is_sparse, std::vector* bin_iterator, const int num_threads) const { *is_sparse = true; *bit_type = 16; for (int thread_index = 0; thread_index < num_threads; ++thread_index) { bin_iterator->emplace_back(new SparseBinIterator(this, 0)); } return nullptr; } template <> const void* SparseBin::GetColWiseData( uint8_t* bit_type, bool* is_sparse, std::vector* bin_iterator, const int num_threads) const { *is_sparse = true; *bit_type = 32; for (int thread_index = 0; thread_index < num_threads; ++thread_index) { bin_iterator->emplace_back(new SparseBinIterator(this, 0)); } return nullptr; } template <> const void* SparseBin::GetColWiseData( uint8_t* bit_type, bool* is_sparse, BinIterator** bin_iterator) const { *is_sparse = true; *bit_type = 8; *bin_iterator = new SparseBinIterator(this, 0); return nullptr; } template <> const void* SparseBin::GetColWiseData( uint8_t* bit_type, bool* is_sparse, BinIterator** bin_iterator) const { *is_sparse = true; *bit_type = 16; *bin_iterator = new SparseBinIterator(this, 0); return nullptr; } template <> const void* SparseBin::GetColWiseData( uint8_t* bit_type, bool* is_sparse, BinIterator** bin_iterator) const { *is_sparse = true; *bit_type = 32; *bin_iterator = new SparseBinIterator(this, 0); return nullptr; } } // namespace LightGBM