/** * @file annotated_network.h * @brief Network with annotations. * @kaspersky_support D. Postnikov * @date 03.02.2026 * @license Apache 2.0 * @copyright © 2026 AO Kaspersky Lab * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include #include #include #include #include /** * @brief A network with annotations. */ struct AnnotatedNetwork { /** * @brief Core network structure. */ knp::framework::Network network_; /// Annotation metadata structure providing additional network context. struct Annotation { /** * @brief Output UIDs. */ // cppcheck-suppress unusedStructMember std::vector output_uids_; /** * @brief Projections from rasterized channeled population. */ // cppcheck-suppress unusedStructMember std::vector projections_from_raster_; /** * @brief Projection from class channeled populations (label populations). */ // cppcheck-suppress unusedStructMember std::vector projections_from_classes_; /** * @brief Populations that should be kept during inference. */ // cppcheck-suppress unusedStructMember std::set inference_population_uids_; /** * @brief Projections that should be kept during inference. */ // cppcheck-suppress unusedStructMember std::set inference_internal_projection_; /** * @brief For each compound network: sender and receiver UID vectors for WTA mechanisms. */ // cppcheck-suppress unusedStructMember std::vector, std::vector>> wta_data_; /** * @brief WTA border indices defining competition boundaries (for example, [2,4,6]). */ // cppcheck-suppress unusedStructMember std::vector wta_borders_; } /** * @brief Annotation data associated with the network. */ // cppcheck-suppress unusedStructMember data_; };