🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Dimension.hpp 文件参考
#include "AstGlobal.h"
#include <string>

浏览该文件的源代码.

class  ast::Dimension
 

命名空间

namespace  ast
 

宏定义

#define _AST_DIM_EXP_OPBIN(value1, value2, op)
 
#define _AST_DIM_EXP_TIMES(value, times)
 

类型定义

typedef uint32_t ast::dimension_t
 
typedef enum ast::EDimension ast::AEDimension
 

枚举

enum  {
  kIdxMass , kIdxLength , kIdxAngle , kIdxTime ,
  kIdxTemperature , kIdxCurrent , kIdxAmount , kIdxLuminous
}
 
enum class  ast::EDimension : dimension_t {
  ast::eUnit = dimensions::kUnit , ast::eLength = dimensions::kLength , ast::eMass = dimensions::kMass , ast::eTime = dimensions::kTime ,
  ast::eCurrent = dimensions::kCurrent , ast::eTemperature = dimensions::kTemperature , ast::eAmount = dimensions::kAmount , ast::eLuminous = dimensions::kLuminous ,
  ast::eAngle = dimensions::kAngle , ast::eAngVel = dimensions::kAngVel , ast::eAngularVelocity = dimensions::kAngularVelocity , ast::eArea = dimensions::kArea ,
  ast::eVolume = dimensions::kVolume , ast::eSpeed = dimensions::kSpeed , ast::eAcceleration = dimensions::kAcceleration , ast::eForce = dimensions::kForce ,
  ast::ePressure = dimensions::kPressure , ast::eEnergy = dimensions::kEnergy , ast::ePower = dimensions::kPower , ast::eFrequency = dimensions::kFrequency
}
 

函数

template<typename T >
constexpr int ast::dim_get_exponent (T dimension, int idx) noexcept
 
template<typename T >
A_CONSTEXPR_CXX14 EDimension ast::dim_set_exponent (T dimension, int idx, int exponent) noexcept
 
template<typename T >
constexpr int ast::dim_get_sum_abs_exponent (T dimension) noexcept
 
template<typename T >
constexpr dimension_t ast::dim_product (T dim1, T dim2) noexcept
 
template<typename T >
constexpr dimension_t ast::dim_divide (T dim1, T dim2) noexcept
 
template<typename T >
constexpr dimension_t ast::dim_pow (T dimension, int n) noexcept
 
template<typename T >
constexpr dimension_t ast::dim_invert (T dimension) noexcept
 
constexpr EDimension ast::operator* (EDimension dim1, EDimension dim2) noexcept
 
constexpr EDimension ast::operator/ (EDimension dim1, EDimension dim2) noexcept
 
constexpr EDimension ast::internal::pow (EDimension dimension, int n) noexcept
 
std::string ast::aDimName (EDimension dimension)
 
std::string ast::aDimSymbol (EDimension dimension)
 
A_CONSTEXPR_CXX14 bool ast::aDimIsBase (EDimension dimension) noexcept
 
A_CONSTEXPR_CXX14 bool ast::aDimIsDerived (EDimension dimension) noexcept
 
A_CONSTEXPR_CXX14 bool ast::aDimIsUnit (EDimension dimension) noexcept
 
A_CONSTEXPR_CXX14 Dimension ast::internal::pow (Dimension dim, int n)
 

变量

constexpr size_t ast::sizeof_dimension = sizeof(EDimension)
 
constexpr size_t ast::bits_of_dimension = sizeof_dimension * 8
 
constexpr dimension_t ast::dimensions::kUnit = 0
 
constexpr dimension_t ast::dimensions::kLength = 1 << kIdxLength * 4
 
constexpr dimension_t ast::dimensions::kMass = 1 << kIdxMass * 4
 
constexpr dimension_t ast::dimensions::kTime = 1 << kIdxTime * 4
 
constexpr dimension_t ast::dimensions::kCurrent = 1 << kIdxCurrent * 4
 
constexpr dimension_t ast::dimensions::kTemperature = 1 << kIdxTemperature * 4
 
constexpr dimension_t ast::dimensions::kAmount = 1 << kIdxAmount * 4
 
constexpr dimension_t ast::dimensions::kLuminous = 1 << kIdxLuminous * 4
 
constexpr dimension_t ast::dimensions::kAngle = 1 << kIdxAngle * 4
 
constexpr dimension_t ast::dimensions::kAngVel = dim_divide(kAngle, kTime)
 
constexpr dimension_t ast::dimensions::kAngularVelocity = kAngVel
 
constexpr dimension_t ast::dimensions::kArea = dim_product(kLength, kLength)
 
constexpr dimension_t ast::dimensions::kVolume = dim_product(kArea, kLength)
 
constexpr dimension_t ast::dimensions::kSpeed = dim_divide(kLength, kTime)
 
constexpr dimension_t ast::dimensions::kAcceleration = dim_divide(kSpeed, kTime)
 
constexpr dimension_t ast::dimensions::kForce = dim_product(kMass, kAcceleration)
 
constexpr dimension_t ast::dimensions::kPressure = dim_divide(kForce, kArea)
 
constexpr dimension_t ast::dimensions::kEnergy = dim_product(kForce, kLength)
 
constexpr dimension_t ast::dimensions::kPower = dim_divide(kEnergy, kTime)
 
constexpr dimension_t ast::dimensions::kFrequency = dim_divide(kUnit, kTime)
 

详细描述

~

~

作者
axel
日期
2025-12-12

ast项目(https://github.com/space-ast/ast) 本项目基于 Apache 2.0 开源许可证分发。 您可在遵守许可证条款的前提下使用、修改和分发本软件。 许可证全文请见:

http://www.apache.org/licenses/LICENSE-2.0

重要须知: 软件按"现有状态"提供,无任何明示或暗示的担保条件。 除非法律要求或书面同意,作者与贡献者不承担任何责任。 使用本软件所产生的风险,需由您自行承担。

宏定义说明

◆ _AST_DIM_EXP_OPBIN

#define _AST_DIM_EXP_OPBIN ( value1,
value2,
op )
值:
(unsigned(( dim_get_exponent(value1, 0) op dim_get_exponent(value2, 0)) & 0xF) << 0) | \
(unsigned(( dim_get_exponent(value1, 1) op dim_get_exponent(value2, 1)) & 0xF) << 4) | \
(unsigned(( dim_get_exponent(value1, 2) op dim_get_exponent(value2, 2)) & 0xF) << 8) | \
(unsigned(( dim_get_exponent(value1, 3) op dim_get_exponent(value2, 3)) & 0xF) << 12) | \
(unsigned(( dim_get_exponent(value1, 4) op dim_get_exponent(value2, 4)) & 0xF) << 16) | \
(unsigned(( dim_get_exponent(value1, 5) op dim_get_exponent(value2, 5)) & 0xF) << 20) | \
(unsigned(( dim_get_exponent(value1, 6) op dim_get_exponent(value2, 6)) & 0xF) << 24) | \
(unsigned(( dim_get_exponent(value1, 7) op dim_get_exponent(value2, 7)) & 0xF) << 28)

◆ _AST_DIM_EXP_TIMES

#define _AST_DIM_EXP_TIMES ( value,
times )
值:
(unsigned(( dim_get_exponent(value, 0) * times) & 0xF) << 0) | \
(unsigned(( dim_get_exponent(value, 1) * times) & 0xF) << 4) | \
(unsigned(( dim_get_exponent(value, 2) * times) & 0xF) << 8) | \
(unsigned(( dim_get_exponent(value, 3) * times) & 0xF) << 12) | \
(unsigned(( dim_get_exponent(value, 4) * times) & 0xF) << 16) | \
(unsigned(( dim_get_exponent(value, 5) * times) & 0xF) << 20) | \
(unsigned(( dim_get_exponent(value, 6) * times) & 0xF) << 24) | \
(unsigned(( dim_get_exponent(value, 7) * times) & 0xF) << 28)