.. _glossary:

Glossary
========

.. list-table:: DPC Glossary
   :header-rows: 1
   :widths: 30 70

   * - Term
     - Definition
   * - **DPC**
     - Generic term for Data-Driven Predictive Control.
   * - **DPC Algorithm**
     - The specific DPC algorithm, i.e. SPC, TPC, Gamma-DPC
   * - **Regularization**
     - Additional cost to the optimization problem.
   * - **Predictor**
     - Used to predict :math:`y_f` on the past measurements, future inputs and training data


.. list-table:: Python Glossary
   :widths: 25 75
   :header-rows: 1

   * - Term
     - Definition
   * - Abstract Class
     - A class that cannot be instantiated and usually contains abstract methods that must be implemented by subclasses.
   * - Abstract Method
     - A method declared in an abstract class that must be overridden in a subclass, defined using `@abstractmethod`.
   * - Arguments
     - Values passed to a function or method when it is called.
   * - Attributes
     - Variables associated with an object or class that store data.
   * - Class
     - A blueprint for creating objects, defining attributes and methods.
   * - Class Method
     - A method bound to the class rather than an instance, defined using `@classmethod`.
   * - Concrete Method
     - A method with an implementation in a class, as opposed to an abstract method.
   * - Dataclasses
     - A module that provides a decorator and functions for automatically generating special methods for classes.
   * - Declaration
     - The statement where a variable, function, or class is first defined.
   * - Fixtures
     - Predefined data or setup used in unit tests.
   * - Function
     - A reusable block of code that performs a specific task.
   * - Initialization
     - The process of assigning a value to a variable or setting up an object.
   * - Instantiate
     - The process of creating an instance of a class.
   * - Method
     - A function that belongs to a class and operates on its instances.
   * - Pipeline
     - A sequence of automated processes in software development, often used in CI/CD.
   * - Return Values
     - The output that a function or method produces.
   * - Static Classes
     - A class that only contains static methods and does not rely on instance attributes.
   * - Static Method
     - A method that does not operate on an instance of the class, defined using `@staticmethod`.
   * - Structures
     - Organized ways of storing and managing data, such as lists, tuples, and dictionaries.
   * - System Test
     - A testing phase where the complete application is tested as a whole.
   * - Unit Tests
     - Small, isolated tests that verify the functionality of individual components.
   * - Continuous Integration (CI)
     - A development practice where code changes are automatically built and tested frequently.
