diff --git a/src/include/units/physical/fps/force.h b/src/include/units/physical/fps/force.h index cbd7e88b..c58fa3df 100644 --- a/src/include/units/physical/fps/force.h +++ b/src/include/units/physical/fps/force.h @@ -34,9 +34,12 @@ namespace units::physical::fps { struct poundal : named_unit {}; // https://en.wikipedia.org/wiki/Pound_(force) -struct pound_force : named_scaled_unit, poundal> {}; +struct pound_force : named_scaled_unit, poundal> {}; +struct kilopound_force : prefixed_unit {}; +// https://en.wikipedia.org/wiki/Kip_(unit), +struct kip : alias_unit {}; struct dim_force : physical::dim_force {}; @@ -53,6 +56,10 @@ constexpr auto operator"" q_pdl(long double l) { return force(l); } constexpr auto operator"" q_lbf(long double l) { return force(l); } +// kilopound force +constexpr auto operator"" q_klbf(unsigned long long l) { return force(l); } +constexpr auto operator"" q_klbf(long double l) { return force(l); } + } // namespace literals } // namespace units::physical::fps diff --git a/src/include/units/physical/fps/length.h b/src/include/units/physical/fps/length.h index 1c962c08..24cd8466 100644 --- a/src/include/units/physical/fps/length.h +++ b/src/include/units/physical/fps/length.h @@ -31,9 +31,11 @@ namespace units::physical::fps { // https://en.wikipedia.org/wiki/Foot_(unit) struct foot : named_scaled_unit, si::metre> {}; +struct inch : named_scaled_unit, foot> {}; + struct yard : named_scaled_unit, foot> {}; -struct inch : named_scaled_unit, foot> {}; +struct fathom : named_scaled_unit, foot> {}; struct mile : named_scaled_unit, foot> {}; @@ -48,19 +50,27 @@ using length = quantity; inline namespace literals { +// Inch constexpr auto operator"" q_in(unsigned long long l) { return length(l); } constexpr auto operator"" q_in(long double l) { return length(l); } -// ft +// Foot constexpr auto operator"" q_ft(unsigned long long l) { return length(l); } constexpr auto operator"" q_ft(long double l) { return length(l); } +// Yard constexpr auto operator"" q_yd(unsigned long long l) { return length(l); } constexpr auto operator"" q_yd(long double l) { return length(l); } +// Fathom +constexpr auto operator"" q_ftm(unsigned long long l) { return length(l); } +constexpr auto operator"" q_ftm(long double l) { return length(l); } + +// Mile constexpr auto operator"" q_mile(unsigned long long l) { return length(l); } constexpr auto operator"" q_mile(long double l) { return length(l); } +// Nautical mile constexpr auto operator"" q_naut_mi(unsigned long long l) { return length(l); } constexpr auto operator"" q_naut_mi(long double l) { return length(l); } diff --git a/src/include/units/physical/fps/mass.h b/src/include/units/physical/fps/mass.h index 2fe1c738..229f5014 100644 --- a/src/include/units/physical/fps/mass.h +++ b/src/include/units/physical/fps/mass.h @@ -36,28 +36,57 @@ struct dim_mass : physical::dim_mass {}; template using mass = quantity; +struct grain : named_scaled_unit, pound>{}; + +struct dram : named_scaled_unit, pound>{}; + struct ounce : named_scaled_unit, pound>{}; +struct stone : named_scaled_unit, pound>{}; + +struct quarter : named_scaled_unit, pound>{}; + +struct hundredweight : named_scaled_unit, pound>{}; + struct short_ton : named_scaled_unit, pound>{}; struct long_ton : named_scaled_unit, pound>{}; inline namespace literals { +// Grain +constexpr auto operator"" q_gr(unsigned long long l) { return mass(l); } +constexpr auto operator"" q_gr(long double l) { return mass(l); } +// Dram +constexpr auto operator"" q_dr(unsigned long long l) { return mass(l); } +constexpr auto operator"" q_dr(long double l) { return mass(l); } + +// Ounce constexpr auto operator"" q_oz(unsigned long long l) { return mass(l); } constexpr auto operator"" q_oz(long double l) { return mass(l); } - -// lb +// Pound constexpr auto operator"" q_lb(unsigned long long l) { return mass(l); } constexpr auto operator"" q_lb(long double l) { return mass(l); } +// Stone +constexpr auto operator"" q_st(unsigned long long l) { return mass(l); } +constexpr auto operator"" q_st(long double l) { return mass(l); } +// Quarter +constexpr auto operator"" q_qr(unsigned long long l) { return mass(l); } +constexpr auto operator"" q_qr(long double l) { return mass(l); } + +// Hundredweight +constexpr auto operator"" q_cwt(unsigned long long l) { return mass(l); } +constexpr auto operator"" q_cwt(long double l) { return mass(l); } + +// Short ton constexpr auto operator"" q_ston(unsigned long long l) { return mass(l); } constexpr auto operator"" q_ston(long double l) { return mass(l); } - +// Long Ton constexpr auto operator"" q_lton(unsigned long long l) { return mass(l); } constexpr auto operator"" q_lton(long double l) { return mass(l); } diff --git a/src/include/units/physical/fps/pressure.h b/src/include/units/physical/fps/pressure.h index 673843ce..7c43d990 100644 --- a/src/include/units/physical/fps/pressure.h +++ b/src/include/units/physical/fps/pressure.h @@ -39,10 +39,10 @@ using pressure = quantity; struct pound_force_per_foot_sq : named_scaled_unit, poundal_per_foot_sq> {}; -// struct pound_force_per_foot_sq : noble_deduced_unit {}; - struct pound_force_per_inch_sq : named_scaled_unit, pound_force_per_foot_sq> {}; +struct kilopound_force_per_inch_sq : prefixed_unit {}; + inline namespace literals { // Poundal per square foot constexpr auto operator"" q_pdl_per_ft2(unsigned long long l) { return pressure(l); } @@ -52,6 +52,10 @@ constexpr auto operator"" q_pdl_per_ft2(long double l) { return pressure(l); } constexpr auto operator"" q_psi(long double l) { return pressure(l); } +// kilopounds per square inch +constexpr auto operator"" q_kpsi(unsigned long long l) { return pressure(l); } +constexpr auto operator"" q_kpsi(long double l) { return pressure(l); } + } // namespace literals } // namespace units::physical::fps