aboutsummaryrefslogtreecommitdiffstats
path: root/unit.h
blob: 4e22a35bc969c356fe352fdce57ca5d2590fbb6d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
typedef double AngularSpeed;
typedef AngularSpeed (*AngularSpeedMaker)(double);
typedef double (*AngularSpeedReader)(AngularSpeed);

AngularSpeed rad_per_sec(double x);
AngularSpeed deg_per_sec(double x);
AngularSpeed rpm(double x);
double as_rad_per_sec(AngularSpeed x);
double as_deg_per_sec(AngularSpeed x);
double as_rpm(AngularSpeed x);


typedef double Fraction;
typedef Fraction (*FractionMaker)(double);
typedef double (*FractionReader)(Fraction);

Fraction percent(double x);
double as_percent(double x);


typedef double Pressure;
typedef Pressure (*PressureMaker)(double);
typedef double (*PressureReader)(Pressure);

Pressure pascal(double x);
Pressure millibar(double x);
Pressure kilopascal(double x);
Pressure bar(double x);
Pressure psi(double x);
double as_pascal(Pressure x);
double as_millibar(Pressure x);
double as_kilopascal(Pressure x);
double as_bar(Pressure x);
double as_psi(Pressure x);


typedef double Temperature;
typedef Temperature (*TemperatureMaker)(double);
typedef double (*TemperatureReader)(Temperature);

Temperature kelvin(double x);
Temperature celsius(double x);
Temperature fahrenheit(double x);
Temperature rankine(double x);
double as_kelvin(Temperature t);
double as_celsius(Temperature t);
double as_fahrenheit(Temperature t);
double as_rankine(Temperature t);


typedef double Volume;
typedef Volume (*VolumeMaker)(double);
typedef double (*VolumeReader)(Volume);

Volume cubic_centimetre(double x);
Volume litre(double x);
Volume cubic_metre(double x);
Volume cubic_inch(double x);
double as_cubic_centimetre(Volume x);
double as_litre(Volume x);
double as_cubic_metre(double x);
double as_cubic_inch(double x);


typedef double VolumeFlowRate;
typedef VolumeFlowRate (*VolumeFlowRateMaker)(double);
typedef double (*VolumeFlowRateReader)(VolumeFlowRate);

VolumeFlowRate cubic_metre_per_sec(double x);
VolumeFlowRate cubic_metre_per_min(double x);
VolumeFlowRate cubic_foot_per_min(double x);
double as_cubic_metre_per_sec(VolumeFlowRate x);
double as_cubic_metre_per_min(VolumeFlowRate x);
double as_cubic_foot_per_min(VolumeFlowRate x);