/**********************************************************************************************************************
This file is part of the Control Toolbox (https://github.com/ethz-adrl/control-toolbox), copyright by ETH Zurich.
Licensed under the BSD-2 license (see LICENSE file in main directory)
**********************************************************************************************************************/

#pragma once

#include "systems/continuous_time/System.h"
#include "systems/continuous_time/ControlledSystem.h"
#include "systems/continuous_time/SecondOrderSystem.h"
#include "systems/continuous_time/ControlledSystem.h"
#include "systems/continuous_time/SwitchedControlledSystem.h"
#include "systems/continuous_time/linear/LinearSystem.h"
#include "systems/continuous_time/linear/SwitchedLinearSystem.h"
#include "systems/continuous_time/linear/LTISystem.h"

#include "systems/linearizer/DynamicsLinearizerNumDiff.h"
#ifdef CPPADCG
#include "systems/linearizer/DynamicsLinearizerAD.h"
#include "systems/linearizer/DynamicsLinearizerADCG.h"
#endif

#include "systems/continuous_time/linear/SystemLinearizer.h"
#ifdef CPPADCG
#include "systems/continuous_time/linear/AutoDiffLinearizer.h"
#include "systems/continuous_time/linear/ADCodegenLinearizer.h"
#endif

#include "systems/discrete_time/DiscreteControlledSystem.h"
#include "systems/discrete_time/SwitchedDiscreteControlledSystem.h"
#include "systems/discrete_time/SystemDiscretizer.h"

#include "systems/discrete_time/linear/DiscreteLinearSystem.h"
#include "systems/discrete_time/linear/DiscreteLTISystem.h"
#include "systems/discrete_time/linear/SwitchedDiscreteLinearSystem.h"
#include "systems/discrete_time/linear/DiscreteSystemLinearizer.h"

#ifdef CPPADCG
#include "systems/discrete_time/linear/DiscreteSystemLinearizerAD.h"
#include "systems/discrete_time/linear/DiscreteSystemLinearizerADCG.h"
#endif
