Rectangular Complex Number Addition
Validation and Benchmark Tool:
ComplexRegtAddBV11.zip
Tables of results:
CmplxRegtAddBenchmarks11.xls
Description
(The following description was written by Lars Gravengaard, April, 2006)
There are three overloaded functions differing in the input and output datatype.
function RegtAdd(const X, Y : TRegtangularComplexE) : TRegtangularComplexE; overload;
function RegtAdd(const X, Y : TRegtangularComplexD) : TRegtangularComplexD; overload;
function RegtAdd(const X, Y : TRegtangularComplexS) : TRegtangularComplexS; overload;
Type definition
TRegtangularComplexS = packed record
RealPart, ImaginaryPart : Single;
end;
TRegtangularComplexD = packed record
RealPart, ImaginaryPart : Double;
end;
TRegtangularComplexE = packed record
RealPart : Extended;
Pad1 : Cardinal; //4 byte
Pad2 : SmallInt; //2 byte
ImaginaryPart : Extended;
Pad3 : Cardinal; //4 byte
Pad4 : SmallInt; //2 byte
end;
TPolarComplexS = packed record
Amplitude, Phase : Single;
end;
TPolarComplexD = packed record
Amplitude, Phase : Double;
end;
TPolarComplexE = packed record
Amplitude : Extended;
Pad1 : Cardinal; //4 byte
Pad2 : SmallInt; //2 byte
Phase : Extended;
Pad3 : Cardinal; //4 byte
Pad4 : SmallInt; //2 byte
end;