8.7 KiB
8.7 KiB
<html lang="en">
<head>
</head>
</html>
LCOV - code coverage report | ||||||||||||||||||||||
![]() | ||||||||||||||||||||||
|
||||||||||||||||||||||
![]() |
Line data Source code 1 : // *************************************************************** 2 : // SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez 3 : // SPDX-FileType: SOURCE 4 : // SPDX-License-Identifier: MIT 5 : // *************************************************************** 6 : 7 : 8 : #include "bayesnetUtils.h" 9 : namespace bayesnet { 10 : // Return the indices in descending order 11 186 : std::vector<int> argsort(std::vector<double>& nums) 12 : { 13 186 : int n = nums.size(); 14 186 : std::vector<int> indices(n); 15 186 : iota(indices.begin(), indices.end(), 0); 16 3816 : sort(indices.begin(), indices.end(), [&nums](int i, int j) {return nums[i] > nums[j];}); 17 186 : return indices; 18 0 : } 19 42 : std::vector<std::vector<double>> tensorToVectorDouble(torch::Tensor& dtensor) 20 : { 21 : // convert mxn tensor to mxn std::vector 22 42 : std::vector<std::vector<double>> result; 23 : // Iterate over cols 24 10818 : for (int i = 0; i < dtensor.size(0); ++i) { 25 32328 : auto col_tensor = dtensor.index({ i, "..." }); 26 10776 : auto col = std::vector<double>(col_tensor.data_ptr<float>(), col_tensor.data_ptr<float>() + dtensor.size(1)); 27 10776 : result.push_back(col); 28 10776 : } 29 42 : return result; 30 10776 : } 31 54 : torch::Tensor vectorToTensor(std::vector<std::vector<int>>& vector, bool transpose) 32 : { 33 : // convert nxm std::vector to mxn tensor if transpose 34 54 : long int m = transpose ? vector[0].size() : vector.size(); 35 54 : long int n = transpose ? vector.size() : vector[0].size(); 36 54 : auto tensor = torch::zeros({ m, n }, torch::kInt32); 37 354 : for (int i = 0; i < m; ++i) { 38 74886 : for (int j = 0; j < n; ++j) { 39 74586 : tensor[i][j] = transpose ? vector[j][i] : vector[i][j]; 40 : } 41 : } 42 54 : return tensor; 43 0 : } 44 : } |
![]() |
Generated by: LCOV version 2.0-1 |
</html>