Compare commits

...

21 Commits

Author SHA1 Message Date
0e24135d46 Complete Conditional Mutual Information and test 2024-05-15 11:09:23 +02:00
521bfd2a8e Remove unoptimized implementation of conditionalEntropy 2024-05-15 01:24:27 +02:00
e2e0fb0c40 Implement Conditional Mutual Information 2024-05-15 00:48:02 +02:00
56b62a67cc Change BoostAODE tests results because folding upgrade 2024-05-12 20:23:05 +02:00
c0fc107abb Fix catch2 submodule config 2024-05-12 19:05:36 +02:00
d8c44b3b7c Add tests to check the correct version of the mdlp, folding and json libraries 2024-05-12 12:22:44 +02:00
6ab7cd2cbd Remove submodule catch from tests/lib 2024-05-12 11:05:53 +02:00
b578ea8a2d Remove module lib/catch2 2024-05-12 11:04:42 +02:00
9a752d15dc Change build cmake folder names to Debug & Release 2024-05-09 10:51:52 +02:00
4992685e94 Add devcontainer to repository
Fix update_coverage.py with lcov2.1 output
2024-05-08 06:42:19 +00:00
346b693c79 Update pdf coverage report 2024-05-06 18:28:15 +02:00
164c8bd90c Update changelog 2024-05-06 18:02:18 +02:00
ced29a2c2e Refactor coverage report generation
Add some tests to reach 99%
2024-05-06 17:56:00 +02:00
0ec53f405f Fix mistakes in feature selection in SPnDE
Complete the first A2DE test
Update version number
2024-05-05 11:14:01 +02:00
f806015b29 Implement SPnDE and A2DE 2024-05-05 01:35:17 +02:00
8115f25c06 Fix mispell mistake in doc 2024-05-02 10:53:15 +02:00
618a1e539c Return File Library to /lib as it is needed by Local Discretization (factorize) 2024-04-30 20:31:14 +02:00
7aeffba740 Add list of models to README 2024-04-30 18:59:38 +02:00
e79ea63afb Merge pull request 'convergence_best' (#27) from convergence_best into main
Add convergence_best as hyperparameter to allow to take the last or the best accuracy as the accuracy to compare to in convergence

Reviewed-on: #27
2024-04-30 16:22:08 +00:00
3c7382a93a Enhance tests coverage and report output 2024-04-30 14:00:24 +02:00
b4a222b100 Update gcovr configuration 2024-04-30 12:06:32 +02:00
903 changed files with 13171 additions and 203012 deletions

57
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,57 @@
FROM mcr.microsoft.com/devcontainers/cpp:ubuntu22.04
ARG REINSTALL_CMAKE_VERSION_FROM_SOURCE="3.22.2"
# Optionally install the cmake for vcpkg
COPY ./reinstall-cmake.sh /tmp/
RUN if [ "${REINSTALL_CMAKE_VERSION_FROM_SOURCE}" != "none" ]; then \
chmod +x /tmp/reinstall-cmake.sh && /tmp/reinstall-cmake.sh ${REINSTALL_CMAKE_VERSION_FROM_SOURCE}; \
fi \
&& rm -f /tmp/reinstall-cmake.sh
# [Optional] Uncomment this section to install additional vcpkg ports.
# RUN su vscode -c "${VCPKG_ROOT}/vcpkg install <your-port-name-here>"
# [Optional] Uncomment this section to install additional packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends wget software-properties-common libdatetime-perl libcapture-tiny-perl libdatetime-format-dateparse-perl libgd-perl
# Add PPA for GCC 13
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN apt-get update
# Install GCC 13.1
RUN apt-get install -y gcc-13 g++-13
# Install lcov 2.1
RUN wget --quiet https://github.com/linux-test-project/lcov/releases/download/v2.1/lcov-2.1.tar.gz && \
tar -xvf lcov-2.1.tar.gz && \
cd lcov-2.1 && \
make install
RUN rm lcov-2.1.tar.gz
RUN rm -fr lcov-2.1
# Install Miniconda
RUN mkdir -p /opt/conda
RUN wget --quiet "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh" -O /opt/conda/miniconda.sh && \
bash /opt/conda/miniconda.sh -b -p /opt/miniconda
# Add conda to PATH
ENV PATH=/opt/miniconda/bin:$PATH
# add CXX and CC to the environment with gcc 13
ENV CXX=/usr/bin/g++-13
ENV CC=/usr/bin/gcc-13
# link the last gcov version
RUN rm /usr/bin/gcov
RUN ln -s /usr/bin/gcov-13 /usr/bin/gcov
# change ownership of /opt/miniconda to vscode user
RUN chown -R vscode:vscode /opt/miniconda
USER vscode
RUN conda init
RUN conda install -y -c conda-forge yaml pytorch

View File

@@ -0,0 +1,37 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
{
"name": "C++",
"build": {
"dockerfile": "Dockerfile"
},
// "features": {
// "ghcr.io/devcontainers/features/conda:1": {}
// }
// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "make release && make debug && echo 'Done!'",
// Configure tool-specific properties.
// "customizations": {},
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
"settings": {},
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"ms-vscode.cpptools-themes",
"ms-vscode.cmake-tools",
"ms-azuretools.vscode-docker",
"jbenden.c-cpp-flylint",
"matepek.vscode-catch2-test-adapter",
"GitHub.copilot"
]
}
}
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
#
set -e
CMAKE_VERSION=${1:-"none"}
if [ "${CMAKE_VERSION}" = "none" ]; then
echo "No CMake version specified, skipping CMake reinstallation"
exit 0
fi
# Cleanup temporary directory and associated files when exiting the script.
cleanup() {
EXIT_CODE=$?
set +e
if [[ -n "${TMP_DIR}" ]]; then
echo "Executing cleanup of tmp files"
rm -Rf "${TMP_DIR}"
fi
exit $EXIT_CODE
}
trap cleanup EXIT
echo "Installing CMake..."
apt-get -y purge --auto-remove cmake
mkdir -p /opt/cmake
architecture=$(dpkg --print-architecture)
case "${architecture}" in
arm64)
ARCH=aarch64 ;;
amd64)
ARCH=x86_64 ;;
*)
echo "Unsupported architecture ${architecture}."
exit 1
;;
esac
CMAKE_BINARY_NAME="cmake-${CMAKE_VERSION}-linux-${ARCH}.sh"
CMAKE_CHECKSUM_NAME="cmake-${CMAKE_VERSION}-SHA-256.txt"
TMP_DIR=$(mktemp -d -t cmake-XXXXXXXXXX)
echo "${TMP_DIR}"
cd "${TMP_DIR}"
curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_BINARY_NAME}" -O
curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_CHECKSUM_NAME}" -O
sha256sum -c --ignore-missing "${CMAKE_CHECKSUM_NAME}"
sh "${TMP_DIR}/${CMAKE_BINARY_NAME}" --prefix=/opt/cmake --skip-license
ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
ln -s /opt/cmake/bin/ctest /usr/local/bin/ctest

12
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for more information:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
# https://containers.dev/guide/dependabot
version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: weekly

1
.gitignore vendored
View File

@@ -39,4 +39,5 @@ cmake-build*/**
puml/** puml/**
.vscode/settings.json .vscode/settings.json
sample/build sample/build
**/.DS_Store

5
.gitmodules vendored
View File

@@ -13,3 +13,8 @@
url = https://github.com/rmontanana/folding url = https://github.com/rmontanana/folding
main = main main = main
update = merge update = merge
[submodule "tests/lib/catch2"]
path = tests/lib/catch2
url = https://github.com/catchorg/Catch2.git
main = main
update = merge

View File

@@ -0,0 +1,4 @@
{
"sonarCloudOrganization": "rmontanana",
"projectKey": "rmontanana_BayesNet"
}

2
.vscode/launch.json vendored
View File

@@ -16,7 +16,7 @@
"name": "test", "name": "test",
"program": "${workspaceFolder}/build_debug/tests/TestBayesNet", "program": "${workspaceFolder}/build_debug/tests/TestBayesNet",
"args": [ "args": [
"\"Bisection Best\"" "[Node]"
], ],
"cwd": "${workspaceFolder}/build_debug/tests" "cwd": "${workspaceFolder}/build_debug/tests"
}, },

View File

@@ -9,16 +9,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Add the Library logo generated with <https://openart.ai> to README.md - Library logo generated with <https://openart.ai> to README.md
- Add link to the coverage report in the README.md coverage label. - Link to the coverage report in the README.md coverage label.
- Add the *convergence_best* hyperparameter to the BoostAODE class, to control the way the prior accuracy is computed if convergence is set. Default value is *false*. - *convergence_best* hyperparameter to the BoostAODE class, to control the way the prior accuracy is computed if convergence is set. Default value is *false*.
- SPnDE model.
- A2DE model.
- A2DE & SPnDE tests.
- Add tests to reach 99% of coverage.
- Add tests to check the correct version of the mdlp, folding and json libraries.
### Internal ### Internal
- Refactor library ArffFile to limit the number of samples with a parameter. - Create library ShuffleArffFile to limit the number of samples with a parameter and shuffle them.
- Refactor tests libraries location to test/lib - Refactor catch2 library location to test/lib
- Refactor loadDataset function in tests. - Refactor loadDataset function in tests.
- Remove conditionalEdgeWeights method in BayesMetrics. - Remove conditionalEdgeWeights method in BayesMetrics.
- Refactor Coverage Report generation.
- Add devcontainer to work on apple silicon.
- Change build cmake folder names to Debug & Release.
## [1.0.5] 2024-04-20 ## [1.0.5] 2024-04-20

View File

@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.20)
project(BayesNet project(BayesNet
VERSION 1.0.5 VERSION 1.0.5.1
DESCRIPTION "Bayesian Network and basic classifiers Library." DESCRIPTION "Bayesian Network and basic classifiers Library."
HOMEPAGE_URL "https://github.com/rmontanana/bayesnet" HOMEPAGE_URL "https://github.com/rmontanana/bayesnet"
LANGUAGES CXX LANGUAGES CXX
@@ -25,8 +25,9 @@ set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -O0 -g") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -fno-elide-constructors -fno-default-inline")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
# Options # Options
# ------- # -------
option(ENABLE_CLANG_TIDY "Enable to add clang tidy." OFF) option(ENABLE_CLANG_TIDY "Enable to add clang tidy." OFF)
@@ -60,8 +61,9 @@ endif (ENABLE_CLANG_TIDY)
# External libraries - dependencies of BayesNet # External libraries - dependencies of BayesNet
# --------------------------------------------- # ---------------------------------------------
# include(FetchContent) # include(FetchContent)
add_git_submodule("lib/mdlp")
add_git_submodule("lib/json") add_git_submodule("lib/json")
add_git_submodule("lib/mdlp")
add_subdirectory("lib/Files")
# Subdirectories # Subdirectories
# -------------- # --------------
@@ -72,8 +74,7 @@ add_subdirectory(bayesnet)
# ------- # -------
if (ENABLE_TESTING) if (ENABLE_TESTING)
MESSAGE("Testing enabled") MESSAGE("Testing enabled")
add_subdirectory("tests/lib/catch2") add_subdirectory(tests/lib/catch2)
add_subdirectory(tests/lib/Files)
include(CTest) include(CTest)
add_subdirectory(tests) add_subdirectory(tests)
endif (ENABLE_TESTING) endif (ENABLE_TESTING)

View File

@@ -2,14 +2,13 @@ SHELL := /bin/bash
.DEFAULT_GOAL := help .DEFAULT_GOAL := help
.PHONY: viewcoverage coverage setup help install uninstall diagrams buildr buildd test clean debug release sample updatebadge .PHONY: viewcoverage coverage setup help install uninstall diagrams buildr buildd test clean debug release sample updatebadge
f_release = build_release f_release = build_Release
f_debug = build_debug f_debug = build_Debug
f_diagrams = diagrams f_diagrams = diagrams
app_targets = BayesNet app_targets = BayesNet
test_targets = TestBayesNet test_targets = TestBayesNet
clang-uml = clang-uml clang-uml = clang-uml
plantuml = plantuml plantuml = plantuml
gcovr = gcovr
lcov = lcov lcov = lcov
genhtml = genhtml genhtml = genhtml
dot = dot dot = dot
@@ -115,24 +114,24 @@ test: ## Run tests (opt="-s") to verbose output the tests, (opt="-c='Test Maximu
coverage: ## Run tests and generate coverage report (build/index.html) coverage: ## Run tests and generate coverage report (build/index.html)
@echo ">>> Building tests with coverage..." @echo ">>> Building tests with coverage..."
@which $(gcovr) || (echo ">>> Please install gcovr"; exit 1)
@which $(lcov) || (echo ">>> Please install lcov"; exit 1) @which $(lcov) || (echo ">>> Please install lcov"; exit 1)
@which $(genhtml) || (echo ">>> Please install lcov"; exit 1) @if [ ! -f $(f_debug)/tests/coverage.info ] ; then $(MAKE) test ; fi
@$(MAKE) test
@$(gcovr) $(f_debug)/tests
@echo ">>> Building report..." @echo ">>> Building report..."
@cd $(f_debug)/tests; \ @cd $(f_debug)/tests; \
$(lcov) --directory . --capture --output-file coverage.info >/dev/null 2>&1; \ $(lcov) --directory CMakeFiles --capture --demangle-cpp --ignore-errors source,source --output-file coverage.info >/dev/null 2>&1; \
$(lcov) --remove coverage.info '/usr/*' --output-file coverage.info >/dev/null 2>&1; \ $(lcov) --remove coverage.info '/usr/*' --output-file coverage.info >/dev/null 2>&1; \
$(lcov) --remove coverage.info 'lib/*' --output-file coverage.info >/dev/null 2>&1; \ $(lcov) --remove coverage.info 'lib/*' --output-file coverage.info >/dev/null 2>&1; \
$(lcov) --remove coverage.info 'libtorch/*' --output-file coverage.info >/dev/null 2>&1; \ $(lcov) --remove coverage.info 'libtorch/*' --output-file coverage.info >/dev/null 2>&1; \
$(lcov) --remove coverage.info 'tests/*' --output-file coverage.info >/dev/null 2>&1; \ $(lcov) --remove coverage.info 'tests/*' --output-file coverage.info >/dev/null 2>&1; \
$(lcov) --remove coverage.info 'bayesnet/utils/loguru.*' --ignore-errors unused --output-file coverage.info >/dev/null 2>&1 $(lcov) --remove coverage.info 'bayesnet/utils/loguru.*' --ignore-errors unused --output-file coverage.info >/dev/null 2>&1; \
@$(genhtml) $(f_debug)/tests/coverage.info --output-directory html >/dev/null 2>&1; $(lcov) --remove coverage.info '/opt/miniconda/*' --ignore-errors unused --output-file coverage.info >/dev/null 2>&1; \
$(lcov) --summary coverage.info
@$(MAKE) updatebadge @$(MAKE) updatebadge
@echo ">>> Done"; @echo ">>> Done";
viewcoverage: ## View the html coverage report viewcoverage: ## View the html coverage report
@which $(genhtml) || (echo ">>> Please install lcov (genhtml not found)"; exit 1)
@$(genhtml) $(f_debug)/tests/coverage.info --demangle-cpp --output-directory html --title "BayesNet Coverage Report" -s -k -f --legend >/dev/null 2>&1;
@xdg-open html/index.html || open html/index.html 2>/dev/null @xdg-open html/index.html || open html/index.html 2>/dev/null
@echo ">>> Done"; @echo ">>> Done";

View File

@@ -7,7 +7,7 @@
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=rmontanana_BayesNet&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=rmontanana_BayesNet) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=rmontanana_BayesNet&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=rmontanana_BayesNet)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=rmontanana_BayesNet&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=rmontanana_BayesNet) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=rmontanana_BayesNet&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=rmontanana_BayesNet)
![Gitea Last Commit](https://img.shields.io/gitea/last-commit/rmontanana/bayesnet?gitea_url=https://gitea.rmontanana.es:3000&logo=gitea) ![Gitea Last Commit](https://img.shields.io/gitea/last-commit/rmontanana/bayesnet?gitea_url=https://gitea.rmontanana.es:3000&logo=gitea)
[![Coverage Badge](https://img.shields.io/badge/Coverage-97,1%25-green)](html/index.html) [![Coverage Badge](https://img.shields.io/badge/Coverage-99,0%25-green)](html/index.html)
Bayesian Network Classifiers using libtorch from scratch Bayesian Network Classifiers using libtorch from scratch
@@ -61,7 +61,25 @@ make sample fname=tests/data/glass.arff
## Models ## Models
### [BoostAODE](docs/BoostAODE.md) #### - TAN
#### - KDB
#### - SPODE
#### - AODE
#### - [BoostAODE](docs/BoostAODE.md)
### With Local Discretization
#### - TANLd
#### - KDBLd
#### - SPODELd
#### - AODELd
## Diagrams ## Diagrams

View File

@@ -0,0 +1,38 @@
// ***************************************************************
// SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
// SPDX-FileType: SOURCE
// SPDX-License-Identifier: MIT
// ***************************************************************
#include "SPnDE.h"
namespace bayesnet {
SPnDE::SPnDE(std::vector<int> parents) : Classifier(Network()), parents(parents) {}
void SPnDE::buildModel(const torch::Tensor& weights)
{
// 0. Add all nodes to the model
addNodes();
std::vector<int> attributes;
for (int i = 0; i < static_cast<int>(features.size()); ++i) {
if (std::find(parents.begin(), parents.end(), i) == parents.end()) {
attributes.push_back(i);
}
}
// 1. Add edges from the class node to all other nodes
// 2. Add edges from the parents nodes to all other nodes
for (const auto& attribute : attributes) {
model.addEdge(className, features[attribute]);
for (const auto& root : parents) {
model.addEdge(features[root], features[attribute]);
}
}
}
std::vector<std::string> SPnDE::graph(const std::string& name) const
{
return model.graph(name);
}
}

View File

@@ -0,0 +1,26 @@
// ***************************************************************
// SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
// SPDX-FileType: SOURCE
// SPDX-License-Identifier: MIT
// ***************************************************************
#ifndef SPnDE_H
#define SPnDE_H
#include <vector>
#include "Classifier.h"
namespace bayesnet {
class SPnDE : public Classifier {
public:
explicit SPnDE(std::vector<int> parents);
virtual ~SPnDE() = default;
std::vector<std::string> graph(const std::string& name = "SPnDE") const override;
protected:
void buildModel(const torch::Tensor& weights) override;
private:
std::vector<int> parents;
};
}
#endif

View File

@@ -0,0 +1,40 @@
// ***************************************************************
// SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
// SPDX-FileType: SOURCE
// SPDX-License-Identifier: MIT
// ***************************************************************
#include "A2DE.h"
namespace bayesnet {
A2DE::A2DE(bool predict_voting) : Ensemble(predict_voting)
{
validHyperparameters = { "predict_voting" };
}
void A2DE::setHyperparameters(const nlohmann::json& hyperparameters_)
{
auto hyperparameters = hyperparameters_;
if (hyperparameters.contains("predict_voting")) {
predict_voting = hyperparameters["predict_voting"];
hyperparameters.erase("predict_voting");
}
Classifier::setHyperparameters(hyperparameters);
}
void A2DE::buildModel(const torch::Tensor& weights)
{
models.clear();
significanceModels.clear();
for (int i = 0; i < features.size() - 1; ++i) {
for (int j = i + 1; j < features.size(); ++j) {
auto model = std::make_unique<SPnDE>(std::vector<int>({ i, j }));
models.push_back(std::move(model));
}
}
n_models = static_cast<unsigned>(models.size());
significanceModels = std::vector<double>(n_models, 1.0);
}
std::vector<std::string> A2DE::graph(const std::string& title) const
{
return Ensemble::graph(title);
}
}

22
bayesnet/ensembles/A2DE.h Normal file
View File

@@ -0,0 +1,22 @@
// ***************************************************************
// SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez
// SPDX-FileType: SOURCE
// SPDX-License-Identifier: MIT
// ***************************************************************
#ifndef A2DE_H
#define A2DE_H
#include "bayesnet/classifiers/SPnDE.h"
#include "Ensemble.h"
namespace bayesnet {
class A2DE : public Ensemble {
public:
A2DE(bool predict_voting = false);
virtual ~A2DE() {};
void setHyperparameters(const nlohmann::json& hyperparameters) override;
std::vector<std::string> graph(const std::string& title = "A2DE") const override;
protected:
void buildModel(const torch::Tensor& weights) override;
};
}
#endif

View File

@@ -410,11 +410,7 @@ namespace bayesnet {
result.insert(it2, fatherName); result.insert(it2, fatherName);
ending = false; ending = false;
} }
} else {
throw std::logic_error("Error in topological sort because of node " + feature + " is not in result");
} }
} else {
throw std::logic_error("Error in topological sort because of node father " + fatherName + " is not in result");
} }
} }
} }

View File

@@ -9,7 +9,7 @@
namespace bayesnet { namespace bayesnet {
Node::Node(const std::string& name) Node::Node(const std::string& name)
: name(name), numStates(0), cpTable(torch::Tensor()), parents(std::vector<Node*>()), children(std::vector<Node*>()) : name(name)
{ {
} }
void Node::clear() void Node::clear()
@@ -96,7 +96,6 @@ namespace bayesnet {
// Get dimensions of the CPT // Get dimensions of the CPT
dimensions.push_back(numStates); dimensions.push_back(numStates);
transform(parents.begin(), parents.end(), back_inserter(dimensions), [](const auto& parent) { return parent->getNumStates(); }); transform(parents.begin(), parents.end(), back_inserter(dimensions), [](const auto& parent) { return parent->getNumStates(); });
// Create a tensor of zeros with the dimensions of the CPT // Create a tensor of zeros with the dimensions of the CPT
cpTable = torch::zeros(dimensions, torch::kFloat) + laplaceSmoothing; cpTable = torch::zeros(dimensions, torch::kFloat) + laplaceSmoothing;
// Fill table with counts // Fill table with counts

View File

@@ -12,14 +12,6 @@
#include <torch/torch.h> #include <torch/torch.h>
namespace bayesnet { namespace bayesnet {
class Node { class Node {
private:
std::string name;
std::vector<Node*> parents;
std::vector<Node*> children;
int numStates; // number of states of the variable
torch::Tensor cpTable; // Order of indices is 0-> node variable, 1-> 1st parent, 2-> 2nd parent, ...
std::vector<int64_t> dimensions; // dimensions of the cpTable
std::vector<std::pair<std::string, std::string>> combinations(const std::vector<std::string>&);
public: public:
explicit Node(const std::string&); explicit Node(const std::string&);
void clear(); void clear();
@@ -37,6 +29,14 @@ namespace bayesnet {
unsigned minFill(); unsigned minFill();
std::vector<std::string> graph(const std::string& clasName); // Returns a std::vector of std::strings representing the graph in graphviz format std::vector<std::string> graph(const std::string& clasName); // Returns a std::vector of std::strings representing the graph in graphviz format
float getFactorValue(std::map<std::string, int>&); float getFactorValue(std::map<std::string, int>&);
private:
std::string name;
std::vector<Node*> parents;
std::vector<Node*> children;
int numStates = 0; // number of states of the variable
torch::Tensor cpTable; // Order of indices is 0-> node variable, 1-> 1st parent, 2-> 2nd parent, ...
std::vector<int64_t> dimensions; // dimensions of the cpTable
std::vector<std::pair<std::string, std::string>> combinations(const std::vector<std::string>&);
}; };
} }
#endif #endif

View File

@@ -4,6 +4,9 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// *************************************************************** // ***************************************************************
#include <map>
#include <unordered_map>
#include <tuple>
#include "Mst.h" #include "Mst.h"
#include "BayesMetrics.h" #include "BayesMetrics.h"
namespace bayesnet { namespace bayesnet {
@@ -105,6 +108,8 @@ namespace bayesnet {
} }
return matrix; return matrix;
} }
// Measured in nats (natural logarithm (log) base e)
// Elements of Information Theory, 2nd Edition, Thomas M. Cover, Joy A. Thomas p. 14
double Metrics::entropy(const torch::Tensor& feature, const torch::Tensor& weights) double Metrics::entropy(const torch::Tensor& feature, const torch::Tensor& weights)
{ {
torch::Tensor counts = feature.bincount(weights); torch::Tensor counts = feature.bincount(weights);
@@ -143,11 +148,64 @@ namespace bayesnet {
} }
return entropyValue; return entropyValue;
} }
// H(Y|X,C) = sum_{x in X, c in C} p(x,c) H(Y|X=x,C=c)
double Metrics::conditionalEntropy(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& labels, const torch::Tensor& weights)
{
// Ensure the tensors are of the same length
assert(firstFeature.size(0) == secondFeature.size(0) && firstFeature.size(0) == labels.size(0) && firstFeature.size(0) == weights.size(0));
// Convert tensors to vectors for easier processing
auto firstFeatureData = firstFeature.accessor<int, 1>();
auto secondFeatureData = secondFeature.accessor<int, 1>();
auto labelsData = labels.accessor<int, 1>();
auto weightsData = weights.accessor<double, 1>();
int numSamples = firstFeature.size(0);
// Maps for joint and marginal probabilities
std::map<std::tuple<int, int, int>, double> jointCount;
std::map<std::tuple<int, int>, double> marginalCount;
// Compute joint and marginal counts
for (int i = 0; i < numSamples; ++i) {
auto keyJoint = std::make_tuple(firstFeatureData[i], labelsData[i], secondFeatureData[i]);
auto keyMarginal = std::make_tuple(firstFeatureData[i], labelsData[i]);
jointCount[keyJoint] += weightsData[i];
marginalCount[keyMarginal] += weightsData[i];
}
// Total weight sum
double totalWeight = torch::sum(weights).item<double>();
if (totalWeight == 0)
return 0;
// Compute the conditional entropy
double conditionalEntropy = 0.0;
for (const auto& [keyJoint, jointFreq] : jointCount) {
auto [x, c, y] = keyJoint;
auto keyMarginal = std::make_tuple(x, c);
double p_xc = marginalCount[keyMarginal] / totalWeight;
double p_y_given_xc = jointFreq / marginalCount[keyMarginal];
if (p_y_given_xc > 0) {
conditionalEntropy -= (jointFreq / totalWeight) * std::log(p_y_given_xc);
}
}
return conditionalEntropy;
}
// I(X;Y) = H(Y) - H(Y|X) // I(X;Y) = H(Y) - H(Y|X)
double Metrics::mutualInformation(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& weights) double Metrics::mutualInformation(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& weights)
{ {
return entropy(firstFeature, weights) - conditionalEntropy(firstFeature, secondFeature, weights); return entropy(firstFeature, weights) - conditionalEntropy(firstFeature, secondFeature, weights);
} }
// I(X;Y|C) = H(Y|C) - H(Y|X,C)
double Metrics::conditionalMutualInformation(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& labels, const torch::Tensor& weights)
{
return std::max(conditionalEntropy(firstFeature, labels, weights) - conditionalEntropy(firstFeature, secondFeature, labels, weights), 0.0);
}
/* /*
Compute the maximum spanning tree considering the weights as distances Compute the maximum spanning tree considering the weights as distances
and the indices of the weights as nodes of this square matrix using and the indices of the weights as nodes of this square matrix using

View File

@@ -18,12 +18,16 @@ namespace bayesnet {
std::vector<int> SelectKBestWeighted(const torch::Tensor& weights, bool ascending = false, unsigned k = 0); std::vector<int> SelectKBestWeighted(const torch::Tensor& weights, bool ascending = false, unsigned k = 0);
std::vector<double> getScoresKBest() const; std::vector<double> getScoresKBest() const;
double mutualInformation(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& weights); double mutualInformation(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& weights);
double conditionalMutualInformation(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& labels, const torch::Tensor& weights);
torch::Tensor conditionalEdge(const torch::Tensor& weights); torch::Tensor conditionalEdge(const torch::Tensor& weights);
std::vector<std::pair<int, int>> maximumSpanningTree(const std::vector<std::string>& features, const torch::Tensor& weights, const int root); std::vector<std::pair<int, int>> maximumSpanningTree(const std::vector<std::string>& features, const torch::Tensor& weights, const int root);
// Measured in nats (natural logarithm (log) base e)
// Elements of Information Theory, 2nd Edition, Thomas M. Cover, Joy A. Thomas p. 14
double entropy(const torch::Tensor& feature, const torch::Tensor& weights);
double conditionalEntropy(const torch::Tensor& firstFeature, const torch::Tensor& secondFeature, const torch::Tensor& labels, const torch::Tensor& weights);
protected: protected:
torch::Tensor samples; // n+1xm torch::Tensor used to fit the model where samples[-1] is the y std::vector torch::Tensor samples; // n+1xm torch::Tensor used to fit the model where samples[-1] is the y std::vector
std::string className; std::string className;
double entropy(const torch::Tensor& feature, const torch::Tensor& weights);
std::vector<std::string> features; std::vector<std::string> features;
template <class T> template <class T>
std::vector<std::pair<T, T>> doCombinations(const std::vector<T>& source) std::vector<std::pair<T, T>> doCombinations(const std::vector<T>& source)

View File

@@ -5,7 +5,7 @@
The hyperparameters defined in the algorithm are: The hyperparameters defined in the algorithm are:
- ***bisection*** (*boolean*): If set to true allows the algorithm to add *k* models at once (as specified in the algorithm) to the ensemble. Default value: *true*. - ***bisection*** (*boolean*): If set to true allows the algorithm to add *k* models at once (as specified in the algorithm) to the ensemble. Default value: *true*.
- ***biesection_best*** (*boolean*): If set to *true*, the algorithm will take as *priorAccuracy* the best accuracy computed. If set to *false⁺ it will take the last accuracy as *priorAccuracy*. Default value: *false*. - ***bisection_best*** (*boolean*): If set to *true*, the algorithm will take as *priorAccuracy* the best accuracy computed. If set to *false⁺ it will take the last accuracy as *priorAccuracy*. Default value: *false*.
- ***order*** (*{"asc", "desc", "rand"}*): Sets the order (ascending/descending/random) in which dataset variables will be processed to choose the parents of the *SPODEs*. Default value: *"desc"*. - ***order*** (*{"asc", "desc", "rand"}*): Sets the order (ascending/descending/random) in which dataset variables will be processed to choose the parents of the *SPODEs*. Default value: *"desc"*.

Binary file not shown.

View File

@@ -1,5 +0,0 @@
filter = bayesnet/
exclude-directories = build_debug/lib/
exclude = bayesnet/utils/loguru.*
print-summary = yes
sort = uncovered-percent

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/BaseClassifier.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/BaseClassifier.h - functions</title>
<link rel="stylesheet" type="text/css" href="../gcov.css"> <link rel="stylesheet" type="text/css" href="../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">bayesnet</a> - BaseClassifier.h<span style="font-size: 80%;"> (<a href="BaseClassifier.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet</a> - BaseClassifier.h<span style="font-size: 80%;"> (<a href="BaseClassifier.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">50.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td>
<td class="headerCovTableEntry">1</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="BaseClassifier.h.gcov.html#L19">_ZN8bayesnet14BaseClassifierD0Ev</a></td> <td class="coverFn"><a href="BaseClassifier.h.gcov.html#L19">bayesnet::BaseClassifier::~BaseClassifier()</a></td>
<td class="coverFnHi">241</td> <td class="coverFnHi">1680</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="BaseClassifier.h.gcov.html#L19">_ZN8bayesnet14BaseClassifierD0Ev</a></td>
<td class="coverFnAliasLo">0</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="BaseClassifier.h.gcov.html#L19">_ZN8bayesnet14BaseClassifierD2Ev</a></td>
<td class="coverFnAliasHi">241</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/BaseClassifier.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/BaseClassifier.h - functions</title>
<link rel="stylesheet" type="text/css" href="../gcov.css"> <link rel="stylesheet" type="text/css" href="../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">bayesnet</a> - BaseClassifier.h<span style="font-size: 80%;"> (<a href="BaseClassifier.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet</a> - BaseClassifier.h<span style="font-size: 80%;"> (<a href="BaseClassifier.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">50.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td>
<td class="headerCovTableEntry">1</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="BaseClassifier.h.gcov.html#L19">_ZN8bayesnet14BaseClassifierD0Ev</a></td> <td class="coverFn"><a href="BaseClassifier.h.gcov.html#L19">bayesnet::BaseClassifier::~BaseClassifier()</a></td>
<td class="coverFnHi">241</td> <td class="coverFnHi">1680</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="BaseClassifier.h.gcov.html#L19">_ZN8bayesnet14BaseClassifierD0Ev</a></td>
<td class="coverFnAliasLo">0</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="BaseClassifier.h.gcov.html#L19">_ZN8bayesnet14BaseClassifierD2Ev</a></td>
<td class="coverFnAliasHi">241</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/BaseClassifier.h</title>
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<frameset cols="120,*">
<frame src="BaseClassifier.h.gcov.overview.html" name="overview">
<frame src="BaseClassifier.h.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/BaseClassifier.h</title> <title>LCOV - BayesNet Coverage Report - bayesnet/BaseClassifier.h</title>
<link rel="stylesheet" type="text/css" href="../gcov.css"> <link rel="stylesheet" type="text/css" href="../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">bayesnet</a> - BaseClassifier.h<span style="font-size: 80%;"> (source / <a href="BaseClassifier.h.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet</a> - BaseClassifier.h<span style="font-size: 80%;"> (source / <a href="BaseClassifier.h.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryLo">50.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td>
<td class="headerCovTableEntry">1</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -80,7 +88,7 @@
<span id="L18"><span class="lineNum"> 18</span> : virtual BaseClassifier&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) = 0;</span> <span id="L18"><span class="lineNum"> 18</span> : virtual BaseClassifier&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) = 0;</span>
<span id="L19"><span class="lineNum"> 19</span> : virtual BaseClassifier&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) = 0;</span> <span id="L19"><span class="lineNum"> 19</span> : virtual BaseClassifier&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) = 0;</span>
<span id="L20"><span class="lineNum"> 20</span> : virtual BaseClassifier&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states, const torch::Tensor&amp; weights) = 0;</span> <span id="L20"><span class="lineNum"> 20</span> : virtual BaseClassifier&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states, const torch::Tensor&amp; weights) = 0;</span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC tlaBgGNC"> 241 : virtual ~BaseClassifier() = default;</span></span> <span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC tlaBgGNC"> 1680 : virtual ~BaseClassifier() = default;</span></span>
<span id="L22"><span class="lineNum"> 22</span> : torch::Tensor virtual predict(torch::Tensor&amp; X) = 0;</span> <span id="L22"><span class="lineNum"> 22</span> : torch::Tensor virtual predict(torch::Tensor&amp; X) = 0;</span>
<span id="L23"><span class="lineNum"> 23</span> : std::vector&lt;int&gt; virtual predict(std::vector&lt;std::vector&lt;int &gt;&gt;&amp; X) = 0;</span> <span id="L23"><span class="lineNum"> 23</span> : std::vector&lt;int&gt; virtual predict(std::vector&lt;std::vector&lt;int &gt;&gt;&amp; X) = 0;</span>
<span id="L24"><span class="lineNum"> 24</span> : torch::Tensor virtual predict_proba(torch::Tensor&amp; X) = 0;</span> <span id="L24"><span class="lineNum"> 24</span> : torch::Tensor virtual predict_proba(torch::Tensor&amp; X) = 0;</span>

View File

@@ -0,0 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/BaseClassifier.h</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="BaseClassifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="BaseClassifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="BaseClassifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="BaseClassifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="BaseClassifier.h.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="BaseClassifier.h.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="BaseClassifier.h.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="BaseClassifier.h.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="BaseClassifier.h.gcov.html#L21" target="source" alt="overview">
<area shape="rect" coords="0,36,79,39" href="BaseClassifier.h.gcov.html#L25" target="source" alt="overview">
<area shape="rect" coords="0,40,79,43" href="BaseClassifier.h.gcov.html#L29" target="source" alt="overview">
<area shape="rect" coords="0,44,79,47" href="BaseClassifier.h.gcov.html#L33" target="source" alt="overview">
</map>
<center>
<a href="BaseClassifier.h.gcov.html#top" target="source">Top</a><br><br>
<img src="BaseClassifier.h.gcov.png" width=80 height=44 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Classifier.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Classifier.cc<span style="font-size: 80%;"> (<a href="Classifier.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Classifier.cc<span style="font-size: 80%;"> (<a href="Classifier.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">24</td> <td class="headerCovTableEntry">24</td>
<td class="headerCovTableEntry">24</td> <td class="headerCovTableEntry">24</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,170 +71,170 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L178">_ZN8bayesnet10Classifier17topological_orderB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L182">bayesnet::Classifier::dump_cpt[abi:cxx11]() const</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">4</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L182">_ZNK8bayesnet10Classifier8dump_cptB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L178">bayesnet::Classifier::topological_order[abi:cxx11]()</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">4</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L142">_ZN8bayesnet10Classifier5scoreERSt6vectorIS1_IiSaIiEESaIS3_EERS3_</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L101">bayesnet::Classifier::predict(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">44</td> <td class="coverFnHi">16</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L101">_ZN8bayesnet10Classifier7predictERSt6vectorIS1_IiSaIiEESaIS3_EE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L142">bayesnet::Classifier::score(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;)</a></td>
<td class="coverFnHi">44</td> <td class="coverFnHi">16</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L170">_ZNK8bayesnet10Classifier17getNumberOfStatesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L170">bayesnet::Classifier::getNumberOfStates() const</a></td>
<td class="coverFnHi">66</td> <td class="coverFnHi">24</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L149">_ZNK8bayesnet10Classifier4showB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L149">bayesnet::Classifier::show[abi:cxx11]() const</a></td>
<td class="coverFnHi">66</td> <td class="coverFnHi">24</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L186">_ZN8bayesnet10Classifier18setHyperparametersERKN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS2_14adl_serializerES5_IhSaIhEEvEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L186">bayesnet::Classifier::setHyperparameters(nlohmann::json_abi_v3_11_3::basic_json&lt;std::map, std::vector, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector&lt;unsigned char, std::allocator&lt;unsigned char&gt; &gt;, void&gt; const&amp;)</a></td>
<td class="coverFnHi">231</td> <td class="coverFnHi">92</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L137">_ZN8bayesnet10Classifier5scoreERN2at6TensorES3_</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L137">bayesnet::Classifier::score(at::Tensor&amp;, at::Tensor&amp;)</a></td>
<td class="coverFnHi">308</td> <td class="coverFnHi">112</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L47">_ZN8bayesnet10Classifier3fitERN2at6TensorES3_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L47">bayesnet::Classifier::fit(at::Tensor&amp;, at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">322</td> <td class="coverFnHi">128</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L55">_ZN8bayesnet10Classifier3fitERSt6vectorIS1_IiSaIiEESaIS3_EERS3_RKS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISD_EERKSD_RSt3mapISD_S3_St4lessISD_ESaISt4pairISI_S3_EEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L55">bayesnet::Classifier::fit(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">360</td> <td class="coverFnHi">136</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L166">_ZNK8bayesnet10Classifier16getNumberOfEdgesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L166">bayesnet::Classifier::getNumberOfEdges() const</a></td>
<td class="coverFnHi">475</td> <td class="coverFnHi">332</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L161">_ZNK8bayesnet10Classifier16getNumberOfNodesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L161">bayesnet::Classifier::getNumberOfNodes() const</a></td>
<td class="coverFnHi">475</td> <td class="coverFnHi">332</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L122">_ZN8bayesnet10Classifier13predict_probaERSt6vectorIS1_IiSaIiEESaIS3_EE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L28">bayesnet::Classifier::buildDataset(at::Tensor&amp;)</a></td>
<td class="coverFnHi">766</td> <td class="coverFnHi">340</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L174">_ZNK8bayesnet10Classifier17getClassNumStatesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L174">bayesnet::Classifier::getClassNumStates() const</a></td>
<td class="coverFnHi">877</td> <td class="coverFnHi">348</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L28">_ZN8bayesnet10Classifier12buildDatasetERN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L122">bayesnet::Classifier::predict_proba(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">888</td> <td class="coverFnHi">548</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L66">_ZN8bayesnet10Classifier3fitERN2at6TensorERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L72">bayesnet::Classifier::fit(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;, at::Tensor const&amp;)</a></td>
<td class="coverFnHi">1089</td> <td class="coverFnHi">660</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L72">_ZN8bayesnet10Classifier3fitERN2at6TensorERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEERKS2_</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L66">bayesnet::Classifier::fit(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">1686</td> <td class="coverFnHi">852</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L42">_ZN8bayesnet10Classifier10trainModelERKN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L115">bayesnet::Classifier::predict_proba(at::Tensor&amp;)</a></td>
<td class="coverFnHi">2951</td> <td class="coverFnHi">1484</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L153">_ZN8bayesnet10Classifier8addNodesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L153">bayesnet::Classifier::addNodes()</a></td>
<td class="coverFnHi">2951</td> <td class="coverFnHi">1576</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L94">_ZN8bayesnet10Classifier7predictERN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L42">bayesnet::Classifier::trainModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">3262</td> <td class="coverFnHi">1576</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L77">_ZN8bayesnet10Classifier18checkFitParametersEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L12">bayesnet::Classifier::build(std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;, at::Tensor const&amp;)</a></td>
<td class="coverFnHi">3413</td> <td class="coverFnHi">1760</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L12">_ZN8bayesnet10Classifier5buildERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_RSt3mapIS7_S1_IiSaIiEESt4lessIS7_ESaISt4pairISC_SG_EEERKN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L77">bayesnet::Classifier::checkFitParameters()</a></td>
<td class="coverFnHi">3413</td> <td class="coverFnHi">1760</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L115">_ZN8bayesnet10Classifier13predict_probaERN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L94">bayesnet::Classifier::predict(at::Tensor&amp;)</a></td>
<td class="coverFnHi">3562</td> <td class="coverFnHi">1844</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L10">_ZN8bayesnet10ClassifierC2ENS_7NetworkE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L10">bayesnet::Classifier::Classifier(bayesnet::Network)</a></td>
<td class="coverFnHi">4750</td> <td class="coverFnHi">2240</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Classifier.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Classifier.cc<span style="font-size: 80%;"> (<a href="Classifier.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Classifier.cc<span style="font-size: 80%;"> (<a href="Classifier.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">24</td> <td class="headerCovTableEntry">24</td>
<td class="headerCovTableEntry">24</td> <td class="headerCovTableEntry">24</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,170 +71,170 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L42">_ZN8bayesnet10Classifier10trainModelERKN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L10">bayesnet::Classifier::Classifier(bayesnet::Network)</a></td>
<td class="coverFnHi">2951</td> <td class="coverFnHi">2240</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L28">_ZN8bayesnet10Classifier12buildDatasetERN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L153">bayesnet::Classifier::addNodes()</a></td>
<td class="coverFnHi">888</td> <td class="coverFnHi">1576</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L115">_ZN8bayesnet10Classifier13predict_probaERN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L12">bayesnet::Classifier::build(std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;, at::Tensor const&amp;)</a></td>
<td class="coverFnHi">3562</td> <td class="coverFnHi">1760</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L122">_ZN8bayesnet10Classifier13predict_probaERSt6vectorIS1_IiSaIiEESaIS3_EE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L28">bayesnet::Classifier::buildDataset(at::Tensor&amp;)</a></td>
<td class="coverFnHi">766</td> <td class="coverFnHi">340</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L178">_ZN8bayesnet10Classifier17topological_orderB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L77">bayesnet::Classifier::checkFitParameters()</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">1760</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L77">_ZN8bayesnet10Classifier18checkFitParametersEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L182">bayesnet::Classifier::dump_cpt[abi:cxx11]() const</a></td>
<td class="coverFnHi">3413</td> <td class="coverFnHi">4</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L186">_ZN8bayesnet10Classifier18setHyperparametersERKN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS2_14adl_serializerES5_IhSaIhEEvEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L47">bayesnet::Classifier::fit(at::Tensor&amp;, at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">231</td> <td class="coverFnHi">128</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L66">_ZN8bayesnet10Classifier3fitERN2at6TensorERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L66">bayesnet::Classifier::fit(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">1089</td> <td class="coverFnHi">852</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L72">_ZN8bayesnet10Classifier3fitERN2at6TensorERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEERKS2_</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L72">bayesnet::Classifier::fit(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;, at::Tensor const&amp;)</a></td>
<td class="coverFnHi">1686</td> <td class="coverFnHi">660</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L47">_ZN8bayesnet10Classifier3fitERN2at6TensorES3_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L55">bayesnet::Classifier::fit(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">322</td> <td class="coverFnHi">136</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L55">_ZN8bayesnet10Classifier3fitERSt6vectorIS1_IiSaIiEESaIS3_EERS3_RKS1_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISD_EERKSD_RSt3mapISD_S3_St4lessISD_ESaISt4pairISI_S3_EEE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L174">bayesnet::Classifier::getClassNumStates() const</a></td>
<td class="coverFnHi">360</td> <td class="coverFnHi">348</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L12">_ZN8bayesnet10Classifier5buildERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_RSt3mapIS7_S1_IiSaIiEESt4lessIS7_ESaISt4pairISC_SG_EEERKN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L166">bayesnet::Classifier::getNumberOfEdges() const</a></td>
<td class="coverFnHi">3413</td> <td class="coverFnHi">332</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L137">_ZN8bayesnet10Classifier5scoreERN2at6TensorES3_</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L161">bayesnet::Classifier::getNumberOfNodes() const</a></td>
<td class="coverFnHi">308</td> <td class="coverFnHi">332</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L142">_ZN8bayesnet10Classifier5scoreERSt6vectorIS1_IiSaIiEESaIS3_EERS3_</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L170">bayesnet::Classifier::getNumberOfStates() const</a></td>
<td class="coverFnHi">44</td> <td class="coverFnHi">24</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L94">_ZN8bayesnet10Classifier7predictERN2at6TensorE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L94">bayesnet::Classifier::predict(at::Tensor&amp;)</a></td>
<td class="coverFnHi">3262</td> <td class="coverFnHi">1844</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L101">_ZN8bayesnet10Classifier7predictERSt6vectorIS1_IiSaIiEESaIS3_EE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L101">bayesnet::Classifier::predict(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">44</td> <td class="coverFnHi">16</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L153">_ZN8bayesnet10Classifier8addNodesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L115">bayesnet::Classifier::predict_proba(at::Tensor&amp;)</a></td>
<td class="coverFnHi">2951</td> <td class="coverFnHi">1484</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L10">_ZN8bayesnet10ClassifierC2ENS_7NetworkE</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L122">bayesnet::Classifier::predict_proba(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">4750</td> <td class="coverFnHi">548</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L166">_ZNK8bayesnet10Classifier16getNumberOfEdgesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L137">bayesnet::Classifier::score(at::Tensor&amp;, at::Tensor&amp;)</a></td>
<td class="coverFnHi">475</td> <td class="coverFnHi">112</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L161">_ZNK8bayesnet10Classifier16getNumberOfNodesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L142">bayesnet::Classifier::score(std::vector&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::allocator&lt;std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;)</a></td>
<td class="coverFnHi">475</td> <td class="coverFnHi">16</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L174">_ZNK8bayesnet10Classifier17getClassNumStatesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L186">bayesnet::Classifier::setHyperparameters(nlohmann::json_abi_v3_11_3::basic_json&lt;std::map, std::vector, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector&lt;unsigned char, std::allocator&lt;unsigned char&gt; &gt;, void&gt; const&amp;)</a></td>
<td class="coverFnHi">877</td> <td class="coverFnHi">92</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L170">_ZNK8bayesnet10Classifier17getNumberOfStatesEv</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L149">bayesnet::Classifier::show[abi:cxx11]() const</a></td>
<td class="coverFnHi">66</td> <td class="coverFnHi">24</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L149">_ZNK8bayesnet10Classifier4showB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L178">bayesnet::Classifier::topological_order[abi:cxx11]()</a></td>
<td class="coverFnHi">66</td> <td class="coverFnHi">4</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.cc.gcov.html#L182">_ZNK8bayesnet10Classifier8dump_cptB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.cc.gcov.html#L42">bayesnet::Classifier::trainModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">1576</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="Classifier.cc.gcov.overview.html" name="overview">
<frame src="Classifier.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Classifier.cc</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Classifier.cc<span style="font-size: 80%;"> (source / <a href="Classifier.cc.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Classifier.cc<span style="font-size: 80%;"> (source / <a href="Classifier.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">24</td> <td class="headerCovTableEntry">24</td>
<td class="headerCovTableEntry">24</td> <td class="headerCovTableEntry">24</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -71,188 +79,188 @@
<span id="L9"><span class="lineNum"> 9</span> : #include &quot;Classifier.h&quot;</span> <span id="L9"><span class="lineNum"> 9</span> : #include &quot;Classifier.h&quot;</span>
<span id="L10"><span class="lineNum"> 10</span> : </span> <span id="L10"><span class="lineNum"> 10</span> : </span>
<span id="L11"><span class="lineNum"> 11</span> : namespace bayesnet {</span> <span id="L11"><span class="lineNum"> 11</span> : namespace bayesnet {</span>
<span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC tlaBgGNC"> 4750 : Classifier::Classifier(Network model) : model(model), m(0), n(0), metrics(Metrics()), fitted(false) {}</span></span> <span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC tlaBgGNC"> 2240 : Classifier::Classifier(Network model) : model(model), m(0), n(0), metrics(Metrics()), fitted(false) {}</span></span>
<span id="L13"><span class="lineNum"> 13</span> : const std::string CLASSIFIER_NOT_FITTED = &quot;Classifier has not been fitted&quot;;</span> <span id="L13"><span class="lineNum"> 13</span> : const std::string CLASSIFIER_NOT_FITTED = &quot;Classifier has not been fitted&quot;;</span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 3413 : Classifier&amp; Classifier::build(const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states, const torch::Tensor&amp; weights)</span></span> <span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 1760 : Classifier&amp; Classifier::build(const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states, const torch::Tensor&amp; weights)</span></span>
<span id="L15"><span class="lineNum"> 15</span> : {</span> <span id="L15"><span class="lineNum"> 15</span> : {</span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 3413 : this-&gt;features = features;</span></span> <span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 1760 : this-&gt;features = features;</span></span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 3413 : this-&gt;className = className;</span></span> <span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 1760 : this-&gt;className = className;</span></span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 3413 : this-&gt;states = states;</span></span> <span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 1760 : this-&gt;states = states;</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 3413 : m = dataset.size(1);</span></span> <span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 1760 : m = dataset.size(1);</span></span>
<span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 3413 : n = features.size();</span></span> <span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 1760 : n = features.size();</span></span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 3413 : checkFitParameters();</span></span> <span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 1760 : checkFitParameters();</span></span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 3325 : auto n_classes = states.at(className).size();</span></span> <span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 1728 : auto n_classes = states.at(className).size();</span></span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 3325 : metrics = Metrics(dataset, features, className, n_classes);</span></span> <span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 1728 : metrics = Metrics(dataset, features, className, n_classes);</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 3325 : model.initialize();</span></span> <span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 1728 : model.initialize();</span></span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 3325 : buildModel(weights);</span></span> <span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 1728 : buildModel(weights);</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 3325 : trainModel(weights);</span></span> <span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 1728 : trainModel(weights);</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 3277 : fitted = true;</span></span> <span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 1712 : fitted = true;</span></span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 3277 : return *this;</span></span> <span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 1712 : return *this;</span></span>
<span id="L29"><span class="lineNum"> 29</span> : }</span> <span id="L29"><span class="lineNum"> 29</span> : }</span>
<span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 888 : void Classifier::buildDataset(torch::Tensor&amp; ytmp)</span></span> <span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 340 : void Classifier::buildDataset(torch::Tensor&amp; ytmp)</span></span>
<span id="L31"><span class="lineNum"> 31</span> : {</span> <span id="L31"><span class="lineNum"> 31</span> : {</span>
<span id="L32"><span class="lineNum"> 32</span> : try {</span> <span id="L32"><span class="lineNum"> 32</span> : try {</span>
<span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 888 : auto yresized = torch::transpose(ytmp.view({ ytmp.size(0), 1 }), 0, 1);</span></span> <span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 340 : auto yresized = torch::transpose(ytmp.view({ ytmp.size(0), 1 }), 0, 1);</span></span>
<span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 2752 : dataset = torch::cat({ dataset, yresized }, 0);</span></span> <span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 1052 : dataset = torch::cat({ dataset, yresized }, 0);</span></span>
<span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 888 : }</span></span> <span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 340 : }</span></span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 44 : catch (const std::exception&amp; e) {</span></span> <span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 16 : catch (const std::exception&amp; e) {</span></span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 44 : std::stringstream oss;</span></span> <span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 16 : std::stringstream oss;</span></span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 44 : oss &lt;&lt; &quot;* Error in X and y dimensions *\n&quot;;</span></span> <span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 16 : oss &lt;&lt; &quot;* Error in X and y dimensions *\n&quot;;</span></span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 44 : oss &lt;&lt; &quot;X dimensions: &quot; &lt;&lt; dataset.sizes() &lt;&lt; &quot;\n&quot;;</span></span> <span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 16 : oss &lt;&lt; &quot;X dimensions: &quot; &lt;&lt; dataset.sizes() &lt;&lt; &quot;\n&quot;;</span></span>
<span id="L40"><span class="lineNum"> 40</span> <span class="tlaGNC"> 44 : oss &lt;&lt; &quot;y dimensions: &quot; &lt;&lt; ytmp.sizes();</span></span> <span id="L40"><span class="lineNum"> 40</span> <span class="tlaGNC"> 16 : oss &lt;&lt; &quot;y dimensions: &quot; &lt;&lt; ytmp.sizes();</span></span>
<span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 44 : throw std::runtime_error(oss.str());</span></span> <span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 16 : throw std::runtime_error(oss.str());</span></span>
<span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 88 : }</span></span> <span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 32 : }</span></span>
<span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 1776 : }</span></span> <span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 680 : }</span></span>
<span id="L44"><span class="lineNum"> 44</span> <span class="tlaGNC"> 2951 : void Classifier::trainModel(const torch::Tensor&amp; weights)</span></span> <span id="L44"><span class="lineNum"> 44</span> <span class="tlaGNC"> 1576 : void Classifier::trainModel(const torch::Tensor&amp; weights)</span></span>
<span id="L45"><span class="lineNum"> 45</span> : {</span> <span id="L45"><span class="lineNum"> 45</span> : {</span>
<span id="L46"><span class="lineNum"> 46</span> <span class="tlaGNC"> 2951 : model.fit(dataset, weights, features, className, states);</span></span> <span id="L46"><span class="lineNum"> 46</span> <span class="tlaGNC"> 1576 : model.fit(dataset, weights, features, className, states);</span></span>
<span id="L47"><span class="lineNum"> 47</span> <span class="tlaGNC"> 2951 : }</span></span> <span id="L47"><span class="lineNum"> 47</span> <span class="tlaGNC"> 1576 : }</span></span>
<span id="L48"><span class="lineNum"> 48</span> : // X is nxm where n is the number of features and m the number of samples</span> <span id="L48"><span class="lineNum"> 48</span> : // X is nxm where n is the number of features and m the number of samples</span>
<span id="L49"><span class="lineNum"> 49</span> <span class="tlaGNC"> 322 : Classifier&amp; Classifier::fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states)</span></span> <span id="L49"><span class="lineNum"> 49</span> <span class="tlaGNC"> 128 : Classifier&amp; Classifier::fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states)</span></span>
<span id="L50"><span class="lineNum"> 50</span> : {</span> <span id="L50"><span class="lineNum"> 50</span> : {</span>
<span id="L51"><span class="lineNum"> 51</span> <span class="tlaGNC"> 322 : dataset = X;</span></span> <span id="L51"><span class="lineNum"> 51</span> <span class="tlaGNC"> 128 : dataset = X;</span></span>
<span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 322 : buildDataset(y);</span></span> <span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 128 : buildDataset(y);</span></span>
<span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 300 : const torch::Tensor weights = torch::full({ dataset.size(1) }, 1.0 / dataset.size(1), torch::kDouble);</span></span> <span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 120 : const torch::Tensor weights = torch::full({ dataset.size(1) }, 1.0 / dataset.size(1), torch::kDouble);</span></span>
<span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 512 : return build(features, className, states, weights);</span></span> <span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 208 : return build(features, className, states, weights);</span></span>
<span id="L55"><span class="lineNum"> 55</span> <span class="tlaGNC"> 300 : }</span></span> <span id="L55"><span class="lineNum"> 55</span> <span class="tlaGNC"> 120 : }</span></span>
<span id="L56"><span class="lineNum"> 56</span> : // X is nxm where n is the number of features and m the number of samples</span> <span id="L56"><span class="lineNum"> 56</span> : // X is nxm where n is the number of features and m the number of samples</span>
<span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 360 : Classifier&amp; Classifier::fit(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states)</span></span> <span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 136 : Classifier&amp; Classifier::fit(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states)</span></span>
<span id="L58"><span class="lineNum"> 58</span> : {</span> <span id="L58"><span class="lineNum"> 58</span> : {</span>
<span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 360 : dataset = torch::zeros({ static_cast&lt;int&gt;(X.size()), static_cast&lt;int&gt;(X[0].size()) }, torch::kInt32);</span></span> <span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 136 : dataset = torch::zeros({ static_cast&lt;int&gt;(X.size()), static_cast&lt;int&gt;(X[0].size()) }, torch::kInt32);</span></span>
<span id="L60"><span class="lineNum"> 60</span> <span class="tlaGNC"> 5883 : for (int i = 0; i &lt; X.size(); ++i) {</span></span> <span id="L60"><span class="lineNum"> 60</span> <span class="tlaGNC"> 976 : for (int i = 0; i &lt; X.size(); ++i) {</span></span>
<span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 22092 : dataset.index_put_({ i, &quot;...&quot; }, torch::tensor(X[i], torch::kInt32));</span></span> <span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 3360 : dataset.index_put_({ i, &quot;...&quot; }, torch::tensor(X[i], torch::kInt32));</span></span>
<span id="L62"><span class="lineNum"> 62</span> : }</span> <span id="L62"><span class="lineNum"> 62</span> : }</span>
<span id="L63"><span class="lineNum"> 63</span> <span class="tlaGNC"> 360 : auto ytmp = torch::tensor(y, torch::kInt32);</span></span> <span id="L63"><span class="lineNum"> 63</span> <span class="tlaGNC"> 136 : auto ytmp = torch::tensor(y, torch::kInt32);</span></span>
<span id="L64"><span class="lineNum"> 64</span> <span class="tlaGNC"> 360 : buildDataset(ytmp);</span></span> <span id="L64"><span class="lineNum"> 64</span> <span class="tlaGNC"> 136 : buildDataset(ytmp);</span></span>
<span id="L65"><span class="lineNum"> 65</span> <span class="tlaGNC"> 338 : const torch::Tensor weights = torch::full({ dataset.size(1) }, 1.0 / dataset.size(1), torch::kDouble);</span></span> <span id="L65"><span class="lineNum"> 65</span> <span class="tlaGNC"> 128 : const torch::Tensor weights = torch::full({ dataset.size(1) }, 1.0 / dataset.size(1), torch::kDouble);</span></span>
<span id="L66"><span class="lineNum"> 66</span> <span class="tlaGNC"> 628 : return build(features, className, states, weights);</span></span> <span id="L66"><span class="lineNum"> 66</span> <span class="tlaGNC"> 240 : return build(features, className, states, weights);</span></span>
<span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 5931 : }</span></span> <span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 992 : }</span></span>
<span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 1089 : Classifier&amp; Classifier::fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states)</span></span> <span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 852 : Classifier&amp; Classifier::fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states)</span></span>
<span id="L69"><span class="lineNum"> 69</span> : {</span> <span id="L69"><span class="lineNum"> 69</span> : {</span>
<span id="L70"><span class="lineNum"> 70</span> <span class="tlaGNC"> 1089 : this-&gt;dataset = dataset;</span></span> <span id="L70"><span class="lineNum"> 70</span> <span class="tlaGNC"> 852 : this-&gt;dataset = dataset;</span></span>
<span id="L71"><span class="lineNum"> 71</span> <span class="tlaGNC"> 1089 : const torch::Tensor weights = torch::full({ dataset.size(1) }, 1.0 / dataset.size(1), torch::kDouble);</span></span> <span id="L71"><span class="lineNum"> 71</span> <span class="tlaGNC"> 852 : const torch::Tensor weights = torch::full({ dataset.size(1) }, 1.0 / dataset.size(1), torch::kDouble);</span></span>
<span id="L72"><span class="lineNum"> 72</span> <span class="tlaGNC"> 2178 : return build(features, className, states, weights);</span></span> <span id="L72"><span class="lineNum"> 72</span> <span class="tlaGNC"> 1704 : return build(features, className, states, weights);</span></span>
<span id="L73"><span class="lineNum"> 73</span> <span class="tlaGNC"> 1089 : }</span></span> <span id="L73"><span class="lineNum"> 73</span> <span class="tlaGNC"> 852 : }</span></span>
<span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 1686 : Classifier&amp; Classifier::fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states, const torch::Tensor&amp; weights)</span></span> <span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 660 : Classifier&amp; Classifier::fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states, const torch::Tensor&amp; weights)</span></span>
<span id="L75"><span class="lineNum"> 75</span> : {</span> <span id="L75"><span class="lineNum"> 75</span> : {</span>
<span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 1686 : this-&gt;dataset = dataset;</span></span> <span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 660 : this-&gt;dataset = dataset;</span></span>
<span id="L77"><span class="lineNum"> 77</span> <span class="tlaGNC"> 1686 : return build(features, className, states, weights);</span></span> <span id="L77"><span class="lineNum"> 77</span> <span class="tlaGNC"> 660 : return build(features, className, states, weights);</span></span>
<span id="L78"><span class="lineNum"> 78</span> : }</span> <span id="L78"><span class="lineNum"> 78</span> : }</span>
<span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 3413 : void Classifier::checkFitParameters()</span></span> <span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 1760 : void Classifier::checkFitParameters()</span></span>
<span id="L80"><span class="lineNum"> 80</span> : {</span> <span id="L80"><span class="lineNum"> 80</span> : {</span>
<span id="L81"><span class="lineNum"> 81</span> <span class="tlaGNC"> 3413 : if (torch::is_floating_point(dataset)) {</span></span> <span id="L81"><span class="lineNum"> 81</span> <span class="tlaGNC"> 1760 : if (torch::is_floating_point(dataset)) {</span></span>
<span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 22 : throw std::invalid_argument(&quot;dataset (X, y) must be of type Integer&quot;);</span></span> <span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 8 : throw std::invalid_argument(&quot;dataset (X, y) must be of type Integer&quot;);</span></span>
<span id="L83"><span class="lineNum"> 83</span> : }</span> <span id="L83"><span class="lineNum"> 83</span> : }</span>
<span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 3391 : if (dataset.size(0) - 1 != features.size()) {</span></span> <span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 1752 : if (dataset.size(0) - 1 != features.size()) {</span></span>
<span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 22 : throw std::invalid_argument(&quot;Classifier: X &quot; + std::to_string(dataset.size(0) - 1) + &quot; and features &quot; + std::to_string(features.size()) + &quot; must have the same number of features&quot;);</span></span> <span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 8 : throw std::invalid_argument(&quot;Classifier: X &quot; + std::to_string(dataset.size(0) - 1) + &quot; and features &quot; + std::to_string(features.size()) + &quot; must have the same number of features&quot;);</span></span>
<span id="L86"><span class="lineNum"> 86</span> : }</span> <span id="L86"><span class="lineNum"> 86</span> : }</span>
<span id="L87"><span class="lineNum"> 87</span> <span class="tlaGNC"> 3369 : if (states.find(className) == states.end()) {</span></span> <span id="L87"><span class="lineNum"> 87</span> <span class="tlaGNC"> 1744 : if (states.find(className) == states.end()) {</span></span>
<span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 22 : throw std::invalid_argument(&quot;class name not found in states&quot;);</span></span> <span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 8 : throw std::invalid_argument(&quot;class name not found in states&quot;);</span></span>
<span id="L89"><span class="lineNum"> 89</span> : }</span> <span id="L89"><span class="lineNum"> 89</span> : }</span>
<span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 124581 : for (auto feature : features) {</span></span> <span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 32996 : for (auto feature : features) {</span></span>
<span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 121256 : if (states.find(feature) == states.end()) {</span></span> <span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 31268 : if (states.find(feature) == states.end()) {</span></span>
<span id="L92"><span class="lineNum"> 92</span> <span class="tlaGNC"> 22 : throw std::invalid_argument(&quot;feature [&quot; + feature + &quot;] not found in states&quot;);</span></span> <span id="L92"><span class="lineNum"> 92</span> <span class="tlaGNC"> 8 : throw std::invalid_argument(&quot;feature [&quot; + feature + &quot;] not found in states&quot;);</span></span>
<span id="L93"><span class="lineNum"> 93</span> : }</span> <span id="L93"><span class="lineNum"> 93</span> : }</span>
<span id="L94"><span class="lineNum"> 94</span> <span class="tlaGNC"> 121256 : }</span></span> <span id="L94"><span class="lineNum"> 94</span> <span class="tlaGNC"> 31268 : }</span></span>
<span id="L95"><span class="lineNum"> 95</span> <span class="tlaGNC"> 3325 : }</span></span> <span id="L95"><span class="lineNum"> 95</span> <span class="tlaGNC"> 1728 : }</span></span>
<span id="L96"><span class="lineNum"> 96</span> <span class="tlaGNC"> 3262 : torch::Tensor Classifier::predict(torch::Tensor&amp; X)</span></span> <span id="L96"><span class="lineNum"> 96</span> <span class="tlaGNC"> 1844 : torch::Tensor Classifier::predict(torch::Tensor&amp; X)</span></span>
<span id="L97"><span class="lineNum"> 97</span> : {</span> <span id="L97"><span class="lineNum"> 97</span> : {</span>
<span id="L98"><span class="lineNum"> 98</span> <span class="tlaGNC"> 3262 : if (!fitted) {</span></span> <span id="L98"><span class="lineNum"> 98</span> <span class="tlaGNC"> 1844 : if (!fitted) {</span></span>
<span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 44 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span> <span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 16 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span>
<span id="L100"><span class="lineNum"> 100</span> : }</span> <span id="L100"><span class="lineNum"> 100</span> : }</span>
<span id="L101"><span class="lineNum"> 101</span> <span class="tlaGNC"> 3218 : return model.predict(X);</span></span> <span id="L101"><span class="lineNum"> 101</span> <span class="tlaGNC"> 1828 : return model.predict(X);</span></span>
<span id="L102"><span class="lineNum"> 102</span> : }</span> <span id="L102"><span class="lineNum"> 102</span> : }</span>
<span id="L103"><span class="lineNum"> 103</span> <span class="tlaGNC"> 44 : std::vector&lt;int&gt; Classifier::predict(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X)</span></span> <span id="L103"><span class="lineNum"> 103</span> <span class="tlaGNC"> 16 : std::vector&lt;int&gt; Classifier::predict(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X)</span></span>
<span id="L104"><span class="lineNum"> 104</span> : {</span> <span id="L104"><span class="lineNum"> 104</span> : {</span>
<span id="L105"><span class="lineNum"> 105</span> <span class="tlaGNC"> 44 : if (!fitted) {</span></span> <span id="L105"><span class="lineNum"> 105</span> <span class="tlaGNC"> 16 : if (!fitted) {</span></span>
<span id="L106"><span class="lineNum"> 106</span> <span class="tlaGNC"> 22 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span> <span id="L106"><span class="lineNum"> 106</span> <span class="tlaGNC"> 8 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span>
<span id="L107"><span class="lineNum"> 107</span> : }</span> <span id="L107"><span class="lineNum"> 107</span> : }</span>
<span id="L108"><span class="lineNum"> 108</span> <span class="tlaGNC"> 22 : auto m_ = X[0].size();</span></span> <span id="L108"><span class="lineNum"> 108</span> <span class="tlaGNC"> 8 : auto m_ = X[0].size();</span></span>
<span id="L109"><span class="lineNum"> 109</span> <span class="tlaGNC"> 22 : auto n_ = X.size();</span></span> <span id="L109"><span class="lineNum"> 109</span> <span class="tlaGNC"> 8 : auto n_ = X.size();</span></span>
<span id="L110"><span class="lineNum"> 110</span> <span class="tlaGNC"> 22 : std::vector&lt;std::vector&lt;int&gt;&gt; Xd(n_, std::vector&lt;int&gt;(m_, 0));</span></span> <span id="L110"><span class="lineNum"> 110</span> <span class="tlaGNC"> 8 : std::vector&lt;std::vector&lt;int&gt;&gt; Xd(n_, std::vector&lt;int&gt;(m_, 0));</span></span>
<span id="L111"><span class="lineNum"> 111</span> <span class="tlaGNC"> 110 : for (auto i = 0; i &lt; n_; i++) {</span></span> <span id="L111"><span class="lineNum"> 111</span> <span class="tlaGNC"> 40 : for (auto i = 0; i &lt; n_; i++) {</span></span>
<span id="L112"><span class="lineNum"> 112</span> <span class="tlaGNC"> 176 : Xd[i] = std::vector&lt;int&gt;(X[i].begin(), X[i].end());</span></span> <span id="L112"><span class="lineNum"> 112</span> <span class="tlaGNC"> 64 : Xd[i] = std::vector&lt;int&gt;(X[i].begin(), X[i].end());</span></span>
<span id="L113"><span class="lineNum"> 113</span> : }</span> <span id="L113"><span class="lineNum"> 113</span> : }</span>
<span id="L114"><span class="lineNum"> 114</span> <span class="tlaGNC"> 22 : auto yp = model.predict(Xd);</span></span> <span id="L114"><span class="lineNum"> 114</span> <span class="tlaGNC"> 8 : auto yp = model.predict(Xd);</span></span>
<span id="L115"><span class="lineNum"> 115</span> <span class="tlaGNC"> 44 : return yp;</span></span> <span id="L115"><span class="lineNum"> 115</span> <span class="tlaGNC"> 16 : return yp;</span></span>
<span id="L116"><span class="lineNum"> 116</span> <span class="tlaGNC"> 22 : }</span></span> <span id="L116"><span class="lineNum"> 116</span> <span class="tlaGNC"> 8 : }</span></span>
<span id="L117"><span class="lineNum"> 117</span> <span class="tlaGNC"> 3562 : torch::Tensor Classifier::predict_proba(torch::Tensor&amp; X)</span></span> <span id="L117"><span class="lineNum"> 117</span> <span class="tlaGNC"> 1484 : torch::Tensor Classifier::predict_proba(torch::Tensor&amp; X)</span></span>
<span id="L118"><span class="lineNum"> 118</span> : {</span> <span id="L118"><span class="lineNum"> 118</span> : {</span>
<span id="L119"><span class="lineNum"> 119</span> <span class="tlaGNC"> 3562 : if (!fitted) {</span></span> <span id="L119"><span class="lineNum"> 119</span> <span class="tlaGNC"> 1484 : if (!fitted) {</span></span>
<span id="L120"><span class="lineNum"> 120</span> <span class="tlaGNC"> 22 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span> <span id="L120"><span class="lineNum"> 120</span> <span class="tlaGNC"> 8 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span>
<span id="L121"><span class="lineNum"> 121</span> : }</span> <span id="L121"><span class="lineNum"> 121</span> : }</span>
<span id="L122"><span class="lineNum"> 122</span> <span class="tlaGNC"> 3540 : return model.predict_proba(X);</span></span> <span id="L122"><span class="lineNum"> 122</span> <span class="tlaGNC"> 1476 : return model.predict_proba(X);</span></span>
<span id="L123"><span class="lineNum"> 123</span> : }</span> <span id="L123"><span class="lineNum"> 123</span> : }</span>
<span id="L124"><span class="lineNum"> 124</span> <span class="tlaGNC"> 766 : std::vector&lt;std::vector&lt;double&gt;&gt; Classifier::predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X)</span></span> <span id="L124"><span class="lineNum"> 124</span> <span class="tlaGNC"> 548 : std::vector&lt;std::vector&lt;double&gt;&gt; Classifier::predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X)</span></span>
<span id="L125"><span class="lineNum"> 125</span> : {</span> <span id="L125"><span class="lineNum"> 125</span> : {</span>
<span id="L126"><span class="lineNum"> 126</span> <span class="tlaGNC"> 766 : if (!fitted) {</span></span> <span id="L126"><span class="lineNum"> 126</span> <span class="tlaGNC"> 548 : if (!fitted) {</span></span>
<span id="L127"><span class="lineNum"> 127</span> <span class="tlaGNC"> 22 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span> <span id="L127"><span class="lineNum"> 127</span> <span class="tlaGNC"> 8 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span>
<span id="L128"><span class="lineNum"> 128</span> : }</span> <span id="L128"><span class="lineNum"> 128</span> : }</span>
<span id="L129"><span class="lineNum"> 129</span> <span class="tlaGNC"> 744 : auto m_ = X[0].size();</span></span> <span id="L129"><span class="lineNum"> 129</span> <span class="tlaGNC"> 540 : auto m_ = X[0].size();</span></span>
<span id="L130"><span class="lineNum"> 130</span> <span class="tlaGNC"> 744 : auto n_ = X.size();</span></span> <span id="L130"><span class="lineNum"> 130</span> <span class="tlaGNC"> 540 : auto n_ = X.size();</span></span>
<span id="L131"><span class="lineNum"> 131</span> <span class="tlaGNC"> 744 : std::vector&lt;std::vector&lt;int&gt;&gt; Xd(n_, std::vector&lt;int&gt;(m_, 0));</span></span> <span id="L131"><span class="lineNum"> 131</span> <span class="tlaGNC"> 540 : std::vector&lt;std::vector&lt;int&gt;&gt; Xd(n_, std::vector&lt;int&gt;(m_, 0));</span></span>
<span id="L132"><span class="lineNum"> 132</span> : // Convert to nxm vector</span> <span id="L132"><span class="lineNum"> 132</span> : // Convert to nxm vector</span>
<span id="L133"><span class="lineNum"> 133</span> <span class="tlaGNC"> 9722 : for (auto i = 0; i &lt; n_; i++) {</span></span> <span id="L133"><span class="lineNum"> 133</span> <span class="tlaGNC"> 5040 : for (auto i = 0; i &lt; n_; i++) {</span></span>
<span id="L134"><span class="lineNum"> 134</span> <span class="tlaGNC"> 17956 : Xd[i] = std::vector&lt;int&gt;(X[i].begin(), X[i].end());</span></span> <span id="L134"><span class="lineNum"> 134</span> <span class="tlaGNC"> 9000 : Xd[i] = std::vector&lt;int&gt;(X[i].begin(), X[i].end());</span></span>
<span id="L135"><span class="lineNum"> 135</span> : }</span> <span id="L135"><span class="lineNum"> 135</span> : }</span>
<span id="L136"><span class="lineNum"> 136</span> <span class="tlaGNC"> 744 : auto yp = model.predict_proba(Xd);</span></span> <span id="L136"><span class="lineNum"> 136</span> <span class="tlaGNC"> 540 : auto yp = model.predict_proba(Xd);</span></span>
<span id="L137"><span class="lineNum"> 137</span> <span class="tlaGNC"> 1488 : return yp;</span></span> <span id="L137"><span class="lineNum"> 137</span> <span class="tlaGNC"> 1080 : return yp;</span></span>
<span id="L138"><span class="lineNum"> 138</span> <span class="tlaGNC"> 744 : }</span></span> <span id="L138"><span class="lineNum"> 138</span> <span class="tlaGNC"> 540 : }</span></span>
<span id="L139"><span class="lineNum"> 139</span> <span class="tlaGNC"> 308 : float Classifier::score(torch::Tensor&amp; X, torch::Tensor&amp; y)</span></span> <span id="L139"><span class="lineNum"> 139</span> <span class="tlaGNC"> 112 : float Classifier::score(torch::Tensor&amp; X, torch::Tensor&amp; y)</span></span>
<span id="L140"><span class="lineNum"> 140</span> : {</span> <span id="L140"><span class="lineNum"> 140</span> : {</span>
<span id="L141"><span class="lineNum"> 141</span> <span class="tlaGNC"> 308 : torch::Tensor y_pred = predict(X);</span></span> <span id="L141"><span class="lineNum"> 141</span> <span class="tlaGNC"> 112 : torch::Tensor y_pred = predict(X);</span></span>
<span id="L142"><span class="lineNum"> 142</span> <span class="tlaGNC"> 572 : return (y_pred == y).sum().item&lt;float&gt;() / y.size(0);</span></span> <span id="L142"><span class="lineNum"> 142</span> <span class="tlaGNC"> 208 : return (y_pred == y).sum().item&lt;float&gt;() / y.size(0);</span></span>
<span id="L143"><span class="lineNum"> 143</span> <span class="tlaGNC"> 286 : }</span></span> <span id="L143"><span class="lineNum"> 143</span> <span class="tlaGNC"> 104 : }</span></span>
<span id="L144"><span class="lineNum"> 144</span> <span class="tlaGNC"> 44 : float Classifier::score(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y)</span></span> <span id="L144"><span class="lineNum"> 144</span> <span class="tlaGNC"> 16 : float Classifier::score(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y)</span></span>
<span id="L145"><span class="lineNum"> 145</span> : {</span> <span id="L145"><span class="lineNum"> 145</span> : {</span>
<span id="L146"><span class="lineNum"> 146</span> <span class="tlaGNC"> 44 : if (!fitted) {</span></span> <span id="L146"><span class="lineNum"> 146</span> <span class="tlaGNC"> 16 : if (!fitted) {</span></span>
<span id="L147"><span class="lineNum"> 147</span> <span class="tlaGNC"> 22 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span> <span id="L147"><span class="lineNum"> 147</span> <span class="tlaGNC"> 8 : throw std::logic_error(CLASSIFIER_NOT_FITTED);</span></span>
<span id="L148"><span class="lineNum"> 148</span> : }</span> <span id="L148"><span class="lineNum"> 148</span> : }</span>
<span id="L149"><span class="lineNum"> 149</span> <span class="tlaGNC"> 22 : return model.score(X, y);</span></span> <span id="L149"><span class="lineNum"> 149</span> <span class="tlaGNC"> 8 : return model.score(X, y);</span></span>
<span id="L150"><span class="lineNum"> 150</span> : }</span> <span id="L150"><span class="lineNum"> 150</span> : }</span>
<span id="L151"><span class="lineNum"> 151</span> <span class="tlaGNC"> 66 : std::vector&lt;std::string&gt; Classifier::show() const</span></span> <span id="L151"><span class="lineNum"> 151</span> <span class="tlaGNC"> 24 : std::vector&lt;std::string&gt; Classifier::show() const</span></span>
<span id="L152"><span class="lineNum"> 152</span> : {</span> <span id="L152"><span class="lineNum"> 152</span> : {</span>
<span id="L153"><span class="lineNum"> 153</span> <span class="tlaGNC"> 66 : return model.show();</span></span> <span id="L153"><span class="lineNum"> 153</span> <span class="tlaGNC"> 24 : return model.show();</span></span>
<span id="L154"><span class="lineNum"> 154</span> : }</span> <span id="L154"><span class="lineNum"> 154</span> : }</span>
<span id="L155"><span class="lineNum"> 155</span> <span class="tlaGNC"> 2951 : void Classifier::addNodes()</span></span> <span id="L155"><span class="lineNum"> 155</span> <span class="tlaGNC"> 1576 : void Classifier::addNodes()</span></span>
<span id="L156"><span class="lineNum"> 156</span> : {</span> <span id="L156"><span class="lineNum"> 156</span> : {</span>
<span id="L157"><span class="lineNum"> 157</span> : // Add all nodes to the network</span> <span id="L157"><span class="lineNum"> 157</span> : // Add all nodes to the network</span>
<span id="L158"><span class="lineNum"> 158</span> <span class="tlaGNC"> 116009 : for (const auto&amp; feature : features) {</span></span> <span id="L158"><span class="lineNum"> 158</span> <span class="tlaGNC"> 30872 : for (const auto&amp; feature : features) {</span></span>
<span id="L159"><span class="lineNum"> 159</span> <span class="tlaGNC"> 113058 : model.addNode(feature);</span></span> <span id="L159"><span class="lineNum"> 159</span> <span class="tlaGNC"> 29296 : model.addNode(feature);</span></span>
<span id="L160"><span class="lineNum"> 160</span> : }</span> <span id="L160"><span class="lineNum"> 160</span> : }</span>
<span id="L161"><span class="lineNum"> 161</span> <span class="tlaGNC"> 2951 : model.addNode(className);</span></span> <span id="L161"><span class="lineNum"> 161</span> <span class="tlaGNC"> 1576 : model.addNode(className);</span></span>
<span id="L162"><span class="lineNum"> 162</span> <span class="tlaGNC"> 2951 : }</span></span> <span id="L162"><span class="lineNum"> 162</span> <span class="tlaGNC"> 1576 : }</span></span>
<span id="L163"><span class="lineNum"> 163</span> <span class="tlaGNC"> 475 : int Classifier::getNumberOfNodes() const</span></span> <span id="L163"><span class="lineNum"> 163</span> <span class="tlaGNC"> 332 : int Classifier::getNumberOfNodes() const</span></span>
<span id="L164"><span class="lineNum"> 164</span> : {</span> <span id="L164"><span class="lineNum"> 164</span> : {</span>
<span id="L165"><span class="lineNum"> 165</span> : // Features does not include class</span> <span id="L165"><span class="lineNum"> 165</span> : // Features does not include class</span>
<span id="L166"><span class="lineNum"> 166</span> <span class="tlaGNC"> 475 : return fitted ? model.getFeatures().size() : 0;</span></span> <span id="L166"><span class="lineNum"> 166</span> <span class="tlaGNC"> 332 : return fitted ? model.getFeatures().size() : 0;</span></span>
<span id="L167"><span class="lineNum"> 167</span> : }</span> <span id="L167"><span class="lineNum"> 167</span> : }</span>
<span id="L168"><span class="lineNum"> 168</span> <span class="tlaGNC"> 475 : int Classifier::getNumberOfEdges() const</span></span> <span id="L168"><span class="lineNum"> 168</span> <span class="tlaGNC"> 332 : int Classifier::getNumberOfEdges() const</span></span>
<span id="L169"><span class="lineNum"> 169</span> : {</span> <span id="L169"><span class="lineNum"> 169</span> : {</span>
<span id="L170"><span class="lineNum"> 170</span> <span class="tlaGNC"> 475 : return fitted ? model.getNumEdges() : 0;</span></span> <span id="L170"><span class="lineNum"> 170</span> <span class="tlaGNC"> 332 : return fitted ? model.getNumEdges() : 0;</span></span>
<span id="L171"><span class="lineNum"> 171</span> : }</span> <span id="L171"><span class="lineNum"> 171</span> : }</span>
<span id="L172"><span class="lineNum"> 172</span> <span class="tlaGNC"> 66 : int Classifier::getNumberOfStates() const</span></span> <span id="L172"><span class="lineNum"> 172</span> <span class="tlaGNC"> 24 : int Classifier::getNumberOfStates() const</span></span>
<span id="L173"><span class="lineNum"> 173</span> : {</span> <span id="L173"><span class="lineNum"> 173</span> : {</span>
<span id="L174"><span class="lineNum"> 174</span> <span class="tlaGNC"> 66 : return fitted ? model.getStates() : 0;</span></span> <span id="L174"><span class="lineNum"> 174</span> <span class="tlaGNC"> 24 : return fitted ? model.getStates() : 0;</span></span>
<span id="L175"><span class="lineNum"> 175</span> : }</span> <span id="L175"><span class="lineNum"> 175</span> : }</span>
<span id="L176"><span class="lineNum"> 176</span> <span class="tlaGNC"> 877 : int Classifier::getClassNumStates() const</span></span> <span id="L176"><span class="lineNum"> 176</span> <span class="tlaGNC"> 348 : int Classifier::getClassNumStates() const</span></span>
<span id="L177"><span class="lineNum"> 177</span> : {</span> <span id="L177"><span class="lineNum"> 177</span> : {</span>
<span id="L178"><span class="lineNum"> 178</span> <span class="tlaGNC"> 877 : return fitted ? model.getClassNumStates() : 0;</span></span> <span id="L178"><span class="lineNum"> 178</span> <span class="tlaGNC"> 348 : return fitted ? model.getClassNumStates() : 0;</span></span>
<span id="L179"><span class="lineNum"> 179</span> : }</span> <span id="L179"><span class="lineNum"> 179</span> : }</span>
<span id="L180"><span class="lineNum"> 180</span> <span class="tlaGNC"> 11 : std::vector&lt;std::string&gt; Classifier::topological_order()</span></span> <span id="L180"><span class="lineNum"> 180</span> <span class="tlaGNC"> 4 : std::vector&lt;std::string&gt; Classifier::topological_order()</span></span>
<span id="L181"><span class="lineNum"> 181</span> : {</span> <span id="L181"><span class="lineNum"> 181</span> : {</span>
<span id="L182"><span class="lineNum"> 182</span> <span class="tlaGNC"> 11 : return model.topological_sort();</span></span> <span id="L182"><span class="lineNum"> 182</span> <span class="tlaGNC"> 4 : return model.topological_sort();</span></span>
<span id="L183"><span class="lineNum"> 183</span> : }</span> <span id="L183"><span class="lineNum"> 183</span> : }</span>
<span id="L184"><span class="lineNum"> 184</span> <span class="tlaGNC"> 11 : std::string Classifier::dump_cpt() const</span></span> <span id="L184"><span class="lineNum"> 184</span> <span class="tlaGNC"> 4 : std::string Classifier::dump_cpt() const</span></span>
<span id="L185"><span class="lineNum"> 185</span> : {</span> <span id="L185"><span class="lineNum"> 185</span> : {</span>
<span id="L186"><span class="lineNum"> 186</span> <span class="tlaGNC"> 11 : return model.dump_cpt();</span></span> <span id="L186"><span class="lineNum"> 186</span> <span class="tlaGNC"> 4 : return model.dump_cpt();</span></span>
<span id="L187"><span class="lineNum"> 187</span> : }</span> <span id="L187"><span class="lineNum"> 187</span> : }</span>
<span id="L188"><span class="lineNum"> 188</span> <span class="tlaGNC"> 231 : void Classifier::setHyperparameters(const nlohmann::json&amp; hyperparameters)</span></span> <span id="L188"><span class="lineNum"> 188</span> <span class="tlaGNC"> 92 : void Classifier::setHyperparameters(const nlohmann::json&amp; hyperparameters)</span></span>
<span id="L189"><span class="lineNum"> 189</span> : {</span> <span id="L189"><span class="lineNum"> 189</span> : {</span>
<span id="L190"><span class="lineNum"> 190</span> <span class="tlaGNC"> 231 : if (!hyperparameters.empty()) {</span></span> <span id="L190"><span class="lineNum"> 190</span> <span class="tlaGNC"> 92 : if (!hyperparameters.empty()) {</span></span>
<span id="L191"><span class="lineNum"> 191</span> <span class="tlaGNC"> 22 : throw std::invalid_argument(&quot;Invalid hyperparameters&quot; + hyperparameters.dump());</span></span> <span id="L191"><span class="lineNum"> 191</span> <span class="tlaGNC"> 8 : throw std::invalid_argument(&quot;Invalid hyperparameters&quot; + hyperparameters.dump());</span></span>
<span id="L192"><span class="lineNum"> 192</span> : }</span> <span id="L192"><span class="lineNum"> 192</span> : }</span>
<span id="L193"><span class="lineNum"> 193</span> <span class="tlaGNC"> 209 : }</span></span> <span id="L193"><span class="lineNum"> 193</span> <span class="tlaGNC"> 84 : }</span></span>
<span id="L194"><span class="lineNum"> 194</span> : }</span> <span id="L194"><span class="lineNum"> 194</span> : }</span>
</pre> </pre>
</td> </td>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.cc</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="Classifier.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="Classifier.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="Classifier.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="Classifier.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="Classifier.cc.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="Classifier.cc.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="Classifier.cc.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="Classifier.cc.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="Classifier.cc.gcov.html#L21" target="source" alt="overview">
<area shape="rect" coords="0,36,79,39" href="Classifier.cc.gcov.html#L25" target="source" alt="overview">
<area shape="rect" coords="0,40,79,43" href="Classifier.cc.gcov.html#L29" target="source" alt="overview">
<area shape="rect" coords="0,44,79,47" href="Classifier.cc.gcov.html#L33" target="source" alt="overview">
<area shape="rect" coords="0,48,79,51" href="Classifier.cc.gcov.html#L37" target="source" alt="overview">
<area shape="rect" coords="0,52,79,55" href="Classifier.cc.gcov.html#L41" target="source" alt="overview">
<area shape="rect" coords="0,56,79,59" href="Classifier.cc.gcov.html#L45" target="source" alt="overview">
<area shape="rect" coords="0,60,79,63" href="Classifier.cc.gcov.html#L49" target="source" alt="overview">
<area shape="rect" coords="0,64,79,67" href="Classifier.cc.gcov.html#L53" target="source" alt="overview">
<area shape="rect" coords="0,68,79,71" href="Classifier.cc.gcov.html#L57" target="source" alt="overview">
<area shape="rect" coords="0,72,79,75" href="Classifier.cc.gcov.html#L61" target="source" alt="overview">
<area shape="rect" coords="0,76,79,79" href="Classifier.cc.gcov.html#L65" target="source" alt="overview">
<area shape="rect" coords="0,80,79,83" href="Classifier.cc.gcov.html#L69" target="source" alt="overview">
<area shape="rect" coords="0,84,79,87" href="Classifier.cc.gcov.html#L73" target="source" alt="overview">
<area shape="rect" coords="0,88,79,91" href="Classifier.cc.gcov.html#L77" target="source" alt="overview">
<area shape="rect" coords="0,92,79,95" href="Classifier.cc.gcov.html#L81" target="source" alt="overview">
<area shape="rect" coords="0,96,79,99" href="Classifier.cc.gcov.html#L85" target="source" alt="overview">
<area shape="rect" coords="0,100,79,103" href="Classifier.cc.gcov.html#L89" target="source" alt="overview">
<area shape="rect" coords="0,104,79,107" href="Classifier.cc.gcov.html#L93" target="source" alt="overview">
<area shape="rect" coords="0,108,79,111" href="Classifier.cc.gcov.html#L97" target="source" alt="overview">
<area shape="rect" coords="0,112,79,115" href="Classifier.cc.gcov.html#L101" target="source" alt="overview">
<area shape="rect" coords="0,116,79,119" href="Classifier.cc.gcov.html#L105" target="source" alt="overview">
<area shape="rect" coords="0,120,79,123" href="Classifier.cc.gcov.html#L109" target="source" alt="overview">
<area shape="rect" coords="0,124,79,127" href="Classifier.cc.gcov.html#L113" target="source" alt="overview">
<area shape="rect" coords="0,128,79,131" href="Classifier.cc.gcov.html#L117" target="source" alt="overview">
<area shape="rect" coords="0,132,79,135" href="Classifier.cc.gcov.html#L121" target="source" alt="overview">
<area shape="rect" coords="0,136,79,139" href="Classifier.cc.gcov.html#L125" target="source" alt="overview">
<area shape="rect" coords="0,140,79,143" href="Classifier.cc.gcov.html#L129" target="source" alt="overview">
<area shape="rect" coords="0,144,79,147" href="Classifier.cc.gcov.html#L133" target="source" alt="overview">
<area shape="rect" coords="0,148,79,151" href="Classifier.cc.gcov.html#L137" target="source" alt="overview">
<area shape="rect" coords="0,152,79,155" href="Classifier.cc.gcov.html#L141" target="source" alt="overview">
<area shape="rect" coords="0,156,79,159" href="Classifier.cc.gcov.html#L145" target="source" alt="overview">
<area shape="rect" coords="0,160,79,163" href="Classifier.cc.gcov.html#L149" target="source" alt="overview">
<area shape="rect" coords="0,164,79,167" href="Classifier.cc.gcov.html#L153" target="source" alt="overview">
<area shape="rect" coords="0,168,79,171" href="Classifier.cc.gcov.html#L157" target="source" alt="overview">
<area shape="rect" coords="0,172,79,175" href="Classifier.cc.gcov.html#L161" target="source" alt="overview">
<area shape="rect" coords="0,176,79,179" href="Classifier.cc.gcov.html#L165" target="source" alt="overview">
<area shape="rect" coords="0,180,79,183" href="Classifier.cc.gcov.html#L169" target="source" alt="overview">
<area shape="rect" coords="0,184,79,187" href="Classifier.cc.gcov.html#L173" target="source" alt="overview">
<area shape="rect" coords="0,188,79,191" href="Classifier.cc.gcov.html#L177" target="source" alt="overview">
<area shape="rect" coords="0,192,79,195" href="Classifier.cc.gcov.html#L181" target="source" alt="overview">
</map>
<center>
<a href="Classifier.cc.gcov.html#top" target="source">Top</a><br><br>
<img src="Classifier.cc.gcov.png" width=80 height=193 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Classifier.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Classifier.h<span style="font-size: 80%;"> (<a href="Classifier.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Classifier.h<span style="font-size: 80%;"> (<a href="Classifier.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">80.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">5</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,44 +71,30 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L31">_ZN8bayesnet10Classifier10getVersionB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L31">bayesnet::Classifier::getVersion[abi:cxx11]()</a></td>
<td class="coverFnHi">8</td>
</tr>
<tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L36">_ZNK8bayesnet10Classifier8getNotesB5cxx11Ev</a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L30">_ZNK8bayesnet10Classifier9getStatusEv</a></td>
<td class="coverFnHi">32</td> <td class="coverFnHi">32</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L16">_ZN8bayesnet10ClassifierD0Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L36">bayesnet::Classifier::getNotes[abi:cxx11]() const</a></td>
<td class="coverFnHi">241</td> <td class="coverFnHi">80</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Classifier.h.gcov.html#L16">_ZN8bayesnet10ClassifierD0Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L30">bayesnet::Classifier::getStatus() const</a></td>
<td class="coverFnAliasLo">0</td> <td class="coverFnHi">128</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Classifier.h.gcov.html#L16">_ZN8bayesnet10ClassifierD2Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L16">bayesnet::Classifier::~Classifier()</a></td>
<td class="coverFnAliasHi">241</td> <td class="coverFnHi">1680</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Classifier.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Classifier.h<span style="font-size: 80%;"> (<a href="Classifier.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Classifier.h<span style="font-size: 80%;"> (<a href="Classifier.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">80.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">5</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,46 +71,32 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L31">_ZN8bayesnet10Classifier10getVersionB5cxx11Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L36">bayesnet::Classifier::getNotes[abi:cxx11]() const</a></td>
<td class="coverFnHi">8</td> <td class="coverFnHi">80</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L16">_ZN8bayesnet10ClassifierD0Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L30">bayesnet::Classifier::getStatus() const</a></td>
<td class="coverFnHi">241</td> <td class="coverFnHi">128</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Classifier.h.gcov.html#L16">_ZN8bayesnet10ClassifierD0Ev</a></td> <td class="coverFn"><a href="Classifier.h.gcov.html#L31">bayesnet::Classifier::getVersion[abi:cxx11]()</a></td>
<td class="coverFnAliasLo">0</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="Classifier.h.gcov.html#L16">_ZN8bayesnet10ClassifierD2Ev</a></td>
<td class="coverFnAliasHi">241</td>
</tr>
<tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L36">_ZNK8bayesnet10Classifier8getNotesB5cxx11Ev</a></td>
<td class="coverFnHi">12</td>
</tr>
<tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L30">_ZNK8bayesnet10Classifier9getStatusEv</a></td>
<td class="coverFnHi">32</td> <td class="coverFnHi">32</td>
</tr>
<tr>
<td class="coverFn"><a href="Classifier.h.gcov.html#L16">bayesnet::Classifier::~Classifier()</a></td>
<td class="coverFnHi">1680</td>
</tr> </tr>
</table> </table>
<br> <br>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="Classifier.h.gcov.overview.html" name="overview">
<frame src="Classifier.h.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Classifier.h</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Classifier.h<span style="font-size: 80%;"> (source / <a href="Classifier.h.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Classifier.h<span style="font-size: 80%;"> (source / <a href="Classifier.h.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">80.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">5</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -77,7 +85,7 @@
<span id="L15"><span class="lineNum"> 15</span> : class Classifier : public BaseClassifier {</span> <span id="L15"><span class="lineNum"> 15</span> : class Classifier : public BaseClassifier {</span>
<span id="L16"><span class="lineNum"> 16</span> : public:</span> <span id="L16"><span class="lineNum"> 16</span> : public:</span>
<span id="L17"><span class="lineNum"> 17</span> : Classifier(Network model);</span> <span id="L17"><span class="lineNum"> 17</span> : Classifier(Network model);</span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC tlaBgGNC"> 241 : virtual ~Classifier() = default;</span></span> <span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC tlaBgGNC"> 1680 : virtual ~Classifier() = default;</span></span>
<span id="L19"><span class="lineNum"> 19</span> : Classifier&amp; fit(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span> <span id="L19"><span class="lineNum"> 19</span> : Classifier&amp; fit(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span>
<span id="L20"><span class="lineNum"> 20</span> : Classifier&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span> <span id="L20"><span class="lineNum"> 20</span> : Classifier&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span>
<span id="L21"><span class="lineNum"> 21</span> : Classifier&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span> <span id="L21"><span class="lineNum"> 21</span> : Classifier&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, std::map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span>
@@ -91,13 +99,13 @@
<span id="L29"><span class="lineNum"> 29</span> : std::vector&lt;int&gt; predict(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X) override;</span> <span id="L29"><span class="lineNum"> 29</span> : std::vector&lt;int&gt; predict(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X) override;</span>
<span id="L30"><span class="lineNum"> 30</span> : torch::Tensor predict_proba(torch::Tensor&amp; X) override;</span> <span id="L30"><span class="lineNum"> 30</span> : torch::Tensor predict_proba(torch::Tensor&amp; X) override;</span>
<span id="L31"><span class="lineNum"> 31</span> : std::vector&lt;std::vector&lt;double&gt;&gt; predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X) override;</span> <span id="L31"><span class="lineNum"> 31</span> : std::vector&lt;std::vector&lt;double&gt;&gt; predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X) override;</span>
<span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 32 : status_t getStatus() const override { return status; }</span></span> <span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 128 : status_t getStatus() const override { return status; }</span></span>
<span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 24 : std::string getVersion() override { return { project_version.begin(), project_version.end() }; };</span></span> <span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 96 : std::string getVersion() override { return { project_version.begin(), project_version.end() }; };</span></span>
<span id="L34"><span class="lineNum"> 34</span> : float score(torch::Tensor&amp; X, torch::Tensor&amp; y) override;</span> <span id="L34"><span class="lineNum"> 34</span> : float score(torch::Tensor&amp; X, torch::Tensor&amp; y) override;</span>
<span id="L35"><span class="lineNum"> 35</span> : float score(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y) override;</span> <span id="L35"><span class="lineNum"> 35</span> : float score(std::vector&lt;std::vector&lt;int&gt;&gt;&amp; X, std::vector&lt;int&gt;&amp; y) override;</span>
<span id="L36"><span class="lineNum"> 36</span> : std::vector&lt;std::string&gt; show() const override;</span> <span id="L36"><span class="lineNum"> 36</span> : std::vector&lt;std::string&gt; show() const override;</span>
<span id="L37"><span class="lineNum"> 37</span> : std::vector&lt;std::string&gt; topological_order() override;</span> <span id="L37"><span class="lineNum"> 37</span> : std::vector&lt;std::string&gt; topological_order() override;</span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 12 : std::vector&lt;std::string&gt; getNotes() const override { return notes; }</span></span> <span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 80 : std::vector&lt;std::string&gt; getNotes() const override { return notes; }</span></span>
<span id="L39"><span class="lineNum"> 39</span> : std::string dump_cpt() const override;</span> <span id="L39"><span class="lineNum"> 39</span> : std::string dump_cpt() const override;</span>
<span id="L40"><span class="lineNum"> 40</span> : void setHyperparameters(const nlohmann::json&amp; hyperparameters) override; //For classifiers that don't have hyperparameters</span> <span id="L40"><span class="lineNum"> 40</span> : void setHyperparameters(const nlohmann::json&amp; hyperparameters) override; //For classifiers that don't have hyperparameters</span>
<span id="L41"><span class="lineNum"> 41</span> : protected:</span> <span id="L41"><span class="lineNum"> 41</span> : protected:</span>

View File

@@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Classifier.h</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="Classifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="Classifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="Classifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="Classifier.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="Classifier.h.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="Classifier.h.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="Classifier.h.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="Classifier.h.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="Classifier.h.gcov.html#L21" target="source" alt="overview">
<area shape="rect" coords="0,36,79,39" href="Classifier.h.gcov.html#L25" target="source" alt="overview">
<area shape="rect" coords="0,40,79,43" href="Classifier.h.gcov.html#L29" target="source" alt="overview">
<area shape="rect" coords="0,44,79,47" href="Classifier.h.gcov.html#L33" target="source" alt="overview">
<area shape="rect" coords="0,48,79,51" href="Classifier.h.gcov.html#L37" target="source" alt="overview">
<area shape="rect" coords="0,52,79,55" href="Classifier.h.gcov.html#L41" target="source" alt="overview">
<area shape="rect" coords="0,56,79,59" href="Classifier.h.gcov.html#L45" target="source" alt="overview">
<area shape="rect" coords="0,60,79,63" href="Classifier.h.gcov.html#L49" target="source" alt="overview">
<area shape="rect" coords="0,64,79,67" href="Classifier.h.gcov.html#L53" target="source" alt="overview">
</map>
<center>
<a href="Classifier.h.gcov.html#top" target="source">Top</a><br><br>
<img src="Classifier.h.gcov.png" width=80 height=64 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDB.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDB.cc<span style="font-size: 80%;"> (<a href="KDB.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDB.cc<span style="font-size: 80%;"> (<a href="KDB.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">96.3&nbsp;%</td> <td class="headerCovTableEntryHi">96.3&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">5</td> <td class="headerCovTableEntry">5</td>
<td class="headerCovTableEntry">5</td> <td class="headerCovTableEntry">5</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,37 +71,37 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L101">_ZNK8bayesnet3KDB5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L101">bayesnet::KDB::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">22</td> <td class="coverFnHi">8</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L13">_ZN8bayesnet3KDB18setHyperparametersERKN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS2_14adl_serializerES5_IhSaIhEEvEE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L13">bayesnet::KDB::setHyperparameters(nlohmann::json_abi_v3_11_3::basic_json&lt;std::map, std::vector, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector&lt;unsigned char, std::allocator&lt;unsigned char&gt; &gt;, void&gt; const&amp;)</a></td>
<td class="coverFnHi">33</td> <td class="coverFnHi">12</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L26">_ZN8bayesnet3KDB10buildModelERKN2at6TensorE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L26">bayesnet::KDB::buildModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">143</td> <td class="coverFnHi">52</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L8">_ZN8bayesnet3KDBC2Eif</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L8">bayesnet::KDB::KDB(int, float)</a></td>
<td class="coverFnHi">407</td> <td class="coverFnHi">148</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L77">_ZN8bayesnet3KDB11add_m_edgesEiRSt6vectorIiSaIiEERN2at6TensorE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L77">bayesnet::KDB::add_m_edges(int, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, at::Tensor&amp;)</a></td>
<td class="coverFnHi">946</td> <td class="coverFnHi">344</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDB.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDB.cc<span style="font-size: 80%;"> (<a href="KDB.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDB.cc<span style="font-size: 80%;"> (<a href="KDB.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">96.3&nbsp;%</td> <td class="headerCovTableEntryHi">96.3&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">5</td> <td class="headerCovTableEntry">5</td>
<td class="headerCovTableEntry">5</td> <td class="headerCovTableEntry">5</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,37 +71,37 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L26">_ZN8bayesnet3KDB10buildModelERKN2at6TensorE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L8">bayesnet::KDB::KDB(int, float)</a></td>
<td class="coverFnHi">143</td> <td class="coverFnHi">148</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L77">_ZN8bayesnet3KDB11add_m_edgesEiRSt6vectorIiSaIiEERN2at6TensorE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L77">bayesnet::KDB::add_m_edges(int, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, at::Tensor&amp;)</a></td>
<td class="coverFnHi">946</td> <td class="coverFnHi">344</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L13">_ZN8bayesnet3KDB18setHyperparametersERKN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS2_14adl_serializerES5_IhSaIhEEvEE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L26">bayesnet::KDB::buildModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">33</td> <td class="coverFnHi">52</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L8">_ZN8bayesnet3KDBC2Eif</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L101">bayesnet::KDB::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">407</td> <td class="coverFnHi">8</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.cc.gcov.html#L101">_ZNK8bayesnet3KDB5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="KDB.cc.gcov.html#L13">bayesnet::KDB::setHyperparameters(nlohmann::json_abi_v3_11_3::basic_json&lt;std::map, std::vector, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector&lt;unsigned char, std::allocator&lt;unsigned char&gt; &gt;, void&gt; const&amp;)</a></td>
<td class="coverFnHi">22</td> <td class="coverFnHi">12</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="KDB.cc.gcov.overview.html" name="overview">
<frame src="KDB.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDB.cc</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDB.cc<span style="font-size: 80%;"> (source / <a href="KDB.cc.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDB.cc<span style="font-size: 80%;"> (source / <a href="KDB.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">96.3&nbsp;%</td> <td class="headerCovTableEntryHi">96.3&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">5</td> <td class="headerCovTableEntry">5</td>
<td class="headerCovTableEntry">5</td> <td class="headerCovTableEntry">5</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -69,25 +77,25 @@
<span id="L7"><span class="lineNum"> 7</span> : #include &quot;KDB.h&quot;</span> <span id="L7"><span class="lineNum"> 7</span> : #include &quot;KDB.h&quot;</span>
<span id="L8"><span class="lineNum"> 8</span> : </span> <span id="L8"><span class="lineNum"> 8</span> : </span>
<span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span> <span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span>
<span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 407 : KDB::KDB(int k, float theta) : Classifier(Network()), k(k), theta(theta)</span></span> <span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 148 : KDB::KDB(int k, float theta) : Classifier(Network()), k(k), theta(theta)</span></span>
<span id="L11"><span class="lineNum"> 11</span> : {</span> <span id="L11"><span class="lineNum"> 11</span> : {</span>
<span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC"> 1221 : validHyperparameters = { &quot;k&quot;, &quot;theta&quot; };</span></span> <span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC"> 444 : validHyperparameters = { &quot;k&quot;, &quot;theta&quot; };</span></span>
<span id="L13"><span class="lineNum"> 13</span> : </span> <span id="L13"><span class="lineNum"> 13</span> : </span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 1221 : }</span></span> <span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 444 : }</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 33 : void KDB::setHyperparameters(const nlohmann::json&amp; hyperparameters_)</span></span> <span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 12 : void KDB::setHyperparameters(const nlohmann::json&amp; hyperparameters_)</span></span>
<span id="L16"><span class="lineNum"> 16</span> : {</span> <span id="L16"><span class="lineNum"> 16</span> : {</span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 33 : auto hyperparameters = hyperparameters_;</span></span> <span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 12 : auto hyperparameters = hyperparameters_;</span></span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 33 : if (hyperparameters.contains(&quot;k&quot;)) {</span></span> <span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 12 : if (hyperparameters.contains(&quot;k&quot;)) {</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 11 : k = hyperparameters[&quot;k&quot;];</span></span> <span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 4 : k = hyperparameters[&quot;k&quot;];</span></span>
<span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 11 : hyperparameters.erase(&quot;k&quot;);</span></span> <span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 4 : hyperparameters.erase(&quot;k&quot;);</span></span>
<span id="L21"><span class="lineNum"> 21</span> : }</span> <span id="L21"><span class="lineNum"> 21</span> : }</span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 33 : if (hyperparameters.contains(&quot;theta&quot;)) {</span></span> <span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 12 : if (hyperparameters.contains(&quot;theta&quot;)) {</span></span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 11 : theta = hyperparameters[&quot;theta&quot;];</span></span> <span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 4 : theta = hyperparameters[&quot;theta&quot;];</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 11 : hyperparameters.erase(&quot;theta&quot;);</span></span> <span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 4 : hyperparameters.erase(&quot;theta&quot;);</span></span>
<span id="L25"><span class="lineNum"> 25</span> : }</span> <span id="L25"><span class="lineNum"> 25</span> : }</span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 33 : Classifier::setHyperparameters(hyperparameters);</span></span> <span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 12 : Classifier::setHyperparameters(hyperparameters);</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 33 : }</span></span> <span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 12 : }</span></span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 143 : void KDB::buildModel(const torch::Tensor&amp; weights)</span></span> <span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 52 : void KDB::buildModel(const torch::Tensor&amp; weights)</span></span>
<span id="L29"><span class="lineNum"> 29</span> : {</span> <span id="L29"><span class="lineNum"> 29</span> : {</span>
<span id="L30"><span class="lineNum"> 30</span> : /*</span> <span id="L30"><span class="lineNum"> 30</span> : /*</span>
<span id="L31"><span class="lineNum"> 31</span> : 1. For each feature Xi, compute mutual information, I(X;C),</span> <span id="L31"><span class="lineNum"> 31</span> : 1. For each feature Xi, compute mutual information, I(X;C),</span>
@@ -110,66 +118,66 @@
<span id="L48"><span class="lineNum"> 48</span> : */</span> <span id="L48"><span class="lineNum"> 48</span> : */</span>
<span id="L49"><span class="lineNum"> 49</span> : // 1. For each feature Xi, compute mutual information, I(X;C),</span> <span id="L49"><span class="lineNum"> 49</span> : // 1. For each feature Xi, compute mutual information, I(X;C),</span>
<span id="L50"><span class="lineNum"> 50</span> : // where C is the class.</span> <span id="L50"><span class="lineNum"> 50</span> : // where C is the class.</span>
<span id="L51"><span class="lineNum"> 51</span> <span class="tlaGNC"> 143 : addNodes();</span></span> <span id="L51"><span class="lineNum"> 51</span> <span class="tlaGNC"> 52 : addNodes();</span></span>
<span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 429 : const torch::Tensor&amp; y = dataset.index({ -1, &quot;...&quot; });</span></span> <span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 156 : const torch::Tensor&amp; y = dataset.index({ -1, &quot;...&quot; });</span></span>
<span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 143 : std::vector&lt;double&gt; mi;</span></span> <span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 52 : std::vector&lt;double&gt; mi;</span></span>
<span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 1089 : for (auto i = 0; i &lt; features.size(); i++) {</span></span> <span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 396 : for (auto i = 0; i &lt; features.size(); i++) {</span></span>
<span id="L55"><span class="lineNum"> 55</span> <span class="tlaGNC"> 2838 : torch::Tensor firstFeature = dataset.index({ i, &quot;...&quot; });</span></span> <span id="L55"><span class="lineNum"> 55</span> <span class="tlaGNC"> 1032 : torch::Tensor firstFeature = dataset.index({ i, &quot;...&quot; });</span></span>
<span id="L56"><span class="lineNum"> 56</span> <span class="tlaGNC"> 946 : mi.push_back(metrics.mutualInformation(firstFeature, y, weights));</span></span> <span id="L56"><span class="lineNum"> 56</span> <span class="tlaGNC"> 344 : mi.push_back(metrics.mutualInformation(firstFeature, y, weights));</span></span>
<span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 946 : }</span></span> <span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 344 : }</span></span>
<span id="L58"><span class="lineNum"> 58</span> : // 2. Compute class conditional mutual information I(Xi;XjIC), f or each</span> <span id="L58"><span class="lineNum"> 58</span> : // 2. Compute class conditional mutual information I(Xi;XjIC), f or each</span>
<span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 143 : auto conditionalEdgeWeights = metrics.conditionalEdge(weights);</span></span> <span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 52 : auto conditionalEdgeWeights = metrics.conditionalEdge(weights);</span></span>
<span id="L60"><span class="lineNum"> 60</span> : // 3. Let the used variable list, S, be empty.</span> <span id="L60"><span class="lineNum"> 60</span> : // 3. Let the used variable list, S, be empty.</span>
<span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 143 : std::vector&lt;int&gt; S;</span></span> <span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 52 : std::vector&lt;int&gt; S;</span></span>
<span id="L62"><span class="lineNum"> 62</span> : // 4. Let the DAG network being constructed, BN, begin with a single</span> <span id="L62"><span class="lineNum"> 62</span> : // 4. Let the DAG network being constructed, BN, begin with a single</span>
<span id="L63"><span class="lineNum"> 63</span> : // class node, C.</span> <span id="L63"><span class="lineNum"> 63</span> : // class node, C.</span>
<span id="L64"><span class="lineNum"> 64</span> : // 5. Repeat until S includes all domain features</span> <span id="L64"><span class="lineNum"> 64</span> : // 5. Repeat until S includes all domain features</span>
<span id="L65"><span class="lineNum"> 65</span> : // 5.1. Select feature Xmax which is not in S and has the largest value</span> <span id="L65"><span class="lineNum"> 65</span> : // 5.1. Select feature Xmax which is not in S and has the largest value</span>
<span id="L66"><span class="lineNum"> 66</span> : // I(Xmax;C).</span> <span id="L66"><span class="lineNum"> 66</span> : // I(Xmax;C).</span>
<span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 143 : auto order = argsort(mi);</span></span> <span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 52 : auto order = argsort(mi);</span></span>
<span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 1089 : for (auto idx : order) {</span></span> <span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 396 : for (auto idx : order) {</span></span>
<span id="L69"><span class="lineNum"> 69</span> : // 5.2. Add a node to BN representing Xmax.</span> <span id="L69"><span class="lineNum"> 69</span> : // 5.2. Add a node to BN representing Xmax.</span>
<span id="L70"><span class="lineNum"> 70</span> : // 5.3. Add an arc from C to Xmax in BN.</span> <span id="L70"><span class="lineNum"> 70</span> : // 5.3. Add an arc from C to Xmax in BN.</span>
<span id="L71"><span class="lineNum"> 71</span> <span class="tlaGNC"> 946 : model.addEdge(className, features[idx]);</span></span> <span id="L71"><span class="lineNum"> 71</span> <span class="tlaGNC"> 344 : model.addEdge(className, features[idx]);</span></span>
<span id="L72"><span class="lineNum"> 72</span> : // 5.4. Add m = min(lSl,/c) arcs from m distinct features Xj in S with</span> <span id="L72"><span class="lineNum"> 72</span> : // 5.4. Add m = min(lSl,/c) arcs from m distinct features Xj in S with</span>
<span id="L73"><span class="lineNum"> 73</span> : // the highest value for I(Xmax;X,jC).</span> <span id="L73"><span class="lineNum"> 73</span> : // the highest value for I(Xmax;X,jC).</span>
<span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 946 : add_m_edges(idx, S, conditionalEdgeWeights);</span></span> <span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 344 : add_m_edges(idx, S, conditionalEdgeWeights);</span></span>
<span id="L75"><span class="lineNum"> 75</span> : // 5.5. Add Xmax to S.</span> <span id="L75"><span class="lineNum"> 75</span> : // 5.5. Add Xmax to S.</span>
<span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 946 : S.push_back(idx);</span></span> <span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 344 : S.push_back(idx);</span></span>
<span id="L77"><span class="lineNum"> 77</span> : }</span> <span id="L77"><span class="lineNum"> 77</span> : }</span>
<span id="L78"><span class="lineNum"> 78</span> <span class="tlaGNC"> 1232 : }</span></span> <span id="L78"><span class="lineNum"> 78</span> <span class="tlaGNC"> 448 : }</span></span>
<span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 946 : void KDB::add_m_edges(int idx, std::vector&lt;int&gt;&amp; S, torch::Tensor&amp; weights)</span></span> <span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 344 : void KDB::add_m_edges(int idx, std::vector&lt;int&gt;&amp; S, torch::Tensor&amp; weights)</span></span>
<span id="L80"><span class="lineNum"> 80</span> : {</span> <span id="L80"><span class="lineNum"> 80</span> : {</span>
<span id="L81"><span class="lineNum"> 81</span> <span class="tlaGNC"> 946 : auto n_edges = std::min(k, static_cast&lt;int&gt;(S.size()));</span></span> <span id="L81"><span class="lineNum"> 81</span> <span class="tlaGNC"> 344 : auto n_edges = std::min(k, static_cast&lt;int&gt;(S.size()));</span></span>
<span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 946 : auto cond_w = clone(weights);</span></span> <span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 344 : auto cond_w = clone(weights);</span></span>
<span id="L83"><span class="lineNum"> 83</span> <span class="tlaGNC"> 946 : bool exit_cond = k == 0;</span></span> <span id="L83"><span class="lineNum"> 83</span> <span class="tlaGNC"> 344 : bool exit_cond = k == 0;</span></span>
<span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 946 : int num = 0;</span></span> <span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 344 : int num = 0;</span></span>
<span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 2761 : while (!exit_cond) {</span></span> <span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 1004 : while (!exit_cond) {</span></span>
<span id="L86"><span class="lineNum"> 86</span> <span class="tlaGNC"> 7260 : auto max_minfo = argmax(cond_w.index({ idx, &quot;...&quot; })).item&lt;int&gt;();</span></span> <span id="L86"><span class="lineNum"> 86</span> <span class="tlaGNC"> 2640 : auto max_minfo = argmax(cond_w.index({ idx, &quot;...&quot; })).item&lt;int&gt;();</span></span>
<span id="L87"><span class="lineNum"> 87</span> <span class="tlaGNC"> 1815 : auto belongs = find(S.begin(), S.end(), max_minfo) != S.end();</span></span> <span id="L87"><span class="lineNum"> 87</span> <span class="tlaGNC"> 660 : auto belongs = find(S.begin(), S.end(), max_minfo) != S.end();</span></span>
<span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 4851 : if (belongs &amp;&amp; cond_w.index({ idx, max_minfo }).item&lt;float&gt;() &gt; theta) {</span></span> <span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 1764 : if (belongs &amp;&amp; cond_w.index({ idx, max_minfo }).item&lt;float&gt;() &gt; theta) {</span></span>
<span id="L89"><span class="lineNum"> 89</span> : try {</span> <span id="L89"><span class="lineNum"> 89</span> : try {</span>
<span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 880 : model.addEdge(features[max_minfo], features[idx]);</span></span> <span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 320 : model.addEdge(features[max_minfo], features[idx]);</span></span>
<span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 880 : num++;</span></span> <span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 320 : num++;</span></span>
<span id="L92"><span class="lineNum"> 92</span> : }</span> <span id="L92"><span class="lineNum"> 92</span> : }</span>
<span id="L93"><span class="lineNum"> 93</span> <span class="tlaUNC tlaBgUNC"> 0 : catch (const std::invalid_argument&amp; e) {</span></span> <span id="L93"><span class="lineNum"> 93</span> <span class="tlaUNC tlaBgUNC"> 0 : catch (const std::invalid_argument&amp; e) {</span></span>
<span id="L94"><span class="lineNum"> 94</span> : // Loops are not allowed</span> <span id="L94"><span class="lineNum"> 94</span> : // Loops are not allowed</span>
<span id="L95"><span class="lineNum"> 95</span> <span class="tlaUNC"> 0 : }</span></span> <span id="L95"><span class="lineNum"> 95</span> <span class="tlaUNC"> 0 : }</span></span>
<span id="L96"><span class="lineNum"> 96</span> : }</span> <span id="L96"><span class="lineNum"> 96</span> : }</span>
<span id="L97"><span class="lineNum"> 97</span> <span class="tlaGNC tlaBgGNC"> 7260 : cond_w.index_put_({ idx, max_minfo }, -1);</span></span> <span id="L97"><span class="lineNum"> 97</span> <span class="tlaGNC tlaBgGNC"> 2640 : cond_w.index_put_({ idx, max_minfo }, -1);</span></span>
<span id="L98"><span class="lineNum"> 98</span> <span class="tlaGNC"> 5445 : auto candidates_mask = cond_w.index({ idx, &quot;...&quot; }).gt(theta);</span></span> <span id="L98"><span class="lineNum"> 98</span> <span class="tlaGNC"> 1980 : auto candidates_mask = cond_w.index({ idx, &quot;...&quot; }).gt(theta);</span></span>
<span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 1815 : auto candidates = candidates_mask.nonzero();</span></span> <span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 660 : auto candidates = candidates_mask.nonzero();</span></span>
<span id="L100"><span class="lineNum"> 100</span> <span class="tlaGNC"> 1815 : exit_cond = num == n_edges || candidates.size(0) == 0;</span></span> <span id="L100"><span class="lineNum"> 100</span> <span class="tlaGNC"> 660 : exit_cond = num == n_edges || candidates.size(0) == 0;</span></span>
<span id="L101"><span class="lineNum"> 101</span> <span class="tlaGNC"> 1815 : }</span></span> <span id="L101"><span class="lineNum"> 101</span> <span class="tlaGNC"> 660 : }</span></span>
<span id="L102"><span class="lineNum"> 102</span> <span class="tlaGNC"> 7403 : }</span></span> <span id="L102"><span class="lineNum"> 102</span> <span class="tlaGNC"> 2692 : }</span></span>
<span id="L103"><span class="lineNum"> 103</span> <span class="tlaGNC"> 22 : std::vector&lt;std::string&gt; KDB::graph(const std::string&amp; title) const</span></span> <span id="L103"><span class="lineNum"> 103</span> <span class="tlaGNC"> 8 : std::vector&lt;std::string&gt; KDB::graph(const std::string&amp; title) const</span></span>
<span id="L104"><span class="lineNum"> 104</span> : {</span> <span id="L104"><span class="lineNum"> 104</span> : {</span>
<span id="L105"><span class="lineNum"> 105</span> <span class="tlaGNC"> 22 : std::string header{ title };</span></span> <span id="L105"><span class="lineNum"> 105</span> <span class="tlaGNC"> 8 : std::string header{ title };</span></span>
<span id="L106"><span class="lineNum"> 106</span> <span class="tlaGNC"> 22 : if (title == &quot;KDB&quot;) {</span></span> <span id="L106"><span class="lineNum"> 106</span> <span class="tlaGNC"> 8 : if (title == &quot;KDB&quot;) {</span></span>
<span id="L107"><span class="lineNum"> 107</span> <span class="tlaGNC"> 22 : header += &quot; (k=&quot; + std::to_string(k) + &quot;, theta=&quot; + std::to_string(theta) + &quot;)&quot;;</span></span> <span id="L107"><span class="lineNum"> 107</span> <span class="tlaGNC"> 8 : header += &quot; (k=&quot; + std::to_string(k) + &quot;, theta=&quot; + std::to_string(theta) + &quot;)&quot;;</span></span>
<span id="L108"><span class="lineNum"> 108</span> : }</span> <span id="L108"><span class="lineNum"> 108</span> : }</span>
<span id="L109"><span class="lineNum"> 109</span> <span class="tlaGNC"> 44 : return model.graph(header);</span></span> <span id="L109"><span class="lineNum"> 109</span> <span class="tlaGNC"> 16 : return model.graph(header);</span></span>
<span id="L110"><span class="lineNum"> 110</span> <span class="tlaGNC"> 22 : }</span></span> <span id="L110"><span class="lineNum"> 110</span> <span class="tlaGNC"> 8 : }</span></span>
<span id="L111"><span class="lineNum"> 111</span> : }</span> <span id="L111"><span class="lineNum"> 111</span> : }</span>
</pre> </pre>
</td> </td>

View File

@@ -0,0 +1,48 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.cc</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="KDB.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="KDB.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="KDB.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="KDB.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="KDB.cc.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="KDB.cc.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="KDB.cc.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="KDB.cc.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="KDB.cc.gcov.html#L21" target="source" alt="overview">
<area shape="rect" coords="0,36,79,39" href="KDB.cc.gcov.html#L25" target="source" alt="overview">
<area shape="rect" coords="0,40,79,43" href="KDB.cc.gcov.html#L29" target="source" alt="overview">
<area shape="rect" coords="0,44,79,47" href="KDB.cc.gcov.html#L33" target="source" alt="overview">
<area shape="rect" coords="0,48,79,51" href="KDB.cc.gcov.html#L37" target="source" alt="overview">
<area shape="rect" coords="0,52,79,55" href="KDB.cc.gcov.html#L41" target="source" alt="overview">
<area shape="rect" coords="0,56,79,59" href="KDB.cc.gcov.html#L45" target="source" alt="overview">
<area shape="rect" coords="0,60,79,63" href="KDB.cc.gcov.html#L49" target="source" alt="overview">
<area shape="rect" coords="0,64,79,67" href="KDB.cc.gcov.html#L53" target="source" alt="overview">
<area shape="rect" coords="0,68,79,71" href="KDB.cc.gcov.html#L57" target="source" alt="overview">
<area shape="rect" coords="0,72,79,75" href="KDB.cc.gcov.html#L61" target="source" alt="overview">
<area shape="rect" coords="0,76,79,79" href="KDB.cc.gcov.html#L65" target="source" alt="overview">
<area shape="rect" coords="0,80,79,83" href="KDB.cc.gcov.html#L69" target="source" alt="overview">
<area shape="rect" coords="0,84,79,87" href="KDB.cc.gcov.html#L73" target="source" alt="overview">
<area shape="rect" coords="0,88,79,91" href="KDB.cc.gcov.html#L77" target="source" alt="overview">
<area shape="rect" coords="0,92,79,95" href="KDB.cc.gcov.html#L81" target="source" alt="overview">
<area shape="rect" coords="0,96,79,99" href="KDB.cc.gcov.html#L85" target="source" alt="overview">
<area shape="rect" coords="0,100,79,103" href="KDB.cc.gcov.html#L89" target="source" alt="overview">
<area shape="rect" coords="0,104,79,107" href="KDB.cc.gcov.html#L93" target="source" alt="overview">
<area shape="rect" coords="0,108,79,111" href="KDB.cc.gcov.html#L97" target="source" alt="overview">
</map>
<center>
<a href="KDB.cc.gcov.html#top" target="source">Top</a><br><br>
<img src="KDB.cc.gcov.png" width=80 height=110 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDB.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDB.h<span style="font-size: 80%;"> (<a href="KDB.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDB.h<span style="font-size: 80%;"> (<a href="KDB.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.h.gcov.html#L20">_ZN8bayesnet3KDBD0Ev</a></td> <td class="coverFn"><a href="KDB.h.gcov.html#L20">bayesnet::KDB::~KDB()</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">44</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDB.h.gcov.html#L20">_ZN8bayesnet3KDBD0Ev</a></td>
<td class="coverFnAliasHi">2</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDB.h.gcov.html#L20">_ZN8bayesnet3KDBD2Ev</a></td>
<td class="coverFnAliasHi">9</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDB.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDB.h<span style="font-size: 80%;"> (<a href="KDB.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDB.h<span style="font-size: 80%;"> (<a href="KDB.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDB.h.gcov.html#L20">_ZN8bayesnet3KDBD0Ev</a></td> <td class="coverFn"><a href="KDB.h.gcov.html#L20">bayesnet::KDB::~KDB()</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">44</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDB.h.gcov.html#L20">_ZN8bayesnet3KDBD0Ev</a></td>
<td class="coverFnAliasHi">2</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDB.h.gcov.html#L20">_ZN8bayesnet3KDBD2Ev</a></td>
<td class="coverFnAliasHi">9</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="KDB.h.gcov.overview.html" name="overview">
<frame src="KDB.h.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDB.h</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDB.h<span style="font-size: 80%;"> (source / <a href="KDB.h.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDB.h<span style="font-size: 80%;"> (source / <a href="KDB.h.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -81,7 +89,7 @@
<span id="L19"><span class="lineNum"> 19</span> : void buildModel(const torch::Tensor&amp; weights) override;</span> <span id="L19"><span class="lineNum"> 19</span> : void buildModel(const torch::Tensor&amp; weights) override;</span>
<span id="L20"><span class="lineNum"> 20</span> : public:</span> <span id="L20"><span class="lineNum"> 20</span> : public:</span>
<span id="L21"><span class="lineNum"> 21</span> : explicit KDB(int k, float theta = 0.03);</span> <span id="L21"><span class="lineNum"> 21</span> : explicit KDB(int k, float theta = 0.03);</span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC tlaBgGNC"> 11 : virtual ~KDB() = default;</span></span> <span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC tlaBgGNC"> 44 : virtual ~KDB() = default;</span></span>
<span id="L23"><span class="lineNum"> 23</span> : void setHyperparameters(const nlohmann::json&amp; hyperparameters_) override;</span> <span id="L23"><span class="lineNum"> 23</span> : void setHyperparameters(const nlohmann::json&amp; hyperparameters_) override;</span>
<span id="L24"><span class="lineNum"> 24</span> : std::vector&lt;std::string&gt; graph(const std::string&amp; name = &quot;KDB&quot;) const override;</span> <span id="L24"><span class="lineNum"> 24</span> : std::vector&lt;std::string&gt; graph(const std::string&amp; name = &quot;KDB&quot;) const override;</span>
<span id="L25"><span class="lineNum"> 25</span> : };</span> <span id="L25"><span class="lineNum"> 25</span> : };</span>

View File

@@ -0,0 +1,27 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDB.h</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="KDB.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="KDB.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="KDB.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="KDB.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="KDB.h.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="KDB.h.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="KDB.h.gcov.html#L13" target="source" alt="overview">
</map>
<center>
<a href="KDB.h.gcov.html#top" target="source">Top</a><br><br>
<img src="KDB.h.gcov.png" width=80 height=26 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDBLd.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDBLd.cc<span style="font-size: 80%;"> (<a href="KDBLd.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDBLd.cc<span style="font-size: 80%;"> (<a href="KDBLd.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,30 +71,30 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L29">_ZNK8bayesnet5KDBLd5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L29">bayesnet::KDBLd::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">4</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L24">_ZN8bayesnet5KDBLd7predictERN2at6TensorE</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L24">bayesnet::KDBLd::predict(at::Tensor&amp;)</a></td>
<td class="coverFnHi">44</td> <td class="coverFnHi">16</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L9">_ZN8bayesnet5KDBLd3fitERN2at6TensorES3_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L9">bayesnet::KDBLd::fit(at::Tensor&amp;, at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">55</td> <td class="coverFnHi">20</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L8">_ZN8bayesnet5KDBLdC2Ei</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L8">bayesnet::KDBLd::KDBLd(int)</a></td>
<td class="coverFnHi">187</td> <td class="coverFnHi">68</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDBLd.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDBLd.cc<span style="font-size: 80%;"> (<a href="KDBLd.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDBLd.cc<span style="font-size: 80%;"> (<a href="KDBLd.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,30 +71,30 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L9">_ZN8bayesnet5KDBLd3fitERN2at6TensorES3_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L8">bayesnet::KDBLd::KDBLd(int)</a></td>
<td class="coverFnHi">55</td> <td class="coverFnHi">68</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L24">_ZN8bayesnet5KDBLd7predictERN2at6TensorE</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L9">bayesnet::KDBLd::fit(at::Tensor&amp;, at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">44</td> <td class="coverFnHi">20</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L8">_ZN8bayesnet5KDBLdC2Ei</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L29">bayesnet::KDBLd::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">187</td> <td class="coverFnHi">4</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.cc.gcov.html#L29">_ZNK8bayesnet5KDBLd5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="KDBLd.cc.gcov.html#L24">bayesnet::KDBLd::predict(at::Tensor&amp;)</a></td>
<td class="coverFnHi">11</td> <td class="coverFnHi">16</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="KDBLd.cc.gcov.overview.html" name="overview">
<frame src="KDBLd.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDBLd.cc</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDBLd.cc<span style="font-size: 80%;"> (source / <a href="KDBLd.cc.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDBLd.cc<span style="font-size: 80%;"> (source / <a href="KDBLd.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
<td class="headerCovTableEntry">4</td> <td class="headerCovTableEntry">4</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -69,30 +77,30 @@
<span id="L7"><span class="lineNum"> 7</span> : #include &quot;KDBLd.h&quot;</span> <span id="L7"><span class="lineNum"> 7</span> : #include &quot;KDBLd.h&quot;</span>
<span id="L8"><span class="lineNum"> 8</span> : </span> <span id="L8"><span class="lineNum"> 8</span> : </span>
<span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span> <span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span>
<span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 187 : KDBLd::KDBLd(int k) : KDB(k), Proposal(dataset, features, className) {}</span></span> <span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 68 : KDBLd::KDBLd(int k) : KDB(k), Proposal(dataset, features, className) {}</span></span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 55 : KDBLd&amp; KDBLd::fit(torch::Tensor&amp; X_, torch::Tensor&amp; y_, const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span> <span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 20 : KDBLd&amp; KDBLd::fit(torch::Tensor&amp; X_, torch::Tensor&amp; y_, const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span>
<span id="L12"><span class="lineNum"> 12</span> : {</span> <span id="L12"><span class="lineNum"> 12</span> : {</span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 55 : checkInput(X_, y_);</span></span> <span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 20 : checkInput(X_, y_);</span></span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 55 : features = features_;</span></span> <span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 20 : features = features_;</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 55 : className = className_;</span></span> <span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 20 : className = className_;</span></span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 55 : Xf = X_;</span></span> <span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 20 : Xf = X_;</span></span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 55 : y = y_;</span></span> <span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 20 : y = y_;</span></span>
<span id="L18"><span class="lineNum"> 18</span> : // Fills std::vectors Xv &amp; yv with the data from tensors X_ (discretized) &amp; y</span> <span id="L18"><span class="lineNum"> 18</span> : // Fills std::vectors Xv &amp; yv with the data from tensors X_ (discretized) &amp; y</span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 55 : states = fit_local_discretization(y);</span></span> <span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 20 : states = fit_local_discretization(y);</span></span>
<span id="L20"><span class="lineNum"> 20</span> : // We have discretized the input data</span> <span id="L20"><span class="lineNum"> 20</span> : // We have discretized the input data</span>
<span id="L21"><span class="lineNum"> 21</span> : // 1st we need to fit the model to build the normal KDB structure, KDB::fit initializes the base Bayesian network</span> <span id="L21"><span class="lineNum"> 21</span> : // 1st we need to fit the model to build the normal KDB structure, KDB::fit initializes the base Bayesian network</span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 55 : KDB::fit(dataset, features, className, states);</span></span> <span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 20 : KDB::fit(dataset, features, className, states);</span></span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 55 : states = localDiscretizationProposal(states, model);</span></span> <span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC"> 20 : states = localDiscretizationProposal(states, model);</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 55 : return *this;</span></span> <span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 20 : return *this;</span></span>
<span id="L25"><span class="lineNum"> 25</span> : }</span> <span id="L25"><span class="lineNum"> 25</span> : }</span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 44 : torch::Tensor KDBLd::predict(torch::Tensor&amp; X)</span></span> <span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 16 : torch::Tensor KDBLd::predict(torch::Tensor&amp; X)</span></span>
<span id="L27"><span class="lineNum"> 27</span> : {</span> <span id="L27"><span class="lineNum"> 27</span> : {</span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 44 : auto Xt = prepareX(X);</span></span> <span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 16 : auto Xt = prepareX(X);</span></span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 88 : return KDB::predict(Xt);</span></span> <span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 32 : return KDB::predict(Xt);</span></span>
<span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 44 : }</span></span> <span id="L30"><span class="lineNum"> 30</span> <span class="tlaGNC"> 16 : }</span></span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 11 : std::vector&lt;std::string&gt; KDBLd::graph(const std::string&amp; name) const</span></span> <span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 4 : std::vector&lt;std::string&gt; KDBLd::graph(const std::string&amp; name) const</span></span>
<span id="L32"><span class="lineNum"> 32</span> : {</span> <span id="L32"><span class="lineNum"> 32</span> : {</span>
<span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 11 : return KDB::graph(name);</span></span> <span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 4 : return KDB::graph(name);</span></span>
<span id="L34"><span class="lineNum"> 34</span> : }</span> <span id="L34"><span class="lineNum"> 34</span> : }</span>
<span id="L35"><span class="lineNum"> 35</span> : }</span> <span id="L35"><span class="lineNum"> 35</span> : }</span>
</pre> </pre>

View File

@@ -0,0 +1,29 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.cc</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="KDBLd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="KDBLd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="KDBLd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="KDBLd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="KDBLd.cc.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="KDBLd.cc.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="KDBLd.cc.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="KDBLd.cc.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="KDBLd.cc.gcov.html#L21" target="source" alt="overview">
</map>
<center>
<a href="KDBLd.cc.gcov.html#top" target="source">Top</a><br><br>
<img src="KDBLd.cc.gcov.png" width=80 height=34 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDBLd.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDBLd.h<span style="font-size: 80%;"> (<a href="KDBLd.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDBLd.h<span style="font-size: 80%;"> (<a href="KDBLd.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.h.gcov.html#L15">_ZN8bayesnet5KDBLdD0Ev</a></td> <td class="coverFn"><a href="KDBLd.h.gcov.html#L15">bayesnet::KDBLd::~KDBLd()</a></td>
<td class="coverFnHi">5</td> <td class="coverFnHi">20</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDBLd.h.gcov.html#L15">_ZN8bayesnet5KDBLdD0Ev</a></td>
<td class="coverFnAliasHi">2</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDBLd.h.gcov.html#L15">_ZN8bayesnet5KDBLdD2Ev</a></td>
<td class="coverFnAliasHi">3</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDBLd.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDBLd.h<span style="font-size: 80%;"> (<a href="KDBLd.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDBLd.h<span style="font-size: 80%;"> (<a href="KDBLd.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="KDBLd.h.gcov.html#L15">_ZN8bayesnet5KDBLdD0Ev</a></td> <td class="coverFn"><a href="KDBLd.h.gcov.html#L15">bayesnet::KDBLd::~KDBLd()</a></td>
<td class="coverFnHi">5</td> <td class="coverFnHi">20</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDBLd.h.gcov.html#L15">_ZN8bayesnet5KDBLdD0Ev</a></td>
<td class="coverFnAliasHi">2</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="KDBLd.h.gcov.html#L15">_ZN8bayesnet5KDBLdD2Ev</a></td>
<td class="coverFnAliasHi">3</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="KDBLd.h.gcov.overview.html" name="overview">
<frame src="KDBLd.h.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/KDBLd.h</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - KDBLd.h<span style="font-size: 80%;"> (source / <a href="KDBLd.h.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - KDBLd.h<span style="font-size: 80%;"> (source / <a href="KDBLd.h.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -76,7 +84,7 @@
<span id="L14"><span class="lineNum"> 14</span> : private:</span> <span id="L14"><span class="lineNum"> 14</span> : private:</span>
<span id="L15"><span class="lineNum"> 15</span> : public:</span> <span id="L15"><span class="lineNum"> 15</span> : public:</span>
<span id="L16"><span class="lineNum"> 16</span> : explicit KDBLd(int k);</span> <span id="L16"><span class="lineNum"> 16</span> : explicit KDBLd(int k);</span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC tlaBgGNC"> 5 : virtual ~KDBLd() = default;</span></span> <span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC tlaBgGNC"> 20 : virtual ~KDBLd() = default;</span></span>
<span id="L18"><span class="lineNum"> 18</span> : KDBLd&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span> <span id="L18"><span class="lineNum"> 18</span> : KDBLd&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span>
<span id="L19"><span class="lineNum"> 19</span> : std::vector&lt;std::string&gt; graph(const std::string&amp; name = &quot;KDB&quot;) const override;</span> <span id="L19"><span class="lineNum"> 19</span> : std::vector&lt;std::string&gt; graph(const std::string&amp; name = &quot;KDB&quot;) const override;</span>
<span id="L20"><span class="lineNum"> 20</span> : torch::Tensor predict(torch::Tensor&amp; X) override;</span> <span id="L20"><span class="lineNum"> 20</span> : torch::Tensor predict(torch::Tensor&amp; X) override;</span>

View File

@@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/KDBLd.h</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="KDBLd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="KDBLd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="KDBLd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="KDBLd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="KDBLd.h.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="KDBLd.h.gcov.html#L9" target="source" alt="overview">
</map>
<center>
<a href="KDBLd.h.gcov.html#top" target="source">Top</a><br><br>
<img src="KDBLd.h.gcov.png" width=80 height=23 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Proposal.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Proposal.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Proposal.cc<span style="font-size: 80%;"> (<a href="Proposal.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Proposal.cc<span style="font-size: 80%;"> (<a href="Proposal.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.7&nbsp;%</td> <td class="headerCovTableEntryHi">97.7&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">88.9&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">9</td>
<td class="headerCovTableEntry">8</td> <td class="headerCovTableEntry">8</td>
<td class="headerCovTableEntry">8</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,72 +71,58 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L104">_ZN8bayesnet8Proposal8prepareXERN2at6TensorE</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L104">bayesnet::Proposal::prepareX(at::Tensor&amp;)</a></td>
<td class="coverFnHi">462</td> <td class="coverFnHi">168</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L10">_ZN8bayesnet8ProposalD0Ev</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L10">bayesnet::Proposal::~Proposal()</a></td>
<td class="coverFnHi">550</td> <td class="coverFnHi">200</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Proposal.cc.gcov.html#L10">_ZN8bayesnet8ProposalD0Ev</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L25">bayesnet::Proposal::localDiscretizationProposal(std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt; const&amp;, bayesnet::Network&amp;)</a></td>
<td class="coverFnAliasLo">0</td> <td class="coverFnHi">212</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Proposal.cc.gcov.html#L10">_ZN8bayesnet8ProposalD2Ev</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L16">bayesnet::Proposal::checkInput(at::Tensor const&amp;, at::Tensor const&amp;)</a></td>
<td class="coverFnAliasHi">550</td> <td class="coverFnHi">228</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L25">_ZN8bayesnet8Proposal27localDiscretizationProposalERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIiSaIiEESt4lessIS7_ESaISt4pairIKS7_SA_EEERNS_7NetworkE</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L77">bayesnet::Proposal::fit_local_discretization[abi:cxx11](at::Tensor const&amp;)</a></td>
<td class="coverFnHi">583</td> <td class="coverFnHi">232</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L16">_ZN8bayesnet8Proposal10checkInputERKN2at6TensorES4_</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L9">bayesnet::Proposal::Proposal(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)</a></td>
<td class="coverFnHi">627</td> <td class="coverFnHi">424</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L77">_ZN8bayesnet8Proposal24fit_local_discretizationB5cxx11ERKN2at6TensorE</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L47">auto bayesnet::Proposal::localDiscretizationProposal(std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt; const&amp;, bayesnet::Network&amp;)::{lambda(auto:1 const&amp;)#2}::operator()&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">638</td> <td class="coverFnHi">1372</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L9">_ZN8bayesnet8ProposalC2ERN2at6TensorERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERSA_</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L41">auto bayesnet::Proposal::localDiscretizationProposal(std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt; const&amp;, bayesnet::Network&amp;)::{lambda(auto:1 const&amp;)#1}::operator()&lt;bayesnet::Node*&gt;(bayesnet::Node* const&amp;) const</a></td>
<td class="coverFnHi">1166</td> <td class="coverFnHi">2696</td>
</tr>
<tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L47">_ZZN8bayesnet8Proposal27localDiscretizationProposalERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIiSaIiEESt4lessIS7_ESaISt4pairIKS7_SA_EEERNS_7NetworkEENKUlRKT_E0_clIS7_EEDaSO_</a></td>
<td class="coverFnHi">3773</td>
</tr>
<tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L41">_ZZN8bayesnet8Proposal27localDiscretizationProposalERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIiSaIiEESt4lessIS7_ESaISt4pairIKS7_SA_EEERNS_7NetworkEENKUlRKT_E_clIPNS_4NodeEEEDaSO_</a></td>
<td class="coverFnHi">7414</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Proposal.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Proposal.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Proposal.cc<span style="font-size: 80%;"> (<a href="Proposal.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Proposal.cc<span style="font-size: 80%;"> (<a href="Proposal.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.7&nbsp;%</td> <td class="headerCovTableEntryHi">97.7&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">88.9&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">9</td>
<td class="headerCovTableEntry">8</td> <td class="headerCovTableEntry">8</td>
<td class="headerCovTableEntry">8</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,72 +71,58 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L16">_ZN8bayesnet8Proposal10checkInputERKN2at6TensorES4_</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L41">auto bayesnet::Proposal::localDiscretizationProposal(std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt; const&amp;, bayesnet::Network&amp;)::{lambda(auto:1 const&amp;)#1}::operator()&lt;bayesnet::Node*&gt;(bayesnet::Node* const&amp;) const</a></td>
<td class="coverFnHi">627</td> <td class="coverFnHi">2696</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L77">_ZN8bayesnet8Proposal24fit_local_discretizationB5cxx11ERKN2at6TensorE</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L47">auto bayesnet::Proposal::localDiscretizationProposal(std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt; const&amp;, bayesnet::Network&amp;)::{lambda(auto:1 const&amp;)#2}::operator()&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">638</td> <td class="coverFnHi">1372</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L25">_ZN8bayesnet8Proposal27localDiscretizationProposalERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIiSaIiEESt4lessIS7_ESaISt4pairIKS7_SA_EEERNS_7NetworkE</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L9">bayesnet::Proposal::Proposal(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;)</a></td>
<td class="coverFnHi">583</td> <td class="coverFnHi">424</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L104">_ZN8bayesnet8Proposal8prepareXERN2at6TensorE</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L16">bayesnet::Proposal::checkInput(at::Tensor const&amp;, at::Tensor const&amp;)</a></td>
<td class="coverFnHi">462</td> <td class="coverFnHi">228</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L9">_ZN8bayesnet8ProposalC2ERN2at6TensorERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERSA_</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L77">bayesnet::Proposal::fit_local_discretization[abi:cxx11](at::Tensor const&amp;)</a></td>
<td class="coverFnHi">1166</td> <td class="coverFnHi">232</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L10">_ZN8bayesnet8ProposalD0Ev</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L25">bayesnet::Proposal::localDiscretizationProposal(std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt; const&amp;, bayesnet::Network&amp;)</a></td>
<td class="coverFnHi">550</td> <td class="coverFnHi">212</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Proposal.cc.gcov.html#L10">_ZN8bayesnet8ProposalD0Ev</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L104">bayesnet::Proposal::prepareX(at::Tensor&amp;)</a></td>
<td class="coverFnAliasLo">0</td> <td class="coverFnHi">168</td>
</tr> </tr>
<tr> <tr>
<td class="coverFnAlias"><a href="Proposal.cc.gcov.html#L10">_ZN8bayesnet8ProposalD2Ev</a></td> <td class="coverFn"><a href="Proposal.cc.gcov.html#L10">bayesnet::Proposal::~Proposal()</a></td>
<td class="coverFnAliasHi">550</td> <td class="coverFnHi">200</td>
</tr>
<tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L47">_ZZN8bayesnet8Proposal27localDiscretizationProposalERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIiSaIiEESt4lessIS7_ESaISt4pairIKS7_SA_EEERNS_7NetworkEENKUlRKT_E0_clIS7_EEDaSO_</a></td>
<td class="coverFnHi">3773</td>
</tr>
<tr>
<td class="coverFn"><a href="Proposal.cc.gcov.html#L41">_ZZN8bayesnet8Proposal27localDiscretizationProposalERKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIiSaIiEESt4lessIS7_ESaISt4pairIKS7_SA_EEERNS_7NetworkEENKUlRKT_E_clIPNS_4NodeEEEDaSO_</a></td>
<td class="coverFnHi">7414</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Proposal.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="Proposal.cc.gcov.overview.html" name="overview">
<frame src="Proposal.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/Proposal.cc</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Proposal.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - Proposal.cc<span style="font-size: 80%;"> (source / <a href="Proposal.cc.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - Proposal.cc<span style="font-size: 80%;"> (source / <a href="Proposal.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">97.7&nbsp;%</td> <td class="headerCovTableEntryHi">97.7&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryMed">88.9&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">9</td>
<td class="headerCovTableEntry">8</td> <td class="headerCovTableEntry">8</td>
<td class="headerCovTableEntry">8</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -70,111 +78,111 @@
<span id="L8"><span class="lineNum"> 8</span> : #include &quot;Proposal.h&quot;</span> <span id="L8"><span class="lineNum"> 8</span> : #include &quot;Proposal.h&quot;</span>
<span id="L9"><span class="lineNum"> 9</span> : </span> <span id="L9"><span class="lineNum"> 9</span> : </span>
<span id="L10"><span class="lineNum"> 10</span> : namespace bayesnet {</span> <span id="L10"><span class="lineNum"> 10</span> : namespace bayesnet {</span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 1166 : Proposal::Proposal(torch::Tensor&amp; dataset_, std::vector&lt;std::string&gt;&amp; features_, std::string&amp; className_) : pDataset(dataset_), pFeatures(features_), pClassName(className_) {}</span></span> <span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 424 : Proposal::Proposal(torch::Tensor&amp; dataset_, std::vector&lt;std::string&gt;&amp; features_, std::string&amp; className_) : pDataset(dataset_), pFeatures(features_), pClassName(className_) {}</span></span>
<span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC"> 550 : Proposal::~Proposal()</span></span> <span id="L12"><span class="lineNum"> 12</span> <span class="tlaGNC"> 200 : Proposal::~Proposal()</span></span>
<span id="L13"><span class="lineNum"> 13</span> : {</span> <span id="L13"><span class="lineNum"> 13</span> : {</span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 5214 : for (auto&amp; [key, value] : discretizers) {</span></span> <span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 1896 : for (auto&amp; [key, value] : discretizers) {</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 4664 : delete value;</span></span> <span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 1696 : delete value;</span></span>
<span id="L16"><span class="lineNum"> 16</span> : }</span> <span id="L16"><span class="lineNum"> 16</span> : }</span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 550 : }</span></span> <span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 200 : }</span></span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 627 : void Proposal::checkInput(const torch::Tensor&amp; X, const torch::Tensor&amp; y)</span></span> <span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 228 : void Proposal::checkInput(const torch::Tensor&amp; X, const torch::Tensor&amp; y)</span></span>
<span id="L19"><span class="lineNum"> 19</span> : {</span> <span id="L19"><span class="lineNum"> 19</span> : {</span>
<span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 627 : if (!torch::is_floating_point(X)) {</span></span> <span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 228 : if (!torch::is_floating_point(X)) {</span></span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaUNC tlaBgUNC"> 0 : throw std::invalid_argument(&quot;X must be a floating point tensor&quot;);</span></span> <span id="L21"><span class="lineNum"> 21</span> <span class="tlaUNC tlaBgUNC"> 0 : throw std::invalid_argument(&quot;X must be a floating point tensor&quot;);</span></span>
<span id="L22"><span class="lineNum"> 22</span> : }</span> <span id="L22"><span class="lineNum"> 22</span> : }</span>
<span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC tlaBgGNC"> 627 : if (torch::is_floating_point(y)) {</span></span> <span id="L23"><span class="lineNum"> 23</span> <span class="tlaGNC tlaBgGNC"> 228 : if (torch::is_floating_point(y)) {</span></span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaUNC tlaBgUNC"> 0 : throw std::invalid_argument(&quot;y must be an integer tensor&quot;);</span></span> <span id="L24"><span class="lineNum"> 24</span> <span class="tlaUNC tlaBgUNC"> 0 : throw std::invalid_argument(&quot;y must be an integer tensor&quot;);</span></span>
<span id="L25"><span class="lineNum"> 25</span> : }</span> <span id="L25"><span class="lineNum"> 25</span> : }</span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC tlaBgGNC"> 627 : }</span></span> <span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC tlaBgGNC"> 228 : }</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 583 : map&lt;std::string, std::vector&lt;int&gt;&gt; Proposal::localDiscretizationProposal(const map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; oldStates, Network&amp; model)</span></span> <span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 212 : map&lt;std::string, std::vector&lt;int&gt;&gt; Proposal::localDiscretizationProposal(const map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; oldStates, Network&amp; model)</span></span>
<span id="L28"><span class="lineNum"> 28</span> : {</span> <span id="L28"><span class="lineNum"> 28</span> : {</span>
<span id="L29"><span class="lineNum"> 29</span> : // order of local discretization is important. no good 0, 1, 2...</span> <span id="L29"><span class="lineNum"> 29</span> : // order of local discretization is important. no good 0, 1, 2...</span>
<span id="L30"><span class="lineNum"> 30</span> : // although we rediscretize features after the local discretization of every feature</span> <span id="L30"><span class="lineNum"> 30</span> : // although we rediscretize features after the local discretization of every feature</span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 583 : auto order = model.topological_sort();</span></span> <span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 212 : auto order = model.topological_sort();</span></span>
<span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 583 : auto&amp; nodes = model.getNodes();</span></span> <span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 212 : auto&amp; nodes = model.getNodes();</span></span>
<span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 583 : map&lt;std::string, std::vector&lt;int&gt;&gt; states = oldStates;</span></span> <span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 212 : map&lt;std::string, std::vector&lt;int&gt;&gt; states = oldStates;</span></span>
<span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 583 : std::vector&lt;int&gt; indicesToReDiscretize;</span></span> <span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 212 : std::vector&lt;int&gt; indicesToReDiscretize;</span></span>
<span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 583 : bool upgrade = false; // Flag to check if we need to upgrade the model</span></span> <span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 212 : bool upgrade = false; // Flag to check if we need to upgrade the model</span></span>
<span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 4884 : for (auto feature : order) {</span></span> <span id="L36"><span class="lineNum"> 36</span> <span class="tlaGNC"> 1776 : for (auto feature : order) {</span></span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 4301 : auto nodeParents = nodes[feature]-&gt;getParents();</span></span> <span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 1564 : auto nodeParents = nodes[feature]-&gt;getParents();</span></span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 4301 : if (nodeParents.size() &lt; 2) continue; // Only has class as parent</span></span> <span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 1564 : if (nodeParents.size() &lt; 2) continue; // Only has class as parent</span></span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 3641 : upgrade = true;</span></span> <span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 1324 : upgrade = true;</span></span>
<span id="L40"><span class="lineNum"> 40</span> <span class="tlaGNC"> 3641 : int index = find(pFeatures.begin(), pFeatures.end(), feature) - pFeatures.begin();</span></span> <span id="L40"><span class="lineNum"> 40</span> <span class="tlaGNC"> 1324 : int index = find(pFeatures.begin(), pFeatures.end(), feature) - pFeatures.begin();</span></span>
<span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 3641 : indicesToReDiscretize.push_back(index); // We need to re-discretize this feature</span></span> <span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 1324 : indicesToReDiscretize.push_back(index); // We need to re-discretize this feature</span></span>
<span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 3641 : std::vector&lt;std::string&gt; parents;</span></span> <span id="L42"><span class="lineNum"> 42</span> <span class="tlaGNC"> 1324 : std::vector&lt;std::string&gt; parents;</span></span>
<span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 11055 : transform(nodeParents.begin(), nodeParents.end(), back_inserter(parents), [](const auto&amp; p) { return p-&gt;getName(); });</span></span> <span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 4020 : transform(nodeParents.begin(), nodeParents.end(), back_inserter(parents), [](const auto&amp; p) { return p-&gt;getName(); });</span></span>
<span id="L44"><span class="lineNum"> 44</span> : // Remove class as parent as it will be added later</span> <span id="L44"><span class="lineNum"> 44</span> : // Remove class as parent as it will be added later</span>
<span id="L45"><span class="lineNum"> 45</span> <span class="tlaGNC"> 3641 : parents.erase(remove(parents.begin(), parents.end(), pClassName), parents.end());</span></span> <span id="L45"><span class="lineNum"> 45</span> <span class="tlaGNC"> 1324 : parents.erase(remove(parents.begin(), parents.end(), pClassName), parents.end());</span></span>
<span id="L46"><span class="lineNum"> 46</span> : // Get the indices of the parents</span> <span id="L46"><span class="lineNum"> 46</span> : // Get the indices of the parents</span>
<span id="L47"><span class="lineNum"> 47</span> <span class="tlaGNC"> 3641 : std::vector&lt;int&gt; indices;</span></span> <span id="L47"><span class="lineNum"> 47</span> <span class="tlaGNC"> 1324 : std::vector&lt;int&gt; indices;</span></span>
<span id="L48"><span class="lineNum"> 48</span> <span class="tlaGNC"> 3641 : indices.push_back(-1); // Add class index</span></span> <span id="L48"><span class="lineNum"> 48</span> <span class="tlaGNC"> 1324 : indices.push_back(-1); // Add class index</span></span>
<span id="L49"><span class="lineNum"> 49</span> <span class="tlaGNC"> 7414 : transform(parents.begin(), parents.end(), back_inserter(indices), [&amp;](const auto&amp; p) {return find(pFeatures.begin(), pFeatures.end(), p) - pFeatures.begin(); });</span></span> <span id="L49"><span class="lineNum"> 49</span> <span class="tlaGNC"> 2696 : transform(parents.begin(), parents.end(), back_inserter(indices), [&amp;](const auto&amp; p) {return find(pFeatures.begin(), pFeatures.end(), p) - pFeatures.begin(); });</span></span>
<span id="L50"><span class="lineNum"> 50</span> : // Now we fit the discretizer of the feature, conditioned on its parents and the class i.e. discretizer.fit(X[index], X[indices] + y)</span> <span id="L50"><span class="lineNum"> 50</span> : // Now we fit the discretizer of the feature, conditioned on its parents and the class i.e. discretizer.fit(X[index], X[indices] + y)</span>
<span id="L51"><span class="lineNum"> 51</span> <span class="tlaGNC"> 3641 : std::vector&lt;std::string&gt; yJoinParents(Xf.size(1));</span></span> <span id="L51"><span class="lineNum"> 51</span> <span class="tlaGNC"> 1324 : std::vector&lt;std::string&gt; yJoinParents(Xf.size(1));</span></span>
<span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 11055 : for (auto idx : indices) {</span></span> <span id="L52"><span class="lineNum"> 52</span> <span class="tlaGNC"> 4020 : for (auto idx : indices) {</span></span>
<span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 2636260 : for (int i = 0; i &lt; Xf.size(1); ++i) {</span></span> <span id="L53"><span class="lineNum"> 53</span> <span class="tlaGNC"> 958640 : for (int i = 0; i &lt; Xf.size(1); ++i) {</span></span>
<span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 7886538 : yJoinParents[i] += to_string(pDataset.index({ idx, i }).item&lt;int&gt;());</span></span> <span id="L54"><span class="lineNum"> 54</span> <span class="tlaGNC"> 2867832 : yJoinParents[i] += to_string(pDataset.index({ idx, i }).item&lt;int&gt;());</span></span>
<span id="L55"><span class="lineNum"> 55</span> : }</span> <span id="L55"><span class="lineNum"> 55</span> : }</span>
<span id="L56"><span class="lineNum"> 56</span> : }</span> <span id="L56"><span class="lineNum"> 56</span> : }</span>
<span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 3641 : auto arff = ArffFiles();</span></span> <span id="L57"><span class="lineNum"> 57</span> <span class="tlaGNC"> 1324 : auto arff = ArffFiles();</span></span>
<span id="L58"><span class="lineNum"> 58</span> <span class="tlaGNC"> 3641 : auto yxv = arff.factorize(yJoinParents);</span></span> <span id="L58"><span class="lineNum"> 58</span> <span class="tlaGNC"> 1324 : auto yxv = arff.factorize(yJoinParents);</span></span>
<span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 7282 : auto xvf_ptr = Xf.index({ index }).data_ptr&lt;float&gt;();</span></span> <span id="L59"><span class="lineNum"> 59</span> <span class="tlaGNC"> 2648 : auto xvf_ptr = Xf.index({ index }).data_ptr&lt;float&gt;();</span></span>
<span id="L60"><span class="lineNum"> 60</span> <span class="tlaGNC"> 3641 : auto xvf = std::vector&lt;mdlp::precision_t&gt;(xvf_ptr, xvf_ptr + Xf.size(1));</span></span> <span id="L60"><span class="lineNum"> 60</span> <span class="tlaGNC"> 1324 : auto xvf = std::vector&lt;mdlp::precision_t&gt;(xvf_ptr, xvf_ptr + Xf.size(1));</span></span>
<span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 3641 : discretizers[feature]-&gt;fit(xvf, yxv);</span></span> <span id="L61"><span class="lineNum"> 61</span> <span class="tlaGNC"> 1324 : discretizers[feature]-&gt;fit(xvf, yxv);</span></span>
<span id="L62"><span class="lineNum"> 62</span> <span class="tlaGNC"> 4961 : }</span></span> <span id="L62"><span class="lineNum"> 62</span> <span class="tlaGNC"> 1804 : }</span></span>
<span id="L63"><span class="lineNum"> 63</span> <span class="tlaGNC"> 583 : if (upgrade) {</span></span> <span id="L63"><span class="lineNum"> 63</span> <span class="tlaGNC"> 212 : if (upgrade) {</span></span>
<span id="L64"><span class="lineNum"> 64</span> : // Discretize again X (only the affected indices) with the new fitted discretizers</span> <span id="L64"><span class="lineNum"> 64</span> : // Discretize again X (only the affected indices) with the new fitted discretizers</span>
<span id="L65"><span class="lineNum"> 65</span> <span class="tlaGNC"> 4224 : for (auto index : indicesToReDiscretize) {</span></span> <span id="L65"><span class="lineNum"> 65</span> <span class="tlaGNC"> 1536 : for (auto index : indicesToReDiscretize) {</span></span>
<span id="L66"><span class="lineNum"> 66</span> <span class="tlaGNC"> 7282 : auto Xt_ptr = Xf.index({ index }).data_ptr&lt;float&gt;();</span></span> <span id="L66"><span class="lineNum"> 66</span> <span class="tlaGNC"> 2648 : auto Xt_ptr = Xf.index({ index }).data_ptr&lt;float&gt;();</span></span>
<span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 3641 : auto Xt = std::vector&lt;float&gt;(Xt_ptr, Xt_ptr + Xf.size(1));</span></span> <span id="L67"><span class="lineNum"> 67</span> <span class="tlaGNC"> 1324 : auto Xt = std::vector&lt;float&gt;(Xt_ptr, Xt_ptr + Xf.size(1));</span></span>
<span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 14564 : pDataset.index_put_({ index, &quot;...&quot; }, torch::tensor(discretizers[pFeatures[index]]-&gt;transform(Xt)));</span></span> <span id="L68"><span class="lineNum"> 68</span> <span class="tlaGNC"> 5296 : pDataset.index_put_({ index, &quot;...&quot; }, torch::tensor(discretizers[pFeatures[index]]-&gt;transform(Xt)));</span></span>
<span id="L69"><span class="lineNum"> 69</span> <span class="tlaGNC"> 3641 : auto xStates = std::vector&lt;int&gt;(discretizers[pFeatures[index]]-&gt;getCutPoints().size() + 1);</span></span> <span id="L69"><span class="lineNum"> 69</span> <span class="tlaGNC"> 1324 : auto xStates = std::vector&lt;int&gt;(discretizers[pFeatures[index]]-&gt;getCutPoints().size() + 1);</span></span>
<span id="L70"><span class="lineNum"> 70</span> <span class="tlaGNC"> 3641 : iota(xStates.begin(), xStates.end(), 0);</span></span> <span id="L70"><span class="lineNum"> 70</span> <span class="tlaGNC"> 1324 : iota(xStates.begin(), xStates.end(), 0);</span></span>
<span id="L71"><span class="lineNum"> 71</span> : //Update new states of the feature/node</span> <span id="L71"><span class="lineNum"> 71</span> : //Update new states of the feature/node</span>
<span id="L72"><span class="lineNum"> 72</span> <span class="tlaGNC"> 3641 : states[pFeatures[index]] = xStates;</span></span> <span id="L72"><span class="lineNum"> 72</span> <span class="tlaGNC"> 1324 : states[pFeatures[index]] = xStates;</span></span>
<span id="L73"><span class="lineNum"> 73</span> <span class="tlaGNC"> 3641 : }</span></span> <span id="L73"><span class="lineNum"> 73</span> <span class="tlaGNC"> 1324 : }</span></span>
<span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 583 : const torch::Tensor weights = torch::full({ pDataset.size(1) }, 1.0 / pDataset.size(1), torch::kDouble);</span></span> <span id="L74"><span class="lineNum"> 74</span> <span class="tlaGNC"> 212 : const torch::Tensor weights = torch::full({ pDataset.size(1) }, 1.0 / pDataset.size(1), torch::kDouble);</span></span>
<span id="L75"><span class="lineNum"> 75</span> <span class="tlaGNC"> 583 : model.fit(pDataset, weights, pFeatures, pClassName, states);</span></span> <span id="L75"><span class="lineNum"> 75</span> <span class="tlaGNC"> 212 : model.fit(pDataset, weights, pFeatures, pClassName, states);</span></span>
<span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 583 : }</span></span> <span id="L76"><span class="lineNum"> 76</span> <span class="tlaGNC"> 212 : }</span></span>
<span id="L77"><span class="lineNum"> 77</span> <span class="tlaGNC"> 1166 : return states;</span></span> <span id="L77"><span class="lineNum"> 77</span> <span class="tlaGNC"> 424 : return states;</span></span>
<span id="L78"><span class="lineNum"> 78</span> <span class="tlaGNC"> 2640352 : }</span></span> <span id="L78"><span class="lineNum"> 78</span> <span class="tlaGNC"> 960128 : }</span></span>
<span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 638 : map&lt;std::string, std::vector&lt;int&gt;&gt; Proposal::fit_local_discretization(const torch::Tensor&amp; y)</span></span> <span id="L79"><span class="lineNum"> 79</span> <span class="tlaGNC"> 232 : map&lt;std::string, std::vector&lt;int&gt;&gt; Proposal::fit_local_discretization(const torch::Tensor&amp; y)</span></span>
<span id="L80"><span class="lineNum"> 80</span> : {</span> <span id="L80"><span class="lineNum"> 80</span> : {</span>
<span id="L81"><span class="lineNum"> 81</span> : // Discretize the continuous input data and build pDataset (Classifier::dataset)</span> <span id="L81"><span class="lineNum"> 81</span> : // Discretize the continuous input data and build pDataset (Classifier::dataset)</span>
<span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 638 : int m = Xf.size(1);</span></span> <span id="L82"><span class="lineNum"> 82</span> <span class="tlaGNC"> 232 : int m = Xf.size(1);</span></span>
<span id="L83"><span class="lineNum"> 83</span> <span class="tlaGNC"> 638 : int n = Xf.size(0);</span></span> <span id="L83"><span class="lineNum"> 83</span> <span class="tlaGNC"> 232 : int n = Xf.size(0);</span></span>
<span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 638 : map&lt;std::string, std::vector&lt;int&gt;&gt; states;</span></span> <span id="L84"><span class="lineNum"> 84</span> <span class="tlaGNC"> 232 : map&lt;std::string, std::vector&lt;int&gt;&gt; states;</span></span>
<span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 638 : pDataset = torch::zeros({ n + 1, m }, torch::kInt32);</span></span> <span id="L85"><span class="lineNum"> 85</span> <span class="tlaGNC"> 232 : pDataset = torch::zeros({ n + 1, m }, torch::kInt32);</span></span>
<span id="L86"><span class="lineNum"> 86</span> <span class="tlaGNC"> 638 : auto yv = std::vector&lt;int&gt;(y.data_ptr&lt;int&gt;(), y.data_ptr&lt;int&gt;() + y.size(0));</span></span> <span id="L86"><span class="lineNum"> 86</span> <span class="tlaGNC"> 232 : auto yv = std::vector&lt;int&gt;(y.data_ptr&lt;int&gt;(), y.data_ptr&lt;int&gt;() + y.size(0));</span></span>
<span id="L87"><span class="lineNum"> 87</span> : // discretize input data by feature(row)</span> <span id="L87"><span class="lineNum"> 87</span> : // discretize input data by feature(row)</span>
<span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 5346 : for (auto i = 0; i &lt; pFeatures.size(); ++i) {</span></span> <span id="L88"><span class="lineNum"> 88</span> <span class="tlaGNC"> 1944 : for (auto i = 0; i &lt; pFeatures.size(); ++i) {</span></span>
<span id="L89"><span class="lineNum"> 89</span> <span class="tlaGNC"> 4708 : auto* discretizer = new mdlp::CPPFImdlp();</span></span> <span id="L89"><span class="lineNum"> 89</span> <span class="tlaGNC"> 1712 : auto* discretizer = new mdlp::CPPFImdlp();</span></span>
<span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 9416 : auto Xt_ptr = Xf.index({ i }).data_ptr&lt;float&gt;();</span></span> <span id="L90"><span class="lineNum"> 90</span> <span class="tlaGNC"> 3424 : auto Xt_ptr = Xf.index({ i }).data_ptr&lt;float&gt;();</span></span>
<span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 4708 : auto Xt = std::vector&lt;float&gt;(Xt_ptr, Xt_ptr + Xf.size(1));</span></span> <span id="L91"><span class="lineNum"> 91</span> <span class="tlaGNC"> 1712 : auto Xt = std::vector&lt;float&gt;(Xt_ptr, Xt_ptr + Xf.size(1));</span></span>
<span id="L92"><span class="lineNum"> 92</span> <span class="tlaGNC"> 4708 : discretizer-&gt;fit(Xt, yv);</span></span> <span id="L92"><span class="lineNum"> 92</span> <span class="tlaGNC"> 1712 : discretizer-&gt;fit(Xt, yv);</span></span>
<span id="L93"><span class="lineNum"> 93</span> <span class="tlaGNC"> 18832 : pDataset.index_put_({ i, &quot;...&quot; }, torch::tensor(discretizer-&gt;transform(Xt)));</span></span> <span id="L93"><span class="lineNum"> 93</span> <span class="tlaGNC"> 6848 : pDataset.index_put_({ i, &quot;...&quot; }, torch::tensor(discretizer-&gt;transform(Xt)));</span></span>
<span id="L94"><span class="lineNum"> 94</span> <span class="tlaGNC"> 4708 : auto xStates = std::vector&lt;int&gt;(discretizer-&gt;getCutPoints().size() + 1);</span></span> <span id="L94"><span class="lineNum"> 94</span> <span class="tlaGNC"> 1712 : auto xStates = std::vector&lt;int&gt;(discretizer-&gt;getCutPoints().size() + 1);</span></span>
<span id="L95"><span class="lineNum"> 95</span> <span class="tlaGNC"> 4708 : iota(xStates.begin(), xStates.end(), 0);</span></span> <span id="L95"><span class="lineNum"> 95</span> <span class="tlaGNC"> 1712 : iota(xStates.begin(), xStates.end(), 0);</span></span>
<span id="L96"><span class="lineNum"> 96</span> <span class="tlaGNC"> 4708 : states[pFeatures[i]] = xStates;</span></span> <span id="L96"><span class="lineNum"> 96</span> <span class="tlaGNC"> 1712 : states[pFeatures[i]] = xStates;</span></span>
<span id="L97"><span class="lineNum"> 97</span> <span class="tlaGNC"> 4708 : discretizers[pFeatures[i]] = discretizer;</span></span> <span id="L97"><span class="lineNum"> 97</span> <span class="tlaGNC"> 1712 : discretizers[pFeatures[i]] = discretizer;</span></span>
<span id="L98"><span class="lineNum"> 98</span> <span class="tlaGNC"> 4708 : }</span></span> <span id="L98"><span class="lineNum"> 98</span> <span class="tlaGNC"> 1712 : }</span></span>
<span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 638 : int n_classes = torch::max(y).item&lt;int&gt;() + 1;</span></span> <span id="L99"><span class="lineNum"> 99</span> <span class="tlaGNC"> 232 : int n_classes = torch::max(y).item&lt;int&gt;() + 1;</span></span>
<span id="L100"><span class="lineNum"> 100</span> <span class="tlaGNC"> 638 : auto yStates = std::vector&lt;int&gt;(n_classes);</span></span> <span id="L100"><span class="lineNum"> 100</span> <span class="tlaGNC"> 232 : auto yStates = std::vector&lt;int&gt;(n_classes);</span></span>
<span id="L101"><span class="lineNum"> 101</span> <span class="tlaGNC"> 638 : iota(yStates.begin(), yStates.end(), 0);</span></span> <span id="L101"><span class="lineNum"> 101</span> <span class="tlaGNC"> 232 : iota(yStates.begin(), yStates.end(), 0);</span></span>
<span id="L102"><span class="lineNum"> 102</span> <span class="tlaGNC"> 638 : states[pClassName] = yStates;</span></span> <span id="L102"><span class="lineNum"> 102</span> <span class="tlaGNC"> 232 : states[pClassName] = yStates;</span></span>
<span id="L103"><span class="lineNum"> 103</span> <span class="tlaGNC"> 1914 : pDataset.index_put_({ n, &quot;...&quot; }, y);</span></span> <span id="L103"><span class="lineNum"> 103</span> <span class="tlaGNC"> 696 : pDataset.index_put_({ n, &quot;...&quot; }, y);</span></span>
<span id="L104"><span class="lineNum"> 104</span> <span class="tlaGNC"> 1276 : return states;</span></span> <span id="L104"><span class="lineNum"> 104</span> <span class="tlaGNC"> 464 : return states;</span></span>
<span id="L105"><span class="lineNum"> 105</span> <span class="tlaGNC"> 10692 : }</span></span> <span id="L105"><span class="lineNum"> 105</span> <span class="tlaGNC"> 3888 : }</span></span>
<span id="L106"><span class="lineNum"> 106</span> <span class="tlaGNC"> 462 : torch::Tensor Proposal::prepareX(torch::Tensor&amp; X)</span></span> <span id="L106"><span class="lineNum"> 106</span> <span class="tlaGNC"> 168 : torch::Tensor Proposal::prepareX(torch::Tensor&amp; X)</span></span>
<span id="L107"><span class="lineNum"> 107</span> : {</span> <span id="L107"><span class="lineNum"> 107</span> : {</span>
<span id="L108"><span class="lineNum"> 108</span> <span class="tlaGNC"> 462 : auto Xtd = torch::zeros_like(X, torch::kInt32);</span></span> <span id="L108"><span class="lineNum"> 108</span> <span class="tlaGNC"> 168 : auto Xtd = torch::zeros_like(X, torch::kInt32);</span></span>
<span id="L109"><span class="lineNum"> 109</span> <span class="tlaGNC"> 3784 : for (int i = 0; i &lt; X.size(0); ++i) {</span></span> <span id="L109"><span class="lineNum"> 109</span> <span class="tlaGNC"> 1376 : for (int i = 0; i &lt; X.size(0); ++i) {</span></span>
<span id="L110"><span class="lineNum"> 110</span> <span class="tlaGNC"> 3322 : auto Xt = std::vector&lt;float&gt;(X[i].data_ptr&lt;float&gt;(), X[i].data_ptr&lt;float&gt;() + X.size(1));</span></span> <span id="L110"><span class="lineNum"> 110</span> <span class="tlaGNC"> 1208 : auto Xt = std::vector&lt;float&gt;(X[i].data_ptr&lt;float&gt;(), X[i].data_ptr&lt;float&gt;() + X.size(1));</span></span>
<span id="L111"><span class="lineNum"> 111</span> <span class="tlaGNC"> 3322 : auto Xd = discretizers[pFeatures[i]]-&gt;transform(Xt);</span></span> <span id="L111"><span class="lineNum"> 111</span> <span class="tlaGNC"> 1208 : auto Xd = discretizers[pFeatures[i]]-&gt;transform(Xt);</span></span>
<span id="L112"><span class="lineNum"> 112</span> <span class="tlaGNC"> 9966 : Xtd.index_put_({ i }, torch::tensor(Xd, torch::kInt32));</span></span> <span id="L112"><span class="lineNum"> 112</span> <span class="tlaGNC"> 3624 : Xtd.index_put_({ i }, torch::tensor(Xd, torch::kInt32));</span></span>
<span id="L113"><span class="lineNum"> 113</span> <span class="tlaGNC"> 3322 : }</span></span> <span id="L113"><span class="lineNum"> 113</span> <span class="tlaGNC"> 1208 : }</span></span>
<span id="L114"><span class="lineNum"> 114</span> <span class="tlaGNC"> 462 : return Xtd;</span></span> <span id="L114"><span class="lineNum"> 114</span> <span class="tlaGNC"> 336 : return Xtd;</span></span>
<span id="L115"><span class="lineNum"> 115</span> <span class="tlaGNC"> 3322 : }</span></span> <span id="L115"><span class="lineNum"> 115</span> <span class="tlaGNC"> 1376 : }</span></span>
<span id="L116"><span class="lineNum"> 116</span> : }</span> <span id="L116"><span class="lineNum"> 116</span> : }</span>
</pre> </pre>
</td> </td>

View File

@@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/Proposal.cc</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="Proposal.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="Proposal.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="Proposal.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="Proposal.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="Proposal.cc.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="Proposal.cc.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="Proposal.cc.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="Proposal.cc.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="Proposal.cc.gcov.html#L21" target="source" alt="overview">
<area shape="rect" coords="0,36,79,39" href="Proposal.cc.gcov.html#L25" target="source" alt="overview">
<area shape="rect" coords="0,40,79,43" href="Proposal.cc.gcov.html#L29" target="source" alt="overview">
<area shape="rect" coords="0,44,79,47" href="Proposal.cc.gcov.html#L33" target="source" alt="overview">
<area shape="rect" coords="0,48,79,51" href="Proposal.cc.gcov.html#L37" target="source" alt="overview">
<area shape="rect" coords="0,52,79,55" href="Proposal.cc.gcov.html#L41" target="source" alt="overview">
<area shape="rect" coords="0,56,79,59" href="Proposal.cc.gcov.html#L45" target="source" alt="overview">
<area shape="rect" coords="0,60,79,63" href="Proposal.cc.gcov.html#L49" target="source" alt="overview">
<area shape="rect" coords="0,64,79,67" href="Proposal.cc.gcov.html#L53" target="source" alt="overview">
<area shape="rect" coords="0,68,79,71" href="Proposal.cc.gcov.html#L57" target="source" alt="overview">
<area shape="rect" coords="0,72,79,75" href="Proposal.cc.gcov.html#L61" target="source" alt="overview">
<area shape="rect" coords="0,76,79,79" href="Proposal.cc.gcov.html#L65" target="source" alt="overview">
<area shape="rect" coords="0,80,79,83" href="Proposal.cc.gcov.html#L69" target="source" alt="overview">
<area shape="rect" coords="0,84,79,87" href="Proposal.cc.gcov.html#L73" target="source" alt="overview">
<area shape="rect" coords="0,88,79,91" href="Proposal.cc.gcov.html#L77" target="source" alt="overview">
<area shape="rect" coords="0,92,79,95" href="Proposal.cc.gcov.html#L81" target="source" alt="overview">
<area shape="rect" coords="0,96,79,99" href="Proposal.cc.gcov.html#L85" target="source" alt="overview">
<area shape="rect" coords="0,100,79,103" href="Proposal.cc.gcov.html#L89" target="source" alt="overview">
<area shape="rect" coords="0,104,79,107" href="Proposal.cc.gcov.html#L93" target="source" alt="overview">
<area shape="rect" coords="0,108,79,111" href="Proposal.cc.gcov.html#L97" target="source" alt="overview">
<area shape="rect" coords="0,112,79,115" href="Proposal.cc.gcov.html#L101" target="source" alt="overview">
</map>
<center>
<a href="Proposal.cc.gcov.html#top" target="source">Top</a><br><br>
<img src="Proposal.cc.gcov.png" width=80 height=115 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODE.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODE.cc<span style="font-size: 80%;"> (<a href="SPODE.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODE.cc<span style="font-size: 80%;"> (<a href="SPODE.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">3</td> <td class="headerCovTableEntry">3</td>
<td class="headerCovTableEntry">3</td> <td class="headerCovTableEntry">3</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,23 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.cc.gcov.html#L24">_ZNK8bayesnet5SPODE5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="SPODE.cc.gcov.html#L24">bayesnet::SPODE::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">187</td> <td class="coverFnHi">68</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.cc.gcov.html#L11">_ZN8bayesnet5SPODE10buildModelERKN2at6TensorE</a></td> <td class="coverFn"><a href="SPODE.cc.gcov.html#L11">bayesnet::SPODE::buildModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">2665</td> <td class="coverFnHi">1016</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.cc.gcov.html#L9">_ZN8bayesnet5SPODEC2Ei</a></td> <td class="coverFn"><a href="SPODE.cc.gcov.html#L9">bayesnet::SPODE::SPODE(int)</a></td>
<td class="coverFnHi">2962</td> <td class="coverFnHi">1124</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODE.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODE.cc<span style="font-size: 80%;"> (<a href="SPODE.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODE.cc<span style="font-size: 80%;"> (<a href="SPODE.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">3</td> <td class="headerCovTableEntry">3</td>
<td class="headerCovTableEntry">3</td> <td class="headerCovTableEntry">3</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,23 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.cc.gcov.html#L11">_ZN8bayesnet5SPODE10buildModelERKN2at6TensorE</a></td> <td class="coverFn"><a href="SPODE.cc.gcov.html#L9">bayesnet::SPODE::SPODE(int)</a></td>
<td class="coverFnHi">2665</td> <td class="coverFnHi">1124</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.cc.gcov.html#L9">_ZN8bayesnet5SPODEC2Ei</a></td> <td class="coverFn"><a href="SPODE.cc.gcov.html#L11">bayesnet::SPODE::buildModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">2962</td> <td class="coverFnHi">1016</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.cc.gcov.html#L24">_ZNK8bayesnet5SPODE5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="SPODE.cc.gcov.html#L24">bayesnet::SPODE::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">187</td> <td class="coverFnHi">68</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="SPODE.cc.gcov.overview.html" name="overview">
<frame src="SPODE.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODE.cc</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODE.cc<span style="font-size: 80%;"> (source / <a href="SPODE.cc.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODE.cc<span style="font-size: 80%;"> (source / <a href="SPODE.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">3</td> <td class="headerCovTableEntry">3</td>
<td class="headerCovTableEntry">3</td> <td class="headerCovTableEntry">3</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -70,24 +78,24 @@
<span id="L8"><span class="lineNum"> 8</span> : </span> <span id="L8"><span class="lineNum"> 8</span> : </span>
<span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span> <span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span>
<span id="L10"><span class="lineNum"> 10</span> : </span> <span id="L10"><span class="lineNum"> 10</span> : </span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 2962 : SPODE::SPODE(int root) : Classifier(Network()), root(root) {}</span></span> <span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 1124 : SPODE::SPODE(int root) : Classifier(Network()), root(root) {}</span></span>
<span id="L12"><span class="lineNum"> 12</span> : </span> <span id="L12"><span class="lineNum"> 12</span> : </span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 2665 : void SPODE::buildModel(const torch::Tensor&amp; weights)</span></span> <span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 1016 : void SPODE::buildModel(const torch::Tensor&amp; weights)</span></span>
<span id="L14"><span class="lineNum"> 14</span> : {</span> <span id="L14"><span class="lineNum"> 14</span> : {</span>
<span id="L15"><span class="lineNum"> 15</span> : // 0. Add all nodes to the model</span> <span id="L15"><span class="lineNum"> 15</span> : // 0. Add all nodes to the model</span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 2665 : addNodes();</span></span> <span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 1016 : addNodes();</span></span>
<span id="L17"><span class="lineNum"> 17</span> : // 1. Add edges from the class node to all other nodes</span> <span id="L17"><span class="lineNum"> 17</span> : // 1. Add edges from the class node to all other nodes</span>
<span id="L18"><span class="lineNum"> 18</span> : // 2. Add edges from the root node to all other nodes</span> <span id="L18"><span class="lineNum"> 18</span> : // 2. Add edges from the root node to all other nodes</span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 113941 : for (int i = 0; i &lt; static_cast&lt;int&gt;(features.size()); ++i) {</span></span> <span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 25680 : for (int i = 0; i &lt; static_cast&lt;int&gt;(features.size()); ++i) {</span></span>
<span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 111276 : model.addEdge(className, features[i]);</span></span> <span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 24664 : model.addEdge(className, features[i]);</span></span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 111276 : if (i != root) {</span></span> <span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 24664 : if (i != root) {</span></span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 108611 : model.addEdge(features[root], features[i]);</span></span> <span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 23648 : model.addEdge(features[root], features[i]);</span></span>
<span id="L23"><span class="lineNum"> 23</span> : }</span> <span id="L23"><span class="lineNum"> 23</span> : }</span>
<span id="L24"><span class="lineNum"> 24</span> : }</span> <span id="L24"><span class="lineNum"> 24</span> : }</span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 2665 : }</span></span> <span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 1016 : }</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 187 : std::vector&lt;std::string&gt; SPODE::graph(const std::string&amp; name) const</span></span> <span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 68 : std::vector&lt;std::string&gt; SPODE::graph(const std::string&amp; name) const</span></span>
<span id="L27"><span class="lineNum"> 27</span> : {</span> <span id="L27"><span class="lineNum"> 27</span> : {</span>
<span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 187 : return model.graph(name);</span></span> <span id="L28"><span class="lineNum"> 28</span> <span class="tlaGNC"> 68 : return model.graph(name);</span></span>
<span id="L29"><span class="lineNum"> 29</span> : }</span> <span id="L29"><span class="lineNum"> 29</span> : }</span>
<span id="L30"><span class="lineNum"> 30</span> : </span> <span id="L30"><span class="lineNum"> 30</span> : </span>
<span id="L31"><span class="lineNum"> 31</span> : }</span> <span id="L31"><span class="lineNum"> 31</span> : }</span>

View File

@@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.cc</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="SPODE.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="SPODE.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="SPODE.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="SPODE.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="SPODE.cc.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="SPODE.cc.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="SPODE.cc.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="SPODE.cc.gcov.html#L17" target="source" alt="overview">
</map>
<center>
<a href="SPODE.cc.gcov.html#top" target="source">Top</a><br><br>
<img src="SPODE.cc.gcov.png" width=80 height=30 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODE.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODE.h<span style="font-size: 80%;"> (<a href="SPODE.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODE.h<span style="font-size: 80%;"> (<a href="SPODE.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.h.gcov.html#L17">_ZN8bayesnet5SPODED0Ev</a></td> <td class="coverFn"><a href="SPODE.h.gcov.html#L17">bayesnet::SPODE::~SPODE()</a></td>
<td class="coverFnHi">337</td> <td class="coverFnHi">1836</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODE.h.gcov.html#L17">_ZN8bayesnet5SPODED0Ev</a></td>
<td class="coverFnAliasHi">148</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODE.h.gcov.html#L17">_ZN8bayesnet5SPODED2Ev</a></td>
<td class="coverFnAliasHi">189</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODE.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODE.h<span style="font-size: 80%;"> (<a href="SPODE.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODE.h<span style="font-size: 80%;"> (<a href="SPODE.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODE.h.gcov.html#L17">_ZN8bayesnet5SPODED0Ev</a></td> <td class="coverFn"><a href="SPODE.h.gcov.html#L17">bayesnet::SPODE::~SPODE()</a></td>
<td class="coverFnHi">337</td> <td class="coverFnHi">1836</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODE.h.gcov.html#L17">_ZN8bayesnet5SPODED0Ev</a></td>
<td class="coverFnAliasHi">148</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODE.h.gcov.html#L17">_ZN8bayesnet5SPODED2Ev</a></td>
<td class="coverFnAliasHi">189</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="SPODE.h.gcov.overview.html" name="overview">
<frame src="SPODE.h.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODE.h</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODE.h<span style="font-size: 80%;"> (source / <a href="SPODE.h.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODE.h<span style="font-size: 80%;"> (source / <a href="SPODE.h.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -78,7 +86,7 @@
<span id="L16"><span class="lineNum"> 16</span> : void buildModel(const torch::Tensor&amp; weights) override;</span> <span id="L16"><span class="lineNum"> 16</span> : void buildModel(const torch::Tensor&amp; weights) override;</span>
<span id="L17"><span class="lineNum"> 17</span> : public:</span> <span id="L17"><span class="lineNum"> 17</span> : public:</span>
<span id="L18"><span class="lineNum"> 18</span> : explicit SPODE(int root);</span> <span id="L18"><span class="lineNum"> 18</span> : explicit SPODE(int root);</span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC tlaBgGNC"> 337 : virtual ~SPODE() = default;</span></span> <span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC tlaBgGNC"> 1836 : virtual ~SPODE() = default;</span></span>
<span id="L20"><span class="lineNum"> 20</span> : std::vector&lt;std::string&gt; graph(const std::string&amp; name = &quot;SPODE&quot;) const override;</span> <span id="L20"><span class="lineNum"> 20</span> : std::vector&lt;std::string&gt; graph(const std::string&amp; name = &quot;SPODE&quot;) const override;</span>
<span id="L21"><span class="lineNum"> 21</span> : };</span> <span id="L21"><span class="lineNum"> 21</span> : };</span>
<span id="L22"><span class="lineNum"> 22</span> : }</span> <span id="L22"><span class="lineNum"> 22</span> : }</span>

View File

@@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODE.h</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="SPODE.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="SPODE.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="SPODE.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="SPODE.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="SPODE.h.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="SPODE.h.gcov.html#L9" target="source" alt="overview">
</map>
<center>
<a href="SPODE.h.gcov.html#top" target="source">Top</a><br><br>
<img src="SPODE.h.gcov.png" width=80 height=22 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODELd.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODELd.cc<span style="font-size: 80%;"> (<a href="SPODELd.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODELd.cc<span style="font-size: 80%;"> (<a href="SPODELd.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">6</td> <td class="headerCovTableEntry">6</td>
<td class="headerCovTableEntry">6</td> <td class="headerCovTableEntry">6</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,44 +71,44 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L17">_ZN8bayesnet7SPODELd3fitERN2at6TensorERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L17">bayesnet::SPODELd::fit(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">22</td> <td class="coverFnHi">8</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L44">_ZNK8bayesnet7SPODELd5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L44">bayesnet::SPODELd::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">99</td> <td class="coverFnHi">36</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L39">_ZN8bayesnet7SPODELd7predictERN2at6TensorE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L39">bayesnet::SPODELd::predict(at::Tensor&amp;)</a></td>
<td class="coverFnHi">374</td> <td class="coverFnHi">136</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L9">_ZN8bayesnet7SPODELd3fitERN2at6TensorES3_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L9">bayesnet::SPODELd::fit(at::Tensor&amp;, at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">462</td> <td class="coverFnHi">168</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L27">_ZN8bayesnet7SPODELd9commonFitERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_RSt3mapIS7_S1_IiSaIiEESt4lessIS7_ESaISt4pairISC_SG_EEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L27">bayesnet::SPODELd::commonFit(std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">473</td> <td class="coverFnHi">172</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L8">_ZN8bayesnet7SPODELdC2Ei</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L8">bayesnet::SPODELd::SPODELd(int)</a></td>
<td class="coverFnHi">605</td> <td class="coverFnHi">220</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODELd.cc - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODELd.cc<span style="font-size: 80%;"> (<a href="SPODELd.cc.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODELd.cc<span style="font-size: 80%;"> (<a href="SPODELd.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">6</td> <td class="headerCovTableEntry">6</td>
<td class="headerCovTableEntry">6</td> <td class="headerCovTableEntry">6</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,44 +71,44 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L17">_ZN8bayesnet7SPODELd3fitERN2at6TensorERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L8">bayesnet::SPODELd::SPODELd(int)</a></td>
<td class="coverFnHi">22</td> <td class="coverFnHi">220</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L9">_ZN8bayesnet7SPODELd3fitERN2at6TensorES3_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EERKSA_RSt3mapISA_S4_IiSaIiEESt4lessISA_ESaISt4pairISF_SJ_EEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L27">bayesnet::SPODELd::commonFit(std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">462</td> <td class="coverFnHi">172</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L39">_ZN8bayesnet7SPODELd7predictERN2at6TensorE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L9">bayesnet::SPODELd::fit(at::Tensor&amp;, at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">374</td> <td class="coverFnHi">168</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L27">_ZN8bayesnet7SPODELd9commonFitERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_RSt3mapIS7_S1_IiSaIiEESt4lessIS7_ESaISt4pairISC_SG_EEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L17">bayesnet::SPODELd::fit(at::Tensor&amp;, std::vector&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::allocator&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt; const&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, std::map&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;, std::less&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, std::allocator&lt;std::pair&lt;std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const, std::vector&lt;int, std::allocator&lt;int&gt; &gt; &gt; &gt; &gt;&amp;)</a></td>
<td class="coverFnHi">473</td> <td class="coverFnHi">8</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L8">_ZN8bayesnet7SPODELdC2Ei</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L44">bayesnet::SPODELd::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">605</td> <td class="coverFnHi">36</td>
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.cc.gcov.html#L44">_ZNK8bayesnet7SPODELd5graphERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE</a></td> <td class="coverFn"><a href="SPODELd.cc.gcov.html#L39">bayesnet::SPODELd::predict(at::Tensor&amp;)</a></td>
<td class="coverFnHi">99</td> <td class="coverFnHi">136</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="SPODELd.cc.gcov.overview.html" name="overview">
<frame src="SPODELd.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODELd.cc</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODELd.cc<span style="font-size: 80%;"> (source / <a href="SPODELd.cc.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODELd.cc<span style="font-size: 80%;"> (source / <a href="SPODELd.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">6</td> <td class="headerCovTableEntry">6</td>
<td class="headerCovTableEntry">6</td> <td class="headerCovTableEntry">6</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -69,45 +77,45 @@
<span id="L7"><span class="lineNum"> 7</span> : #include &quot;SPODELd.h&quot;</span> <span id="L7"><span class="lineNum"> 7</span> : #include &quot;SPODELd.h&quot;</span>
<span id="L8"><span class="lineNum"> 8</span> : </span> <span id="L8"><span class="lineNum"> 8</span> : </span>
<span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span> <span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span>
<span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 605 : SPODELd::SPODELd(int root) : SPODE(root), Proposal(dataset, features, className) {}</span></span> <span id="L10"><span class="lineNum"> 10</span> <span class="tlaGNC tlaBgGNC"> 220 : SPODELd::SPODELd(int root) : SPODE(root), Proposal(dataset, features, className) {}</span></span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 462 : SPODELd&amp; SPODELd::fit(torch::Tensor&amp; X_, torch::Tensor&amp; y_, const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span> <span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC"> 168 : SPODELd&amp; SPODELd::fit(torch::Tensor&amp; X_, torch::Tensor&amp; y_, const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span>
<span id="L12"><span class="lineNum"> 12</span> : {</span> <span id="L12"><span class="lineNum"> 12</span> : {</span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 462 : checkInput(X_, y_);</span></span> <span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 168 : checkInput(X_, y_);</span></span>
<span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 462 : Xf = X_;</span></span> <span id="L14"><span class="lineNum"> 14</span> <span class="tlaGNC"> 168 : Xf = X_;</span></span>
<span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 462 : y = y_;</span></span> <span id="L15"><span class="lineNum"> 15</span> <span class="tlaGNC"> 168 : y = y_;</span></span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 462 : return commonFit(features_, className_, states_);</span></span> <span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 168 : return commonFit(features_, className_, states_);</span></span>
<span id="L17"><span class="lineNum"> 17</span> : }</span> <span id="L17"><span class="lineNum"> 17</span> : }</span>
<span id="L18"><span class="lineNum"> 18</span> : </span> <span id="L18"><span class="lineNum"> 18</span> : </span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 22 : SPODELd&amp; SPODELd::fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span> <span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 8 : SPODELd&amp; SPODELd::fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span>
<span id="L20"><span class="lineNum"> 20</span> : {</span> <span id="L20"><span class="lineNum"> 20</span> : {</span>
<span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 22 : if (!torch::is_floating_point(dataset)) {</span></span> <span id="L21"><span class="lineNum"> 21</span> <span class="tlaGNC"> 8 : if (!torch::is_floating_point(dataset)) {</span></span>
<span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 11 : throw std::runtime_error(&quot;Dataset must be a floating point tensor&quot;);</span></span> <span id="L22"><span class="lineNum"> 22</span> <span class="tlaGNC"> 4 : throw std::runtime_error(&quot;Dataset must be a floating point tensor&quot;);</span></span>
<span id="L23"><span class="lineNum"> 23</span> : }</span> <span id="L23"><span class="lineNum"> 23</span> : }</span>
<span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 44 : Xf = dataset.index({ torch::indexing::Slice(0, dataset.size(0) - 1), &quot;...&quot; }).clone();</span></span> <span id="L24"><span class="lineNum"> 24</span> <span class="tlaGNC"> 16 : Xf = dataset.index({ torch::indexing::Slice(0, dataset.size(0) - 1), &quot;...&quot; }).clone();</span></span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 33 : y = dataset.index({ -1, &quot;...&quot; }).clone().to(torch::kInt32);</span></span> <span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 12 : y = dataset.index({ -1, &quot;...&quot; }).clone().to(torch::kInt32);</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 11 : return commonFit(features_, className_, states_);</span></span> <span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 4 : return commonFit(features_, className_, states_);</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 33 : }</span></span> <span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 12 : }</span></span>
<span id="L28"><span class="lineNum"> 28</span> : </span> <span id="L28"><span class="lineNum"> 28</span> : </span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 473 : SPODELd&amp; SPODELd::commonFit(const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span> <span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 172 : SPODELd&amp; SPODELd::commonFit(const std::vector&lt;std::string&gt;&amp; features_, const std::string&amp; className_, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states_)</span></span>
<span id="L30"><span class="lineNum"> 30</span> : {</span> <span id="L30"><span class="lineNum"> 30</span> : {</span>
<span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 473 : features = features_;</span></span> <span id="L31"><span class="lineNum"> 31</span> <span class="tlaGNC"> 172 : features = features_;</span></span>
<span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 473 : className = className_;</span></span> <span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 172 : className = className_;</span></span>
<span id="L33"><span class="lineNum"> 33</span> : // Fills std::vectors Xv &amp; yv with the data from tensors X_ (discretized) &amp; y</span> <span id="L33"><span class="lineNum"> 33</span> : // Fills std::vectors Xv &amp; yv with the data from tensors X_ (discretized) &amp; y</span>
<span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 473 : states = fit_local_discretization(y);</span></span> <span id="L34"><span class="lineNum"> 34</span> <span class="tlaGNC"> 172 : states = fit_local_discretization(y);</span></span>
<span id="L35"><span class="lineNum"> 35</span> : // We have discretized the input data</span> <span id="L35"><span class="lineNum"> 35</span> : // We have discretized the input data</span>
<span id="L36"><span class="lineNum"> 36</span> : // 1st we need to fit the model to build the normal SPODE structure, SPODE::fit initializes the base Bayesian network</span> <span id="L36"><span class="lineNum"> 36</span> : // 1st we need to fit the model to build the normal SPODE structure, SPODE::fit initializes the base Bayesian network</span>
<span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 473 : SPODE::fit(dataset, features, className, states);</span></span> <span id="L37"><span class="lineNum"> 37</span> <span class="tlaGNC"> 172 : SPODE::fit(dataset, features, className, states);</span></span>
<span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 473 : states = localDiscretizationProposal(states, model);</span></span> <span id="L38"><span class="lineNum"> 38</span> <span class="tlaGNC"> 172 : states = localDiscretizationProposal(states, model);</span></span>
<span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 473 : return *this;</span></span> <span id="L39"><span class="lineNum"> 39</span> <span class="tlaGNC"> 172 : return *this;</span></span>
<span id="L40"><span class="lineNum"> 40</span> : }</span> <span id="L40"><span class="lineNum"> 40</span> : }</span>
<span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 374 : torch::Tensor SPODELd::predict(torch::Tensor&amp; X)</span></span> <span id="L41"><span class="lineNum"> 41</span> <span class="tlaGNC"> 136 : torch::Tensor SPODELd::predict(torch::Tensor&amp; X)</span></span>
<span id="L42"><span class="lineNum"> 42</span> : {</span> <span id="L42"><span class="lineNum"> 42</span> : {</span>
<span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 374 : auto Xt = prepareX(X);</span></span> <span id="L43"><span class="lineNum"> 43</span> <span class="tlaGNC"> 136 : auto Xt = prepareX(X);</span></span>
<span id="L44"><span class="lineNum"> 44</span> <span class="tlaGNC"> 748 : return SPODE::predict(Xt);</span></span> <span id="L44"><span class="lineNum"> 44</span> <span class="tlaGNC"> 272 : return SPODE::predict(Xt);</span></span>
<span id="L45"><span class="lineNum"> 45</span> <span class="tlaGNC"> 374 : }</span></span> <span id="L45"><span class="lineNum"> 45</span> <span class="tlaGNC"> 136 : }</span></span>
<span id="L46"><span class="lineNum"> 46</span> <span class="tlaGNC"> 99 : std::vector&lt;std::string&gt; SPODELd::graph(const std::string&amp; name) const</span></span> <span id="L46"><span class="lineNum"> 46</span> <span class="tlaGNC"> 36 : std::vector&lt;std::string&gt; SPODELd::graph(const std::string&amp; name) const</span></span>
<span id="L47"><span class="lineNum"> 47</span> : {</span> <span id="L47"><span class="lineNum"> 47</span> : {</span>
<span id="L48"><span class="lineNum"> 48</span> <span class="tlaGNC"> 99 : return SPODE::graph(name);</span></span> <span id="L48"><span class="lineNum"> 48</span> <span class="tlaGNC"> 36 : return SPODE::graph(name);</span></span>
<span id="L49"><span class="lineNum"> 49</span> : }</span> <span id="L49"><span class="lineNum"> 49</span> : }</span>
<span id="L50"><span class="lineNum"> 50</span> : }</span> <span id="L50"><span class="lineNum"> 50</span> : }</span>
</pre> </pre>

View File

@@ -0,0 +1,33 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.cc</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="SPODELd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="SPODELd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="SPODELd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="SPODELd.cc.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="SPODELd.cc.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="SPODELd.cc.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="SPODELd.cc.gcov.html#L13" target="source" alt="overview">
<area shape="rect" coords="0,28,79,31" href="SPODELd.cc.gcov.html#L17" target="source" alt="overview">
<area shape="rect" coords="0,32,79,35" href="SPODELd.cc.gcov.html#L21" target="source" alt="overview">
<area shape="rect" coords="0,36,79,39" href="SPODELd.cc.gcov.html#L25" target="source" alt="overview">
<area shape="rect" coords="0,40,79,43" href="SPODELd.cc.gcov.html#L29" target="source" alt="overview">
<area shape="rect" coords="0,44,79,47" href="SPODELd.cc.gcov.html#L33" target="source" alt="overview">
<area shape="rect" coords="0,48,79,51" href="SPODELd.cc.gcov.html#L37" target="source" alt="overview">
</map>
<center>
<a href="SPODELd.cc.gcov.html#top" target="source">Top</a><br><br>
<img src="SPODELd.cc.gcov.png" width=80 height=49 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODELd.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODELd.h<span style="font-size: 80%;"> (<a href="SPODELd.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODELd.h<span style="font-size: 80%;"> (<a href="SPODELd.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.h.gcov.html#L14">_ZN8bayesnet7SPODELdD0Ev</a></td> <td class="coverFn"><a href="SPODELd.h.gcov.html#L14">bayesnet::SPODELd::~SPODELd()</a></td>
<td class="coverFnHi">80</td> <td class="coverFnHi">320</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODELd.h.gcov.html#L14">_ZN8bayesnet7SPODELdD0Ev</a></td>
<td class="coverFnAliasHi">39</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODELd.h.gcov.html#L14">_ZN8bayesnet7SPODELdD2Ev</a></td>
<td class="coverFnAliasHi">41</td>
</tr> </tr>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODELd.h - functions</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.h - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODELd.h<span style="font-size: 80%;"> (<a href="SPODELd.h.gcov.html">source</a> / functions)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODELd.h<span style="font-size: 80%;"> (<a href="SPODELd.h.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -63,23 +71,9 @@
</tr> </tr>
<tr> <tr>
<td class="coverFn"><a href="SPODELd.h.gcov.html#L14">_ZN8bayesnet7SPODELdD0Ev</a></td> <td class="coverFn"><a href="SPODELd.h.gcov.html#L14">bayesnet::SPODELd::~SPODELd()</a></td>
<td class="coverFnHi">80</td> <td class="coverFnHi">320</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODELd.h.gcov.html#L14">_ZN8bayesnet7SPODELdD0Ev</a></td>
<td class="coverFnAliasHi">39</td>
</tr>
<tr>
<td class="coverFnAlias"><a href="SPODELd.h.gcov.html#L14">_ZN8bayesnet7SPODELdD2Ev</a></td>
<td class="coverFnAliasHi">41</td>
</tr> </tr>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="SPODELd.h.gcov.overview.html" name="overview">
<frame src="SPODELd.h.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - coverage.info - bayesnet/classifiers/SPODELd.h</title> <title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.h</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css"> <link rel="stylesheet" type="text/css" href="../../gcov.css">
</head> </head>
@@ -19,7 +19,7 @@
<table cellpadding=1 border=0 width="100%"> <table cellpadding=1 border=0 width="100%">
<tr> <tr>
<td width="10%" class="headerItem">Current view:</td> <td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html">top level</a> - <a href="index.html">bayesnet/classifiers</a> - SPODELd.h<span style="font-size: 80%;"> (source / <a href="SPODELd.h.func-c.html">functions</a>)</span></td> <td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPODELd.h<span style="font-size: 80%;"> (source / <a href="SPODELd.h.func-c.html">functions</a>)</span></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%"></td> <td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td> <td width="5%" class="headerCovTableHead">Coverage</td>
@@ -28,7 +28,7 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test:</td> <td class="headerItem">Test:</td>
<td class="headerValue">coverage.info</td> <td class="headerValue">BayesNet Coverage Report</td>
<td></td> <td></td>
<td class="headerItem">Lines:</td> <td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
@@ -37,12 +37,20 @@
</tr> </tr>
<tr> <tr>
<td class="headerItem">Test Date:</td> <td class="headerItem">Test Date:</td>
<td class="headerValue">2024-04-29 20:48:03</td> <td class="headerValue">2024-05-06 17:54:04</td>
<td></td> <td></td>
<td class="headerItem">Functions:</td> <td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td> <td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
<td class="headerCovTableEntry">2</td> <td class="headerCovTableEntry">1</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr> </tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr> <tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table> </table>
@@ -75,7 +83,7 @@
<span id="L13"><span class="lineNum"> 13</span> : class SPODELd : public SPODE, public Proposal {</span> <span id="L13"><span class="lineNum"> 13</span> : class SPODELd : public SPODE, public Proposal {</span>
<span id="L14"><span class="lineNum"> 14</span> : public:</span> <span id="L14"><span class="lineNum"> 14</span> : public:</span>
<span id="L15"><span class="lineNum"> 15</span> : explicit SPODELd(int root);</span> <span id="L15"><span class="lineNum"> 15</span> : explicit SPODELd(int root);</span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC tlaBgGNC"> 80 : virtual ~SPODELd() = default;</span></span> <span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC tlaBgGNC"> 320 : virtual ~SPODELd() = default;</span></span>
<span id="L17"><span class="lineNum"> 17</span> : SPODELd&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span> <span id="L17"><span class="lineNum"> 17</span> : SPODELd&amp; fit(torch::Tensor&amp; X, torch::Tensor&amp; y, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span>
<span id="L18"><span class="lineNum"> 18</span> : SPODELd&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span> <span id="L18"><span class="lineNum"> 18</span> : SPODELd&amp; fit(torch::Tensor&amp; dataset, const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states) override;</span>
<span id="L19"><span class="lineNum"> 19</span> : SPODELd&amp; commonFit(const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states);</span> <span id="L19"><span class="lineNum"> 19</span> : SPODELd&amp; commonFit(const std::vector&lt;std::string&gt;&amp; features, const std::string&amp; className, map&lt;std::string, std::vector&lt;int&gt;&gt;&amp; states);</span>

View File

@@ -0,0 +1,27 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPODELd.h</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<map name="overview">
<area shape="rect" coords="0,0,79,3" href="SPODELd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,4,79,7" href="SPODELd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,8,79,11" href="SPODELd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,12,79,15" href="SPODELd.h.gcov.html#L1" target="source" alt="overview">
<area shape="rect" coords="0,16,79,19" href="SPODELd.h.gcov.html#L5" target="source" alt="overview">
<area shape="rect" coords="0,20,79,23" href="SPODELd.h.gcov.html#L9" target="source" alt="overview">
<area shape="rect" coords="0,24,79,27" href="SPODELd.h.gcov.html#L13" target="source" alt="overview">
</map>
<center>
<a href="SPODELd.h.gcov.html#top" target="source">Top</a><br><br>
<img src="SPODELd.h.gcov.png" width=80 height=24 alt="Overview" border=0 usemap="#overview">
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

View File

@@ -0,0 +1,104 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPnDE.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPnDE.cc<span style="font-size: 80%;"> (<a href="SPnDE.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">BayesNet Coverage Report</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">14</td>
<td class="headerCovTableEntry">14</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2024-05-06 17:54:04</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">3</td>
<td class="headerCovTableEntry">3</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><a href="SPnDE.cc.func.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></a></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></span></td>
</tr>
<tr>
<td class="coverFn"><a href="SPnDE.cc.gcov.html#L31">bayesnet::SPnDE::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">24</td>
</tr>
<tr>
<td class="coverFn"><a href="SPnDE.cc.gcov.html#L9">bayesnet::SPnDE::SPnDE(std::vector&lt;int, std::allocator&lt;int&gt; &gt;)</a></td>
<td class="coverFnHi">456</td>
</tr>
<tr>
<td class="coverFn"><a href="SPnDE.cc.gcov.html#L11">bayesnet::SPnDE::buildModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">456</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View File

@@ -0,0 +1,104 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPnDE.cc - functions</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPnDE.cc<span style="font-size: 80%;"> (<a href="SPnDE.cc.gcov.html">source</a> / functions)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">BayesNet Coverage Report</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">14</td>
<td class="headerCovTableEntry">14</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2024-05-06 17:54:04</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">3</td>
<td class="headerCovTableEntry">3</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<center>
<table cellpadding=1 cellspacing=1 border=0>
<tr><td><br></td></tr>
<tr>
<td class="tableHead">Function Name <span title="Click to sort table by function name" class="tableHeadSort"><img src="../../glass.png" width=10 height=14 alt="Sort by function name" title="Click to sort table by function name" border=0></span></td>
<td class="tableHead">Hit count <span title="Click to sort table by function hit count" class="tableHeadSort"><a href="SPnDE.cc.func-c.html"><img src="../../updown.png" width=10 height=14 alt="Sort by function hit count" title="Click to sort table by function hit count" border=0></a></span></td>
</tr>
<tr>
<td class="coverFn"><a href="SPnDE.cc.gcov.html#L9">bayesnet::SPnDE::SPnDE(std::vector&lt;int, std::allocator&lt;int&gt; &gt;)</a></td>
<td class="coverFnHi">456</td>
</tr>
<tr>
<td class="coverFn"><a href="SPnDE.cc.gcov.html#L11">bayesnet::SPnDE::buildModel(at::Tensor const&amp;)</a></td>
<td class="coverFnHi">456</td>
</tr>
<tr>
<td class="coverFn"><a href="SPnDE.cc.gcov.html#L31">bayesnet::SPnDE::graph(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) const</a></td>
<td class="coverFnHi">24</td>
</tr>
</table>
<br>
</center>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPnDE.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<frameset cols="120,*">
<frame src="SPnDE.cc.gcov.overview.html" name="overview">
<frame src="SPnDE.cc.gcov.html" name="source">
<noframes>
<center>Frames not supported by your browser!<br></center>
</noframes>
</frameset>
</html>

View File

@@ -0,0 +1,122 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LCOV - BayesNet Coverage Report - bayesnet/classifiers/SPnDE.cc</title>
<link rel="stylesheet" type="text/css" href="../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LCOV - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td width="10%" class="headerItem">Current view:</td>
<td width="10%" class="headerValue"><a href="../../index.html" target="_parent">top level</a> - <a href="index.html" target="_parent">bayesnet/classifiers</a> - SPnDE.cc<span style="font-size: 80%;"> (source / <a href="SPnDE.cc.func-c.html">functions</a>)</span></td>
<td width="5%"></td>
<td width="5%"></td>
<td width="5%" class="headerCovTableHead">Coverage</td>
<td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
<td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
</tr>
<tr>
<td class="headerItem">Test:</td>
<td class="headerValue">BayesNet Coverage Report</td>
<td></td>
<td class="headerItem">Lines:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">14</td>
<td class="headerCovTableEntry">14</td>
</tr>
<tr>
<td class="headerItem">Test Date:</td>
<td class="headerValue">2024-05-06 17:54:04</td>
<td></td>
<td class="headerItem">Functions:</td>
<td class="headerCovTableEntryHi">100.0&nbsp;%</td>
<td class="headerCovTableEntry">3</td>
<td class="headerCovTableEntry">3</td>
</tr>
<tr>
<td class="headerItem">Legend:</td>
<td class="headerValueLeg"> Lines:
<span class="coverLegendCov">hit</span>
<span class="coverLegendNoCov">not hit</span>
</td>
<td></td>
</tr>
<tr><td><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td>
<pre class="sourceHeading"> Line data Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum"> 1</span> : // ***************************************************************</span>
<span id="L2"><span class="lineNum"> 2</span> : // SPDX-FileCopyrightText: Copyright 2024 Ricardo Montañana Gómez</span>
<span id="L3"><span class="lineNum"> 3</span> : // SPDX-FileType: SOURCE</span>
<span id="L4"><span class="lineNum"> 4</span> : // SPDX-License-Identifier: MIT</span>
<span id="L5"><span class="lineNum"> 5</span> : // ***************************************************************</span>
<span id="L6"><span class="lineNum"> 6</span> : </span>
<span id="L7"><span class="lineNum"> 7</span> : #include &quot;SPnDE.h&quot;</span>
<span id="L8"><span class="lineNum"> 8</span> : </span>
<span id="L9"><span class="lineNum"> 9</span> : namespace bayesnet {</span>
<span id="L10"><span class="lineNum"> 10</span> : </span>
<span id="L11"><span class="lineNum"> 11</span> <span class="tlaGNC tlaBgGNC"> 456 : SPnDE::SPnDE(std::vector&lt;int&gt; parents) : Classifier(Network()), parents(parents) {}</span></span>
<span id="L12"><span class="lineNum"> 12</span> : </span>
<span id="L13"><span class="lineNum"> 13</span> <span class="tlaGNC"> 456 : void SPnDE::buildModel(const torch::Tensor&amp; weights)</span></span>
<span id="L14"><span class="lineNum"> 14</span> : {</span>
<span id="L15"><span class="lineNum"> 15</span> : // 0. Add all nodes to the model</span>
<span id="L16"><span class="lineNum"> 16</span> <span class="tlaGNC"> 456 : addNodes();</span></span>
<span id="L17"><span class="lineNum"> 17</span> <span class="tlaGNC"> 456 : std::vector&lt;int&gt; attributes;</span></span>
<span id="L18"><span class="lineNum"> 18</span> <span class="tlaGNC"> 4440 : for (int i = 0; i &lt; static_cast&lt;int&gt;(features.size()); ++i) {</span></span>
<span id="L19"><span class="lineNum"> 19</span> <span class="tlaGNC"> 3984 : if (std::find(parents.begin(), parents.end(), i) == parents.end()) {</span></span>
<span id="L20"><span class="lineNum"> 20</span> <span class="tlaGNC"> 3072 : attributes.push_back(i);</span></span>
<span id="L21"><span class="lineNum"> 21</span> : }</span>
<span id="L22"><span class="lineNum"> 22</span> : }</span>
<span id="L23"><span class="lineNum"> 23</span> : // 1. Add edges from the class node to all other nodes</span>
<span id="L24"><span class="lineNum"> 24</span> : // 2. Add edges from the parents nodes to all other nodes</span>
<span id="L25"><span class="lineNum"> 25</span> <span class="tlaGNC"> 3528 : for (const auto&amp; attribute : attributes) {</span></span>
<span id="L26"><span class="lineNum"> 26</span> <span class="tlaGNC"> 3072 : model.addEdge(className, features[attribute]);</span></span>
<span id="L27"><span class="lineNum"> 27</span> <span class="tlaGNC"> 9216 : for (const auto&amp; root : parents) {</span></span>
<span id="L28"><span class="lineNum"> 28</span> : </span>
<span id="L29"><span class="lineNum"> 29</span> <span class="tlaGNC"> 6144 : model.addEdge(features[root], features[attribute]);</span></span>
<span id="L30"><span class="lineNum"> 30</span> : }</span>
<span id="L31"><span class="lineNum"> 31</span> : }</span>
<span id="L32"><span class="lineNum"> 32</span> <span class="tlaGNC"> 456 : }</span></span>
<span id="L33"><span class="lineNum"> 33</span> <span class="tlaGNC"> 24 : std::vector&lt;std::string&gt; SPnDE::graph(const std::string&amp; name) const</span></span>
<span id="L34"><span class="lineNum"> 34</span> : {</span>
<span id="L35"><span class="lineNum"> 35</span> <span class="tlaGNC"> 24 : return model.graph(name);</span></span>
<span id="L36"><span class="lineNum"> 36</span> : }</span>
<span id="L37"><span class="lineNum"> 37</span> : </span>
<span id="L38"><span class="lineNum"> 38</span> : }</span>
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
</table>
<br>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More