{+doc
+NOMBRE:
+CREACION:
+AUTORES:  Planchon
+REGISTRO:
+TIPO: Unidad Pascal.
+PROPOSITO:  servicios varios para la unit (IT)
+PROYECTO: SOLAR.

+REVISION:
+AUTOR:
+DESCRIPCION:
-doc}
{$D-,L-}
unit matpole;


interface
uses
	xMatDefs;

function max(x,y:integer):integer;
function min(x,y:integer):integer;
function minreal(x,y:NReal):NReal;
function sign(x:NReal):NReal;
function tan(x:NReal):NReal;
function Arcos(x:NReal):NReal;



implementation

function max(x,y:integer):integer;
begin
		if x>y then max:=x
				 else max:=y;
end;

function min(x,y:integer):integer;
begin
		if x<y then min:=x
				 else min:=y;
end;

function minreal(x,y:NReal):NReal;
begin
		if x<y then minreal:=x
				 else minreal:=y;
end;


function sign(x:NReal):NReal;
begin
                if x=0 then sign:=0
                       else sign:=x/abs(x);
end;

function Tan(x:NReal):NReal;
begin
	Tan:=Sin(x)/Cos(x);
end;

Function Arcos(x:NReal):NReal;
begin
	if Abs(x)<1e-6 then
	begin
		Arcos:= pi/2;
	end
	else
		if x>0 then Arcos:=ArcTan(sqrt(1-sqr(x))/x)
			 else Arcos:=pi+ArcTan(sqrt(1-sqr(x))/x);
end;

end.
