DYT/Tool/matlab/include/uav/uavdubins/uavdubinscodegen/uavdubinscodegen_constants.hpp
2024-11-22 23:19:31 +08:00

62 lines
1.6 KiB
C++

/* Copyright 2020 The MathWorks, Inc. */
/**
* @file
* Constants used in uav Dubins features.
* To fully support code generation, note that this file needs to be fully
* compliant with the C++98 standard.
*/
#ifndef UAVDUBINSCODEGEN_CONSTANTS_H_
#define UAVDUBINSCODEGEN_CONSTANTS_H_
#ifdef BUILDING_LIBMWUAVDUBINSCODEGEN
#include "uavdubinscodegen/uavdubinscodegen_util.hpp"
#else
#include "uavdubinscodegen_util.hpp"
#endif
namespace uav {
// Codegen-compatible versions of declaration in
// matlab/math/foundation/src/mfl_scalar/export/include/mfl_scalar/detail/word_types.hpp
typedef union {
real64_T value;
struct {
uint32_T lw;
uint32_T hw;
} words;
} auton_double_word_T;
// Codegen-compatible version of declarations in
// matlab/math/foundation/src/mfl_scalar/export/include/mfl_scalar/constants.hpp
inline real64_T getInf() {
uav::auton_double_word_T tmp;
tmp.words.hw = 0x7ff00000U;
tmp.words.lw = 0x00000000U;
return tmp.value;
}
inline real64_T getNaN(){
uav::auton_double_word_T x;
x.words.hw = 0xfff80000U;
x.words.lw = 0x00000000U;
return x.value;
}
inline real64_T getPi() {
return 3.14159265358979323846;
}
// toosamll value found from a trial-and-error process to find thresholds
// such that the unit tests would consistently pass. Source - OMPL.
const real64_T tooSmall = 1e-7;
const real64_T pi = uav::getPi();
const real64_T twoPi = 2.0 * uav::getPi();
const real64_T inf = uav::getInf();
const real64_T nan = uav::getNaN();
} // namespace uav
#endif // UAVDUBINSCODEGEN_CONSTANTS_H_