Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GRIGOREV.DOC
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
608 Кб
Скачать
☆

2.5. Стандартные математические функции

В языке FORTRAN есть большое количество стандартных арифметических функций, причем почти каждая из них имеет несколько разновидностей, отличающихся типом аргумента и типом возвращаемого значения. Здесь приводится лишь часть из них. Запись вида

INT(integer/real/complex) INTEGER

означает, что функция INT может иметь аргумент любого целого, любого вещественного и любого комплексного типа, а результат, возвращаемый этой функцией, имеет тип INTEGER. Запись вида

ABS(integer/real/complex) integer/real

означает, что функция ABS может иметь аргумент любого числового типа и возвращает значение того же типа для целых и вещественных аргументов, значение типа REAL*4 для аргумента COMPLEX*8 и значение типа REAL*8 для аргумента COMPLEX*16. Во всех случаях имя типа, записанное большими буквами, означает только этот конкретный тип, а имя типа, записанное малыми буквами, - любой из подходящих типов:

а) преобразование к целому типу:

1. INT(integer/real/complex) INTEGER

2. INT1(integer/real/complex) INTEGER*1

3. INT2(integer/real/complex) INTEGER*2

4. INT4(integer/real/complex) INTEGER*4

б) преобразование к вещественному типу:

5. REAL(integer/real/complex) REAL*4

6. DREAL(integer/real/complex) REAL*8

в) преобразования символа в число:

7. ICHAR(character) INTEGER*1

г) преобразование числа в символ:

8. CHAR(integer) CHARACTER

д) целая часть числа:

9. AINT(real) real

10. DINT(real) REAL*8

е) округление:

11. ANINT(real) real

12. DNINT(real) REAL*8

13. NINT(real) INTEGER

ж) абсолютная величина числа:

14. ABS(integer/real/complex) integer/real

15. IABS(integer/real/complex) integer

16. DABS(integer/real/complex) REAL*8

з) знак числа (функции возвращают абсолютную величину первого аргумента, умноженную на знак второго аргумента):

17. SIGN(integer/real,integer/real) integer/real

18. ISIGN(integer/real,integer/real) INTEGER

19. DSIGN(integer/real,integer/real) REAL*8

и) остаток от деления:

20. MOD(integer/real,integer/real) integer/real

21. AMOD(integer/real,integer/real) REAL*4

22. DMOD(integer/real,integer/real) REAL*8

к) положительная разность (функции возвращают разность первого и второго аргумента, если она положительна, или 0):

23. DIM(integer/real,integer/real) integer/real

24. IDIM(integer/real,integer/real) INTEGER

25. DDIM(integer/real,integer/real) REAL*8

л) максимальное и минимальное значение (функции допускают любое количество аргументов):

26. MAX(integer/real,...) integer/real

27. MAX1(integer/real,...) INTEGER

28. AMAX1(integer/real,...) REAL*4

29. DMAX1(integer/real,...) REAL*8

30. MIN(integer/real,...) integer/real

31. MIN1(integer/real,...) INTEGER

32. AMIN1(integer/real,...) REAL*4

33. DMIN1(integer/real,...) REAL*8

м) произведение с двойной точностью:

34. DPROD(integer/real,integer/real) REAL*8

н) мнимая часть и комплексно сопряженное число:

35. IMAG(complex) real

36. DIMAG(complex) REAL*8

37. CONJG(complex) complex

38. DCONJG(complex) COMPLEX*16

о) квадратный корень:

39. SQRT(integer/real/complex) real/complex

40. DSQRT(integer/real) REAL*8

41. CSQRT(integer/real/complex) COMPLEX*8

42. CDSQRT(integer/real/complex) COMPLEX*16

п) экспонента:

43. EXP(integer/real/complex) real/complex

44. DEXP(integer/real) REAL*8

45. CEXP(integer/real/complex) COMPLEX*8

46. CDEXP(integer/real/complex) COMPLEX*16

р) натуральный логарифм:

47. LOG(integer/real/complex) real/complex

48. ALOG(integer/real) REAL*4

49. DLOG(integer/real) REAL*8

50. CLOG(integer/real/complex) COMPLEX*8

51. CDLOG(integer/real/complex) COMPLEX*16

с) десятичный логарифм:

52. LOG10(real) real

53. ALOG10(integer/real) REAL*4

54. DLOG10(integer/real) REAL*8

т) тригонометрические функции:

55. SIN(integer/real/complex) integer/real/complex

56. DSIN(integer/real) REAL*8

57. CSIN(integer/real/complex) COMPLEX*8

58. CDSIN(integer/real/complex) COMPLEX*16

59. COS(integer/real/complex) integer/real/complex

60. DCOS(integer/real) REAL*8

61. CCOS(integer/real/complex) COMPLEX*8

62. CDCOS(integer/real/complex) COMPLEX*16

63. TAN(real) real

64. DTAN(integer/real) REAL*8

65. COTAN(real) real

66. DCOTAN(integer/real) REAL*8

у) обратные тригонометрические функции:

67. ASIN(real) real

68. DASIN(integer/real) REAL*8

69. ACOS(real) real

70. DACOS(integer/real) REAL*8

71. ATAN(real) real

72. DATAN(integer/real) REAL*8

73. ATAN2(real,real) real

74. DATAN2(integer/real,integer/real) REAL*8

ф) гиперболические функции:

75. SINH(real/complex) real

76. DSINH(integer/real/complex) REAL*8

77. COSH(real/complex) real

78. DCOSH(integer/real/complex) REAL*8

79. TANH(real/complex) real

80. DTANH(integer/real/complex) REAL*8

х) битовые функции:

81. NOT(integer) integer - битовое отрицание

82. IAND(integer,integer) integer - битовое “и”

83. IOR(integer,integer) integer - битовое “или”

84. IEOR(integer,integer) integer - битовое исключающее “или”

85. ISHL(integer,integer) integer - сдвиг влево, если второй аргумент положителен, или вправо, если второй аргумент отрицателен. Функция полностью аналогична операциям ShL и ShR в языке PASCAL и операциям << и >> в языке C

86. ISHA(integer,integer) integer - “арифметический” сдвиг, в отличие от ISHL при сдвиге вправо старший - знаковый бит заполняет все освободившиеся позиции

87. ISHC(integer,integer) integer - циклический сдвиг, осуществляет циклическую перестановку битов, ни один бит при этом не теряется

88. BTEST(integer,integer) LOGICAL - возвращает .TRUE., если бит первого аргумента с номером, заданным вторым аргументом, единичный. Биты нумеруются от младшего к старшему, номер самого младшего бита равен 0.

89. IBCLR(integer,integer) integer - зануляет бит первого аргумента с номером, равным второму аргументу

90. IBSET(integer,integer)integer заединичивает бит первого аргумента с номером, равным второму аргументу

91. IBCHNG(integer,integer) integer - меняет значение бита на противоположное

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]