mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-30 23:11:47 +01:00
* operators for clongdouble
git-svn-id: trunk@8229 -
This commit is contained in:
parent
4b1fa9bc27
commit
6d4ccd3b3f
@ -112,12 +112,48 @@ type
|
|||||||
{$ifdef longdouble_assignment_overload_real80}
|
{$ifdef longdouble_assignment_overload_real80}
|
||||||
operator := (const v:clongdouble) r:extended;inline;
|
operator := (const v:clongdouble) r:extended;inline;
|
||||||
operator := (const v:extended) r:clongdouble;inline;
|
operator := (const v:extended) r:clongdouble;inline;
|
||||||
|
operator +(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
operator +(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
operator -(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
operator -(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
operator *(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
operator *(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
operator /(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
operator /(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
operator =(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator =(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
operator <(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator <(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
operator >(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator >(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
operator >=(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator >=(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
operator <=(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator <=(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
{$ifdef longdouble_assignment_overload_real128}
|
{$ifdef longdouble_assignment_overload_real128}
|
||||||
{Non-x86 typically doesn't have extended. To be fixed once this changes.}
|
{Non-x86 typically doesn't have extended. To be fixed once this changes.}
|
||||||
operator := (const v:clongdouble) r:double;inline;
|
operator := (const v:clongdouble) r:double;inline;
|
||||||
operator := (const v:double) r:clongdouble;inline;
|
operator := (const v:double) r:clongdouble;inline;
|
||||||
|
operator +(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
operator +(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
operator -(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
operator -(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
operator *(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
operator *(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
operator /(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
operator /(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
operator =(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator =(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
operator <(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator <(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
operator >(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator >(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
operator >=(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator >=(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
operator <=(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
operator <=(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -134,6 +170,96 @@ operator := (const v:extended) r:clongdouble;
|
|||||||
begin
|
begin
|
||||||
r.value:=v;
|
r.value:=v;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
operator +(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=e+c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator +(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value+e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator -(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=e-c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator -(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value-e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator *(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=e*c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator *(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value*e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator /(const e:Extended;const c:clongdouble) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=e/c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator /(const c:clongdouble;const e:Extended) r:extended;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value/e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator =(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e=c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator =(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value=e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e<c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value<e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e>c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value>e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >=(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e>=c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >=(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value>=e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <=(const e:Extended;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e<=c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <=(const c:clongdouble;const e:Extended) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value<=e;
|
||||||
|
end;
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
{$ifdef longdouble_assignment_overload_real128}
|
{$ifdef longdouble_assignment_overload_real128}
|
||||||
@ -161,6 +287,96 @@ begin
|
|||||||
Pcardinal(@r[r128_mantissa_ofs+8])^:=0;
|
Pcardinal(@r[r128_mantissa_ofs+8])^:=0;
|
||||||
Pword(@r[r128_mantissa_ofs+12])^:=0;
|
Pword(@r[r128_mantissa_ofs+12])^:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
operator +(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=e+c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator +(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value+e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator -(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=e-c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator -(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value-e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator *(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=e*c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator *(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value*e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator /(const e:Double;const c:clongdouble) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=e/c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator /(const c:clongdouble;const e:Double) r:Double;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value/e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator =(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e=c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator =(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value=e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e<c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value<e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e>c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value>e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >=(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e>=c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator >=(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value>=e;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <=(const e:Double;const c:clongdouble) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=e<=c.value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
operator <=(const c:clongdouble;const e:Double) r:boolean;inline;
|
||||||
|
begin
|
||||||
|
r:=c.value<=e;
|
||||||
|
end;
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user