[Back to MATH SWAG index] [Back to Main SWAG index] [Original]
{ MATH Unit for various conversions }
{$DEFINE Use8087} { define this for EXTENDED 8087 floating point math }
UNIT MATH;
{$IFDEF Use8087}
{$N+}
{$ELSE
{$N-}
{$ENDIF}
INTERFACE
TYPE
{$IFDEF Use8087}
FLOAT = EXTENDED;
{$ELSE}
FLOAT = REAL;
{$ENDIF}
FUNCTION FahrToCent(FahrTemp: FLOAT): FLOAT;
FUNCTION CentToFahr(CentTemp: FLOAT): FLOAT;
FUNCTION KelvToCent(KelvTemp: FLOAT): FLOAT;
FUNCTION CentToKelv(CentTemp: FLOAT): FLOAT;
PROCEDURE InchToFtIn(Inches: FLOAT; VAR ft,ins: FLOAT);
FUNCTION FtInToInch(ft,ins: FLOAT): FLOAT;
FUNCTION InchToYard(Inches: FLOAT): FLOAT;
FUNCTION YardToInch(Yards: FLOAT): FLOAT;
FUNCTION InchToMile(Inches: FLOAT): FLOAT;
FUNCTION MileToInch(Miles: FLOAT): FLOAT;
FUNCTION InchToNautMile(Inches: FLOAT): FLOAT;
FUNCTION NautMileToInch(NautMiles: FLOAT): FLOAT;
FUNCTION InchToMeter(Inches: FLOAT): FLOAT;
FUNCTION MeterToInch(Meters: FLOAT): FLOAT;
FUNCTION SqInchToSqFeet(SqInches: FLOAT): FLOAT;
FUNCTION SqFeetToSqInch(SqFeet: FLOAT): FLOAT;
FUNCTION SqInchToSqYard(SqInches: FLOAT): FLOAT;
FUNCTION SqYardToSqInch(SqYards: FLOAT): FLOAT;
FUNCTION SqInchToSqMile(SqInches: FLOAT): FLOAT;
FUNCTION SqMileToSqInch(SqMiles: FLOAT): FLOAT;
FUNCTION SqInchToAcre(SqInches: FLOAT): FLOAT;
FUNCTION AcreToSqInch(Acres: FLOAT): FLOAT;
FUNCTION SqInchToSqMeter(SqInches: FLOAT): FLOAT;
FUNCTION SqMeterToSqInch(SqMeters: FLOAT): FLOAT;
FUNCTION CuInchToCuFeet(CuInches: FLOAT): FLOAT;
FUNCTION CuFeetToCuInch(CuFeet: FLOAT): FLOAT;
FUNCTION CuInchToCuYard(CuInches: FLOAT): FLOAT;
FUNCTION CuYardToCuInch(CuYards: FLOAT): FLOAT;
FUNCTION CuInchToCuMeter(CuInches: FLOAT): FLOAT;
FUNCTION CuMeterToCuInch(CuMeters: FLOAT): FLOAT;
FUNCTION FluidOzToPint(FluidOz: FLOAT): FLOAT;
FUNCTION PintToFluidOz(Pints: FLOAT): FLOAT;
FUNCTION FluidOzToImpPint(FluidOz: FLOAT): FLOAT;
FUNCTION ImpPintToFluidOz(ImpPints: FLOAT): FLOAT;
FUNCTION FluidOzToGals(FluidOz: FLOAT): FLOAT;
FUNCTION GalsToFluidOz(Gals: FLOAT): FLOAT;
FUNCTION FluidOzToImpGals(FluidOz: FLOAT): FLOAT;
FUNCTION ImpGalsToFluidOz(ImpGals: FLOAT): FLOAT;
FUNCTION FluidOzToCuMeter(FluidOz: FLOAT): FLOAT;
FUNCTION CuMeterToFluidOz(CuMeters: FLOAT): FLOAT;
PROCEDURE OunceToLbOz(Ounces: FLOAT; VAR lb,oz: FLOAT);
FUNCTION LbOzToOunce(lb,oz: FLOAT): FLOAT;
FUNCTION OunceToTon(Ounces: FLOAT): FLOAT;
FUNCTION TonToOunce(Tons: FLOAT): FLOAT;
FUNCTION OunceToLongTon(Ounces: FLOAT): FLOAT;
FUNCTION LongTonToOunce(LongTons: FLOAT): FLOAT;
FUNCTION OunceToGram(Ounces: FLOAT): FLOAT;
FUNCTION GramToOunce(Grams: FLOAT): FLOAT;
IMPLEMENTATION
{ Temperature conversion }
FUNCTION FahrToCent(FahrTemp: FLOAT): FLOAT;
BEGIN
FahrToCent:=(FahrTemp+40.0)*(5.0/9.0)-40.0;
END;
FUNCTION CentToFahr(CentTemp: FLOAT): FLOAT;
BEGIN
CentToFahr:=(CentTemp+40.0)*(9.0/5.0)-40.0;
END;
FUNCTION KelvToCent(KelvTemp: FLOAT): FLOAT;
BEGIN
KelvToCent:=KelvTemp-273.16;
END;
FUNCTION CentToKelv(CentTemp: FLOAT): FLOAT;
BEGIN
CentToKelv:=CentTemp+273.16;
END;
{ Linear measurement conversion }
PROCEDURE InchToFtIn(Inches: FLOAT; VAR ft,ins: FLOAT);
BEGIN
ft:=INT(Inches/12.0);
ins:=Inches-ft*12.0;
END;
FUNCTION FtInToInch(ft,ins: FLOAT): FLOAT;
BEGIN
FtInToInch:=ft*12.0+ins;
END;
FUNCTION InchToYard(Inches: FLOAT): FLOAT;
BEGIN
InchToYard:=Inches/36.0;
END;
FUNCTION YardToInch(Yards: FLOAT): FLOAT;
BEGIN
YardToInch:=Yards*36.0;
END;
FUNCTION InchToMile(Inches: FLOAT): FLOAT;
BEGIN
InchToMile:=Inches/63360.0;
END;
FUNCTION MileToInch(Miles: FLOAT): FLOAT;
BEGIN
MileToInch:=Miles*63360.0;
END;
FUNCTION InchToNautMile(Inches: FLOAT): FLOAT;
BEGIN
InchToNautMile:=Inches/72960.0;
END;
FUNCTION NautMileToInch(NautMiles: FLOAT): FLOAT;
BEGIN
NautMileToInch:=NautMiles*72960.0;
END;
FUNCTION InchToMeter(Inches: FLOAT): FLOAT;
BEGIN
InchToMeter:=Inches*0.0254;
END;
FUNCTION MeterToInch(Meters: FLOAT): FLOAT;
BEGIN
MeterToInch:=Meters/0.0254;
END;
{ Area conversion }
FUNCTION SqInchToSqFeet(SqInches: FLOAT): FLOAT;
BEGIN
SqInchToSqFeet:=SqInches/144.0;
END;
FUNCTION SqFeetToSqInch(SqFeet: FLOAT): FLOAT;
BEGIN
SqFeetToSqInch:=SqFeet*144.0;
END;
FUNCTION SqInchToSqYard(SqInches: FLOAT): FLOAT;
BEGIN
SqInchToSqYard:=SqInches/1296.0;
END;
FUNCTION SqYardToSqInch(SqYards: FLOAT): FLOAT;
BEGIN
SqYardToSqInch:=SqYards*1296.0;
END;
FUNCTION SqInchToSqMile(SqInches: FLOAT): FLOAT;
BEGIN
SqInchToSqMile:=SqInches/4.0144896E9;
END;
FUNCTION SqMileToSqInch(SqMiles: FLOAT): FLOAT;
BEGIN
SqMileToSqInch:=SqMiles*4.0144896E9;
END;
FUNCTION SqInchToAcre(SqInches: FLOAT): FLOAT;
BEGIN
SqInchToAcre:=SqInches/6272640.0;
END;
FUNCTION AcreToSqInch(Acres: FLOAT): FLOAT;
BEGIN
AcreToSqInch:=Acres*6272640.0;
END;
FUNCTION SqInchToSqMeter(SqInches: FLOAT): FLOAT;
BEGIN
SqInchToSqMeter:=SqInches/1550.016;
END;
FUNCTION SqMeterToSqInch(SqMeters: FLOAT): FLOAT;
BEGIN
SqMeterToSqInch:=SqMeters*1550.016;
END;
{ Volume conversion }
FUNCTION CuInchToCuFeet(CuInches: FLOAT): FLOAT;
BEGIN
CuInchToCuFeet:=CuInches/1728.0;
END;
FUNCTION CuFeetToCuInch(CuFeet: FLOAT): FLOAT;
BEGIN
CuFeetToCuInch:=CuFeet*1728.0;
END;
FUNCTION CuInchToCuYard(CuInches: FLOAT): FLOAT;
BEGIN
CuInchToCuYard:=CuInches/46656.0;
END;
FUNCTION CuYardToCuInch(CuYards: FLOAT): FLOAT;
BEGIN
CuYardToCuInch:=CuYards*46656.0;
END;
FUNCTION CuInchToCuMeter(CuInches: FLOAT): FLOAT;
BEGIN
CuInchToCuMeter:=CuInches/61022.592;
END;
FUNCTION CuMeterToCuInch(CuMeters: FLOAT): FLOAT;
BEGIN
CuMeterToCuInch:=CuMeters*61022.592;
END;
{ Liquid measurement conversion }
FUNCTION FluidOzToPint(FluidOz: FLOAT): FLOAT;
BEGIN
FluidOzToPint:=FluidOz/16.0;
END;
FUNCTION PintToFluidOz(Pints: FLOAT): FLOAT;
BEGIN
PintToFluidOz:=Pints*16.0;
END;
FUNCTION FluidOzToImpPint(FluidOz: FLOAT): FLOAT;
BEGIN
FluidOzToImpPint:=FluidOz/20.0;
END;
FUNCTION ImpPintToFluidOz(ImpPints: FLOAT): FLOAT;
BEGIN
ImpPintToFluidOz:=ImpPints*20.0;
END;
FUNCTION FluidOzToGals(FluidOz: FLOAT): FLOAT;
BEGIN
FluidOzToGals:=FluidOz/128.0;
END;
FUNCTION GalsToFluidOz(Gals: FLOAT): FLOAT;
BEGIN
GalsToFluidOz:=Gals*128.0;
END;
FUNCTION FluidOzToImpGals(FluidOz: FLOAT): FLOAT;
BEGIN
FluidOzToImpGals:=FluidOz/160.0;
END;
FUNCTION ImpGalsToFluidOz(ImpGals: FLOAT): FLOAT;
BEGIN
ImpGalsToFluidOz:=ImpGals*160.0;
END;
FUNCTION FluidOzToCuMeter(FluidOz: FLOAT): FLOAT;
BEGIN
FluidOzToCuMeter:=FluidOz/33820.0;
END;
FUNCTION CuMeterToFluidOz(CuMeters: FLOAT): FLOAT;
BEGIN
CuMeterToFluidOz:=CuMeters*33820.0;
END;
{ Weight conversion }
PROCEDURE OunceToLbOz(Ounces: FLOAT; VAR lb,oz: FLOAT);
BEGIN
lb:=INT(Ounces/16.0);
oz:=Ounces-lb*16.0;
END;
FUNCTION LbOzToOunce(lb,oz: FLOAT): FLOAT;
BEGIN
LbOzToOunce:=lb*16.0+oz;
END;
FUNCTION OunceToTon(Ounces: FLOAT): FLOAT;
BEGIN
OunceToTon:=Ounces/32000.0;
END;
FUNCTION TonToOunce(Tons: FLOAT): FLOAT;
BEGIN
TonToOunce:=Tons*32000.0;
END;
FUNCTION OunceToLongTon(Ounces: FLOAT): FLOAT;
BEGIN
OunceToLongTon:=Ounces/35840.0;
END;
FUNCTION LongTonToOunce(LongTons: FLOAT): FLOAT;
BEGIN
LongTonToOunce:=LongTons*35840.0;
END;
FUNCTION OunceToGram(Ounces: FLOAT): FLOAT;
BEGIN
OunceToGram:=Ounces*28.35;
END;
FUNCTION GramToOunce(Grams: FLOAT): FLOAT;
BEGIN
GramToOunce:=Grams/28.35;
END;
END.
[Back to MATH SWAG index] [Back to Main SWAG index] [Original]