import { GenericMeasure , LiftMeasure } from "../measure/genericMeasure" ; import { Measure } from "../measure/numberMeasure" ; import * as Base from "./base" ; /** A measure without any unit */ export type Dimensionless < N = number > = LiftMeasure < typeof Dimensionless , N > ; export const Dimensionless = Measure . dimensionless ( 1 ) ; /** meters */ export type Length < N = number > = LiftMeasure < typeof Base . meters , N > ; export const Length = Base . meters ; /** kilograms */ export type Mass < N = number > = LiftMeasure < typeof Base . kilograms , N > ; export const Mass = Base . kilograms ; /** seconds */ export type Time < N = number > = LiftMeasure < typeof Base . seconds , N > ; export const Time = Base . seconds ; /** Amperes */ export type ElectricCurrent < N = number > = LiftMeasure < typeof Base . amperes , N > ; export const ElectricCurrent = Base . amperes ; /** Kelvin */ export type Temperature < N = number > = LiftMeasure < typeof Base . kelvin , N > ; export const Temperature = Base . kelvin ; /** moles */ export type AmountOfSubstance < N = number > = LiftMeasure < typeof Base . moles , N > ; export const AmountOfSubstance = Base . moles ; /** candelas */ export type LuminousIntensity < N = number > = LiftMeasure < typeof Base . candelas , N > ; export const LuminousIntensity = Base . candelas ; /** bits */ export type Memory < N = number > = LiftMeasure < typeof Base . bits , N > ; export const Memory = Base . bits ; /** radians */ export type PlaneAngle < N = number > = LiftMeasure < typeof Base . radians , N > ; export const PlaneAngle = Base . radians ; /** steradians */ export type SolidAngle < N = number > = LiftMeasure < typeof Base . steradians , N > ; export const SolidAngle = Base . steradians ; /** 1 / s */ export type Frequency < N = number > = LiftMeasure < typeof Frequency , N > ; export const Frequency = Time . inverse ( ) ; /** 1 / s² */ export type FrequencyDrift < N = number > = LiftMeasure < typeof FrequencyDrift , N > ; export const FrequencyDrift = Time . toThe ( "-2" ) ; /** 1 / m² */ export type FuelEfficiency < N = number > = LiftMeasure < typeof FuelEfficiency , N > ; export const FuelEfficiency = Length . toThe ( "-2" ) ; /** 1 / m */ export type Wavenumber < N = number > = LiftMeasure < typeof Wavenumber , N > ; export const Wavenumber = Length . inverse ( ) ; /** m² */ export type Area < N = number > = LiftMeasure < typeof Area , N > ; export const Area = Length . squared ( ) ; /** m³ */ export type Volume < N = number > = LiftMeasure < typeof Volume , N > ; export const Volume = Length . cubed ( ) ; /** m ⋅ s */ export type Absement < N = number > = LiftMeasure < typeof Absement , N > ; export const Absement = Length . times ( Time ) ; /** m / s */ export type Velocity < N = number > = LiftMeasure < typeof Velocity , N > ; export const Velocity = Length . over ( Time ) ; /** m / s² */ export type Acceleration < N = number > = LiftMeasure < typeof Acceleration , N > ; export const Acceleration = Velocity . over ( Time ) ; /** m / s³ */ export type Jerk < N = number > = LiftMeasure < typeof Jerk , N > ; export const Jerk = Acceleration . over ( Time ) ; /** m / s⁴ */ export type Jounce < N = number > = LiftMeasure < typeof Jounce , N > ; export const Jounce = Jerk . over ( Time ) ; /** m / s⁵ */ export type Crackle < N = number > = LiftMeasure < typeof Crackle , N > ; export const Crackle = Jounce . over ( Time ) ; /** m³ / s */ export type VolumetricFlow < N = number > = LiftMeasure < typeof VolumetricFlow , N > ; export const VolumetricFlow = Volume . over ( Time ) ; /** kg / s */ export type MassFlowRate < N = number > = LiftMeasure < typeof MassFlowRate , N > ; export const MassFlowRate = Mass . over ( Time ) ; /** kg / m */ export type LinearDensity < N = number > = LiftMeasure < typeof LinearDensity , N > ; export const LinearDensity = Mass . over ( Length ) ; /** kg / m²  */ export type AreaDensity < N = number > = LiftMeasure < typeof AreaDensity , N > ; export const AreaDensity = Mass . over ( Area ) ; /** kg / m³ */ export type VolumeDensity < N = number > = LiftMeasure < typeof VolumeDensity , N > ; export const VolumeDensity = Mass . over ( Volume ) ; /** kg ⋅ m / s² */ export type Force < N = number > = LiftMeasure < typeof Force , N > ; export const Force = Mass . times ( Acceleration ) ; /** km ⋅ m / s³ */ export type Yank < N = number > = LiftMeasure < typeof Yank , N > ; export const Yank = Force . over ( Time ) ; /** kg / (m ⋅ s²)  */ export type Pressure < N = number > = LiftMeasure < typeof Pressure , N > ; export const Pressure = Force . over ( Area ) ; /** m ⋅ s² / kg */ export type Compressibility < N = number > = LiftMeasure < typeof Compressibility , N > ; export const Compressibility = Pressure . inverse ( ) ; /** kg / (m ⋅ s) */ export type DynamicViscosity < N = number > = LiftMeasure < typeof DynamicViscosity , N > ; export const DynamicViscosity = Pressure . times ( Time ) ; /** kg / s² */ export type SurfaceTension < N = number > = LiftMeasure < typeof SurfaceTension , N > ; export const SurfaceTension = Force . over ( Length ) ; /** kg ⋅ m / s  */ export type Momentum < N = number > = LiftMeasure < typeof Momentum , N > ; export const Momentum = Force . times ( Time ) ; /** kg ⋅ m² */ export type MomentOfInertia < N = number > = LiftMeasure < typeof MomentOfInertia , N > ; export const MomentOfInertia = Mass . times ( Area ) ; /** kg ⋅ m² / s² */ export type Energy < N = number > = LiftMeasure < typeof Energy , N > ; export const Energy = Force . times ( Length ) ; /** kg ⋅ m² / s³ */ export type Power < N = number > = LiftMeasure < typeof Power , N > ; export const Power = Energy . over ( Time ) ; /** kg / (m ⋅ s³) */ export type PowerDensity < N = number > = LiftMeasure < typeof PowerDensity , N > ; export const PowerDensity = Power . over ( Volume ) ; /** kg ⋅ m² / (s³ ⋅ A) */ export type Voltage < N = number > = LiftMeasure < typeof Voltage , N > ; export const Voltage = Power . over ( ElectricCurrent ) ; /** s ⋅ A */ export type ElectricCharge < N = number > = LiftMeasure < typeof ElectricCharge , N > ; export const ElectricCharge = ElectricCurrent . times ( Time ) ; /** s ⋅ A / m³ */ export type ElectricChargeDensity < N = number > = LiftMeasure < typeof ElectricChargeDensity , N > ; export const ElectricChargeDensity = ElectricCharge . over ( Volume ) ; /** A / m² */ export type ElectricCurrentDensity < N = number > = LiftMeasure < typeof ElectricCurrentDensity , N > ; export const ElectricCurrentDensity = ElectricCurrent . over ( Area ) ; /** s ⋅ A / m² */ export type ElectricDisplacement < N = number > = LiftMeasure < typeof ElectricDisplacement , N > ; export const ElectricDisplacement = ElectricCharge . over ( Area ) ; /** kg ⋅ m / (s³ ⋅ A) */ export type EletricFieldStrength < N = number > = LiftMeasure < typeof EletricFieldStrength , N > ; export const EletricFieldStrength = Voltage . over ( Length ) ; /** s⁴ ⋅ A² / (kg ⋅ m²) */ export type ElectricalCapacitance < N = number > = LiftMeasure < typeof ElectricalCapacitance , N > ; export const ElectricalCapacitance = ElectricCharge . over ( Voltage ) ; /** s³ ⋅ A / (kg ⋅ m²) */ export type ElectricalConductance < N = number > = LiftMeasure < typeof ElectricalConductance , N > ; export const ElectricalConductance = ElectricCurrent . over ( Voltage ) ; /** s³ ⋅ A² / (kg ⋅ m³) */ export type ElectricalConductivity < N = number > = LiftMeasure < typeof ElectricalConductivity , N > ; export const ElectricalConductivity = ElectricalConductance . over ( Length ) ; /** kg ⋅ m² / (s³ ⋅ A²) */ export type ElectricalResistance < N = number > = LiftMeasure < typeof ElectricalResistance , N > ; export const ElectricalResistance = Voltage . over ( ElectricCurrent ) ; /** kg ⋅ m³ / (s³ ⋅ A²) */ export type ElectricalResistivity < N = number > = LiftMeasure < typeof ElectricalResistivity , N > ; export const ElectricalResistivity = ElectricalResistance . times ( Length ) ; /** kg ⋅ m² / (s² ⋅ A²) */ export type ElectricalInductance < N = number > = LiftMeasure < typeof ElectricalInductance , N > ; export const ElectricalInductance = ElectricalResistance . times ( Time ) ; /** s ⋅ A / m */ export type LinearChargeDensity < N = number > = LiftMeasure < typeof LinearChargeDensity , N > ; export const LinearChargeDensity = ElectricCharge . over ( Length ) ; /** s⁴ ⋅ A² / (kg ⋅ m³) */ export type Permittivity < N = number > = LiftMeasure < typeof Permittivity , N > ; export const Permittivity = ElectricalCapacitance . over ( Length ) ; /** kg ⋅ m² / (s² ⋅ A) */ export type MagneticFlux < N = number > = LiftMeasure < typeof MagneticFlux , N > ; export const MagneticFlux = Energy . over ( ElectricCurrent ) ; /** kg / (s² ⋅ A) */ export type MagneticFluxDensity < N = number > = LiftMeasure < typeof MagneticFluxDensity , N > ; export const MagneticFluxDensity = Voltage . times ( Time ) . over ( Area ) ; /** kg ⋅ m / (s² ⋅ A²)  */ export type MagneticPermeability < N = number > = LiftMeasure < typeof MagneticPermeability , N > ; export const MagneticPermeability = ElectricalInductance . over ( Length ) ; /** A / m */ export type Magnetization < N = number > = LiftMeasure < typeof Magnetization , N > ; export const Magnetization = ElectricCurrent . over ( Length ) ; /** s² ⋅ A² / (kg ⋅ m²) */ export type MagneticReluctance < N = number > = LiftMeasure < typeof MagneticReluctance , N > ; export const MagneticReluctance = ElectricalInductance . inverse ( ) ; /** kg ⋅ m³ / (s² ⋅ A) */ export type MagneticMoment < N = number > = LiftMeasure < typeof MagneticMoment , N > ; export const MagneticMoment = MagneticFlux . times ( Length ) ; /** kg ⋅ m / (s² ⋅ A) */ export type MagneticRigidity < N = number > = LiftMeasure < typeof MagneticRigidity , N > ; export const MagneticRigidity = MagneticFluxDensity . times ( Length ) ; /** m² ⋅ A */ export type MagneticDipoleMoment < N = number > = LiftMeasure < typeof MagneticDipoleMoment , N > ; export const MagneticDipoleMoment = Energy . over ( MagneticFluxDensity ) ; /** s² ⋅ A² / (kg ⋅ m) */ export type MagneticSusceptibility < N = number > = LiftMeasure < typeof MagneticSusceptibility , N > ; export const MagneticSusceptibility = Length . over ( ElectricalInductance ) ; /** kg / s³  */ export type Irradiance < N = number > = LiftMeasure < typeof Irradiance , N > ; export const Irradiance = Power . over ( Area ) ; /** kg ⋅ m / (s² ⋅ K)  */ export type Entropy < N = number > = LiftMeasure < typeof Entropy , N > ; export const Entropy = Energy . over ( Temperature ) ; /** m² / (s² ⋅ K) */ export type SpecificHeat < N = number > = LiftMeasure < typeof SpecificHeat , N > ; export const SpecificHeat = Energy . over ( Mass . times ( Temperature ) ) ; /** m³ / kg  */ export type SpecificVolume < N = number > = LiftMeasure < typeof SpecificVolume , N > ; export const SpecificVolume = Volume . over ( Mass ) ; /** kg ⋅ m / (s³ ⋅ K)  */ export type ThermalConductivity < N = number > = LiftMeasure < typeof ThermalConductivity , N > ; export const ThermalConductivity = Power . over ( Length . times ( Temperature ) ) ; /** s³ ⋅ K / (kg ⋅ m²) */ export type ThermalResistance < N = number > = LiftMeasure < typeof ThermalResistance , N > ; export const ThermalResistance = Temperature . over ( Power ) ; /** 1 / K */ export type ThermalExpansionCoefficient < N = number > = LiftMeasure < typeof ThermalExpansionCoefficient , N > ; export const ThermalExpansionCoefficient = Temperature . inverse ( ) ; /** K / m */ export type ThermalGradient < N = number > = LiftMeasure < typeof ThermalGradient , N > ; export const ThermalGradient = Temperature . over ( Length ) ; /** kg ⋅ m² / (s² ⋅ K ⋅ mol) */ export type MolarEntropy < N = number > = LiftMeasure < typeof MolarEntropy , N > ; export const MolarEntropy = Entropy . over ( AmountOfSubstance ) ; /** kg ⋅ m² / (s² ⋅ mol) */ export type MolarEnergy < N = number > = LiftMeasure < typeof MolarEnergy , N > ; export const MolarEnergy = Energy . over ( AmountOfSubstance ) ; /** mol / m³ */ export type Molarity < N = number > = LiftMeasure < typeof Molarity , N > ; export const Molarity = AmountOfSubstance . over ( Volume ) ; /** m³ / mol */ export type MolarVolume < N = number > = LiftMeasure < typeof MolarVolume , N > ; export const MolarVolume = Volume . over ( AmountOfSubstance ) ; /** mol / kg */ export type Molality < N = number > = LiftMeasure < typeof Molality , N > ; export const Molality = AmountOfSubstance . over ( Mass ) ; /** kg / mol  */ export type MolarMass < N = number > = LiftMeasure < typeof MolarMass , N > ; export const MolarMass = Mass . over ( AmountOfSubstance ) ; /** s³ ⋅ A² / (kg ⋅ mol) */ export type MolarConductivity < N = number > = LiftMeasure < typeof MolarConductivity , N > ; export const MolarConductivity = ElectricalConductance . times ( Area ) . over ( AmountOfSubstance ) ; /** mol / s */ export type CatalyticActivity < N = number > = LiftMeasure < typeof CatalyticActivity , N > ; export const CatalyticActivity = AmountOfSubstance . over ( Time ) ; /** m³ / (s ⋅ mol) */ export type CatalyticEfficiency < N = number > = LiftMeasure < typeof CatalyticEfficiency , N > ; export const CatalyticEfficiency = Volume . over ( AmountOfSubstance . times ( Time ) ) ; /** mol / (m³ ⋅ s)  */ export type ReactionRate < N = number > = LiftMeasure < typeof ReactionRate , N > ; export const ReactionRate = CatalyticActivity . over ( Volume ) ; /** m² / s² */ export type RadiationDose < N = number > = LiftMeasure < typeof RadiationDose , N > ; export const RadiationDose = Energy . over ( Mass ) ; /** m² / s³ */ export type RadiationDoseRate < N = number > = LiftMeasure < typeof RadiationDoseRate , N > ; export const RadiationDoseRate = RadiationDose . over ( Time ) ; /** s² ⋅ A / kg  */ export type ElectronMobility < N = number > = LiftMeasure < typeof ElectronMobility , N > ; export const ElectronMobility = Area . over ( Voltage . times ( Time ) ) ; /** kg ⋅ m² / s */ export type AngularMomentum < N = number > = LiftMeasure < typeof AngularMomentum , N > ; export const AngularMomentum = Force . times ( Length ) . times ( Time ) ; /** m² /s */ export type SpecificAngularMomentum < N = number > = LiftMeasure < typeof SpecificAngularMomentum , N > ; export const SpecificAngularMomentum = AngularMomentum . over ( Mass ) ; /** cd / m² */ export type Luminance < N = number > = LiftMeasure < typeof Luminance , N > ; export const Luminance = LuminousIntensity . over ( Area ) ; /** cd ⋅ sr */ export type LuminousFlux < N = number > = LiftMeasure < typeof LuminousFlux , N > ; export const LuminousFlux = LuminousIntensity . times ( SolidAngle ) ; /** cd ⋅ sr / m² */ export type Illuminance < N = number > = LiftMeasure < typeof Illuminance , N > ; export const Illuminance = LuminousFlux . over ( Area ) ; /** s ⋅ cd ⋅ sr */ export type LuminousEnergy < N = number > = LiftMeasure < typeof LuminousEnergy , N > ; export const LuminousEnergy = LuminousFlux . times ( Time ) ; /** s ⋅ cd ⋅ sr / m² */ export type LuminousExposure < N = number > = LiftMeasure < typeof LuminousExposure , N > ; export const LuminousExposure = Illuminance . times ( Time ) ; /** s³ ⋅ cd ⋅ sr / (kg ⋅ m²) */ export type LuminousEfficiency < N = number > = LiftMeasure < typeof LuminousEfficiency , N > ; export const LuminousEfficiency = LuminousFlux . over ( Power ) ; /** kg ⋅ m² / (s³ ⋅ sr) */ export type RadiantIntensity < N = number > = LiftMeasure < typeof RadiantIntensity , N > ; export const RadiantIntensity = Power . over ( SolidAngle ) ; /** kg ⋅ m / (s³ ⋅ sr)  */ export type SpectralIntensity < N = number > = LiftMeasure < typeof SpectralIntensity , N > ; export const SpectralIntensity = RadiantIntensity . over ( Length ) ; /** kg / (s³ ⋅ sr) */ export type Radiance < N = number > = LiftMeasure < typeof Radiance , N > ; export const Radiance = RadiantIntensity . over ( Area ) ; /** kg / (m ⋅ s³ ⋅ sr) */ export type SpectralRadiance < N = number > = LiftMeasure < typeof SpectralRadiance , N > ; export const SpectralRadiance = RadiantIntensity . over ( Volume ) ; /** rad / s */ export type AngularVelocity < N = number > = LiftMeasure < typeof AngularVelocity , N > ; export const AngularVelocity = PlaneAngle . over ( Time ) ; /** rad / s² */ export type AngularAcceleration < N = number > = LiftMeasure < typeof AngularAcceleration , N > ; export const AngularAcceleration = AngularVelocity . over ( Time ) ;