🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
单位和数量分析

详细描述

提供单位和数量分析的功能,包括单位和数量值的加法、减法、乘法、除法等操作。

class  ast::Quantity
 
class  ast::Unit
 
class  ast::UnitConverter
 
class  ast::UnitManager
 

函数

Quantity ast::aQuantityAdd (const Quantity &q1, const Quantity &q2)
 
Quantity ast::aQuantitySub (const Quantity &q1, const Quantity &q2)
 
Quantity ast::aQuantityMul (const Quantity &q1, const Quantity &q2)
 
Quantity ast::aQuantityMul (const Quantity &q, const Unit &unit)
 
Quantity ast::aQuantityDiv (const Quantity &q1, const Quantity &q2)
 
Quantity ast::aQuantityDiv (const Quantity &q, const Unit &unit)
 
void ast::aQuantityReduce (Quantity &q)
 
std::string ast::aQuantityToString (const Quantity &q)
 
A_ALWAYS_INLINE std::string ast::aFormatQuantity (const Quantity &q)
 
Quantity ast::operator* (double value, const Unit &unit)
 
Quantity ast::operator* (double value, const Quantity &q)
 
Quantity ast::operator/ (double value, const Quantity &q)
 
errc_t ast::aQuantityParse (StringView str, double &magnitude, Unit &unit)
 
errc_t ast::aQuantityParse (StringView str, Quantity &quantity)
 
Quantity ast::aQuantityParse (StringView str)
 
Unit ast::aUnitMultiply (const Unit &unit1, const Unit &unit2)
 
Unit ast::aUnitMultiply (const Unit &unit1, const Unit &unit2, StringView newname)
 
Unit ast::aUnitDivide (const Unit &unit1, const Unit &unit2)
 
Unit ast::aUnitDivide (const Unit &unit1, const Unit &unit2, StringView newname)
 
Unit ast::aUnitPower (const Unit &unit, int exponent)
 
Unit ast::aUnitPower (const Unit &unit, int exponent, StringView newname)
 
Unit ast::aUnitInvert (const Unit &unit)
 
Unit ast::aUnitInvert (const Unit &unit, StringView newname)
 
void ast::aUnitFactorize (const Unit &unit, Unit &newUnit, double &scale)
 
void ast::aUnitFactorize (Unit &unit, double &scale)
 
Unitast::aUnitGet (StringView name)
 
errc_t ast::aUnitAdd (const Unit &unit)
 
errc_t ast::aUnitAdd (StringView name, const Unit &unit)
 
errc_t ast::aUnitParse (StringView str, Unit &unit)
 
Unit ast::aUnitParse (StringView str)
 
void ast::Quantity::changeUnit (const Unit &unit)
 

函数说明

◆ aQuantityAdd()

AST_UTIL_API Quantity ast::aQuantityAdd ( const Quantity & q1,
const Quantity & q2 )

数量值加法

参数
q1数量值1
q2数量值2
返回
数量值1与数量值2的和

◆ aQuantityDiv() [1/2]

AST_UTIL_API Quantity ast::aQuantityDiv ( const Quantity & q,
const Unit & unit )

数量值单位除法

参数
q数量值
unit单位
返回
数量值与单位的商

◆ aQuantityDiv() [2/2]

AST_UTIL_API Quantity ast::aQuantityDiv ( const Quantity & q1,
const Quantity & q2 )

数量值除法

参数
q1数量值1
q2数量值2
返回
数量值1与数量值2的商

◆ aQuantityMul() [1/2]

AST_UTIL_API Quantity ast::aQuantityMul ( const Quantity & q,
const Unit & unit )

数量值单位乘法

参数
q数量值
unit单位
返回
数量值与单位的积

◆ aQuantityMul() [2/2]

AST_UTIL_API Quantity ast::aQuantityMul ( const Quantity & q1,
const Quantity & q2 )

数量值乘法

参数
q1数量值1
q2数量值2
返回
数量值1与数量值2的积

◆ aQuantityParse() [1/3]

AST_UTIL_API Quantity ast::aQuantityParse ( StringView str)

解析量字符串

例如 "123.456 m/s", "123.456m", "123.456[m/s]"。

参数
[in]str量字符串
返回
Quantity 解析得到的量,如果解析失败返回 Quantity::NaN()

◆ aQuantityParse() [2/3]

AST_UTIL_API errc_t ast::aQuantityParse ( StringView str,
double & magnitude,
Unit & unit )

解析量字符串,将其解析为数值和单位。

例如 "123.456 m/s", "123.456m", "123.456[m/s]"。

参数
[in]str量字符串
[out]magnitude解析得到的数值
[out]unit解析得到的单位
返回
errc_t 错误码

◆ aQuantityParse() [3/3]

AST_UTIL_API errc_t ast::aQuantityParse ( StringView str,
Quantity & quantity )

解析量字符串

例如 "123.456 m/s", "123.456m", "123.456[m/s]"。

参数
[in]str量字符串
[out]quantity解析后的量
返回
errc_t 错误码

◆ aQuantityReduce()

AST_UTIL_API void ast::aQuantityReduce ( Quantity & q)

数量值简化

参数
q数量值

◆ aQuantitySub()

AST_UTIL_API Quantity ast::aQuantitySub ( const Quantity & q1,
const Quantity & q2 )

数量值减法

参数
q1数量值1
q2数量值2
返回
数量值1与数量值2的差

◆ aQuantityToString()

AST_UTIL_API std::string ast::aQuantityToString ( const Quantity & q)

数量值转换为字符串

参数
q数量值
返回
数量值的字符串表示

◆ aUnitAdd() [1/2]

AST_UTIL_API errc_t ast::aUnitAdd ( const Unit & unit)

添加单位

参数
unit要添加的单位
返回
errc_t 错误码

◆ aUnitAdd() [2/2]

AST_UTIL_API errc_t ast::aUnitAdd ( StringView name,
const Unit & unit )

添加单位

参数
name单位名称
unit要添加的单位
返回
errc_t 错误码

◆ aUnitFactorize() [1/2]

AST_UTIL_API void ast::aUnitFactorize ( const Unit & unit,
Unit & newUnit,
double & scale )

单位分解

参数
[in]unit分解前的单位
[out]newUnit分解后的单位
[out]scale单位缩放因子

◆ aUnitFactorize() [2/2]

AST_UTIL_API void ast::aUnitFactorize ( Unit & unit,
double & scale )

单位分解

参数
[in,out]unit约简前后的单位
[out]scale单位缩放因子

◆ aUnitGet()

AST_UTIL_API Unit * ast::aUnitGet ( StringView name)

获取单位

参数
name单位名称
返回
单位

◆ aUnitParse() [1/2]

AST_UTIL_API Unit ast::aUnitParse ( StringView str)

解析单位字符串

参数
[in]str单位字符串
返回
Unit 解析得到的单位,如果解析失败返回 Unit::NaN()

◆ aUnitParse() [2/2]

AST_UTIL_API errc_t ast::aUnitParse ( StringView str,
Unit & unit )

解析单位字符串

参数
[in]str单位字符串
[out]unit解析后的单位
返回
errc_t 错误码

◆ changeUnit()

void ast::Quantity::changeUnit ( const Unit & unit)
inline

切换当前单位

切换当前单位后,数量值会自动转换为该单位 例如将1000m转换为1km,将1000kg转换为1t等

参数
unit当前单位

◆ operator*()

AST_UTIL_API Quantity ast::operator* ( double value,
const Unit & unit )

单位乘法运算符

参数
value数值
unit单位
返回
新单位