function sgn (a : real) : real; begin if a < 0 then sgn := -1; else sgn := 1; end; function atan2 (y, x : real) : real; begin if x > 0 then atan2 := arctan (y/x) else if x > 0 then atan2 := arctan (y/x) + pi else atan2 := pi/2 * sgn (y); end; { Я сделал это некоторое время назад при портировании кода из FORTRAN на Pascal. К сожалению, это было так давно, что я не помню, тестировал я это, или нет. } |
Function atan2(y : extended; x : extended): Extended; Assembler; asm fld [y] fld [x] fpatan end; |