Annotation of rpl/src/bibliotheque_logarithmique.f, revision 1.1
1.1 ! bertrand 1: C===============================================================================
! 2: C RPL/2 (R) version 4.0.9
! 3: C Copyright (C) 1989-2010 Dr. BERTRAND Joël
! 4: C
! 5: C This file is part of RPL/2.
! 6: C
! 7: C RPL/2 is free software; you can redistribute it and/or modify it
! 8: C under the terms of the CeCILL V2 License as published by the french
! 9: C CEA, CNRS and INRIA.
! 10: C
! 11: C RPL/2 is distributed in the hope that it will be useful, but WITHOUT
! 12: C ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
! 13: C FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL V2 License
! 14: C for more details.
! 15: C
! 16: C You should have received a copy of the CeCILL License
! 17: C along with RPL/2. If not, write to info@cecill.info.
! 18: C===============================================================================
! 19:
! 20:
! 21: C===============================================================================
! 22: C Fonctions logarithmiques diverses
! 23: C===============================================================================
! 24:
! 25: C-------------------------------------------------------------------------------
! 26: C Logarithme naturel
! 27: C-------------------------------------------------------------------------------
! 28:
! 29: subroutine F77LNIP(ARGUMENT, RESULTAT, ERREUR)
! 30:
! 31: implicit none
! 32:
! 33: integer*4 ERREUR
! 34:
! 35: integer*8 ARGUMENT
! 36:
! 37: real*8 RESULTAT
! 38:
! 39: if (ARGUMENT.ne.0) then
! 40: RESULTAT = log(dble(ARGUMENT))
! 41: ERREUR = 0
! 42: else
! 43: RESULTAT = 0
! 44: ERREUR = -1
! 45: end if
! 46: return
! 47: end
! 48:
! 49: subroutine F77LNIN(ARGUMENT, RESULTAT, ERREUR)
! 50:
! 51: implicit none
! 52:
! 53: complex*16 RESULTAT
! 54:
! 55: integer*4 ERREUR
! 56:
! 57: integer*8 ARGUMENT
! 58:
! 59: if (ARGUMENT.ne.0) then
! 60: RESULTAT = log(dble(ARGUMENT) + (0,0))
! 61: ERREUR = 0
! 62: else
! 63: RESULTAT = 0
! 64: ERREUR = -1
! 65: end if
! 66: return
! 67: end
! 68:
! 69: subroutine F77LNRP(ARGUMENT, RESULTAT, ERREUR)
! 70:
! 71: implicit none
! 72:
! 73: integer*4 ERREUR
! 74:
! 75: real*8 ARGUMENT
! 76: real*8 RESULTAT
! 77:
! 78: if (ARGUMENT.ne.0) then
! 79: RESULTAT = log(ARGUMENT)
! 80: ERREUR = 0
! 81: else
! 82: RESULTAT = 0
! 83: ERREUR = -1
! 84: end if
! 85: return
! 86: end
! 87:
! 88: subroutine F77LNRN(ARGUMENT, RESULTAT, ERREUR)
! 89:
! 90: implicit none
! 91:
! 92: complex*16 RESULTAT
! 93:
! 94: integer*4 ERREUR
! 95:
! 96: real*8 ARGUMENT
! 97:
! 98: if (ARGUMENT.ne.0) then
! 99: RESULTAT = log(ARGUMENT + (0,0))
! 100: ERREUR = 0
! 101: else
! 102: RESULTAT = 0
! 103: ERREUR = -1
! 104: end if
! 105: return
! 106: end
! 107:
! 108: subroutine F77LNC(ARGUMENT, RESULTAT, ERREUR)
! 109:
! 110: implicit none
! 111:
! 112: complex*16 ARGUMENT
! 113: complex*16 RESULTAT
! 114:
! 115: integer*4 ERREUR
! 116:
! 117: if (ARGUMENT.ne.0) then
! 118: RESULTAT = log(ARGUMENT)
! 119: ERREUR = 0
! 120: else
! 121: RESULTAT = 0
! 122: ERREUR = -1
! 123: end if
! 124: return
! 125: end
! 126:
! 127: C-------------------------------------------------------------------------------
! 128: C Logarithme vulgaire
! 129: C-------------------------------------------------------------------------------
! 130:
! 131: subroutine F77LOGIP(ARGUMENT, RESULTAT, ERREUR)
! 132:
! 133: implicit none
! 134:
! 135: integer*4 ERREUR
! 136:
! 137: integer*8 ARGUMENT
! 138:
! 139: real*8 RESULTAT
! 140:
! 141: if (ARGUMENT.ne.0) then
! 142: RESULTAT = log(dble(ARGUMENT)) / log(1D1)
! 143: ERREUR = 0
! 144: else
! 145: RESULTAT = 0
! 146: ERREUR = -1
! 147: end if
! 148: return
! 149: end
! 150:
! 151: subroutine F77LOGIN(ARGUMENT, RESULTAT, ERREUR)
! 152:
! 153: implicit none
! 154:
! 155: complex*16 RESULTAT
! 156:
! 157: integer*4 ERREUR
! 158:
! 159: integer*8 ARGUMENT
! 160:
! 161: if (ARGUMENT.ne.0) then
! 162: RESULTAT = log(dble(ARGUMENT) + (0,0)) / log(1D1)
! 163: ERREUR = 0
! 164: else
! 165: RESULTAT = 0
! 166: ERREUR = -1
! 167: end if
! 168: return
! 169: end
! 170:
! 171: subroutine F77LOGRP(ARGUMENT, RESULTAT, ERREUR)
! 172:
! 173: implicit none
! 174:
! 175: integer*4 ERREUR
! 176:
! 177: real*8 ARGUMENT
! 178: real*8 RESULTAT
! 179:
! 180: if (ARGUMENT.ne.0) then
! 181: RESULTAT = log(ARGUMENT) / log(1D1)
! 182: ERREUR = 0
! 183: else
! 184: RESULTAT = 0
! 185: ERREUR = -1
! 186: end if
! 187: return
! 188: end
! 189:
! 190: subroutine F77LOGRN(ARGUMENT, RESULTAT, ERREUR)
! 191:
! 192: implicit none
! 193:
! 194: complex*16 RESULTAT
! 195: integer*4 ERREUR
! 196:
! 197: real*8 ARGUMENT
! 198:
! 199: if (ARGUMENT.ne.0) then
! 200: RESULTAT = log(ARGUMENT + (0,0)) / log(1D1)
! 201: ERREUR = 0
! 202: else
! 203: RESULTAT = 0
! 204: ERREUR = -1
! 205: end if
! 206: return
! 207: end
! 208:
! 209: subroutine F77LOGC(ARGUMENT, RESULTAT, ERREUR)
! 210:
! 211: implicit none
! 212:
! 213: complex*16 ARGUMENT
! 214: complex*16 RESULTAT
! 215:
! 216: integer*4 ERREUR
! 217:
! 218: if (ARGUMENT.ne.0) then
! 219: RESULTAT = log(ARGUMENT) / log(1D1)
! 220: ERREUR = 0
! 221: else
! 222: RESULTAT = 0
! 223: ERREUR = -1
! 224: end if
! 225: return
! 226: end
! 227:
! 228: C-------------------------------------------------------------------------------
! 229: C Sinus hyperbolique
! 230: C-------------------------------------------------------------------------------
! 231:
! 232: subroutine F77SINH(ARGUMENT, RESULTAT)
! 233:
! 234: implicit none
! 235:
! 236: complex*16 ARGUMENT
! 237: complex*16 RESULTAT
! 238:
! 239: RESULTAT = (exp(ARGUMENT) - exp(-ARGUMENT)) / 2
! 240: return
! 241: end
! 242:
! 243: subroutine F77ASINHC(ARGUMENT, RESULTAT)
! 244:
! 245: implicit none
! 246:
! 247: complex*16 ARGUMENT
! 248: complex*16 RESULTAT
! 249:
! 250: RESULTAT = log(ARGUMENT + sqrt((ARGUMENT ** 2) + 1))
! 251: return
! 252: end
! 253:
! 254: subroutine F77ASINHI(ARGUMENT, RESULTAT)
! 255:
! 256: implicit none
! 257:
! 258: integer*8 ARGUMENT
! 259: real*8 RESULTAT
! 260:
! 261: RESULTAT = log(ARGUMENT + sqrt((dble(ARGUMENT) ** 2) + 1))
! 262: return
! 263: end
! 264:
! 265: subroutine F77ASINHR(ARGUMENT, RESULTAT)
! 266:
! 267: implicit none
! 268:
! 269: real*8 ARGUMENT
! 270: real*8 RESULTAT
! 271:
! 272: RESULTAT = log(ARGUMENT + sqrt((dble(ARGUMENT) ** 2) + 1))
! 273: return
! 274: end
! 275:
! 276: C-------------------------------------------------------------------------------
! 277: C Cosinus hyperbolique
! 278: C-------------------------------------------------------------------------------
! 279:
! 280: subroutine F77COSH(ARGUMENT, RESULTAT)
! 281:
! 282: implicit none
! 283:
! 284: complex*16 ARGUMENT
! 285: complex*16 RESULTAT
! 286:
! 287: RESULTAT = (exp(ARGUMENT) + exp(-ARGUMENT)) / 2
! 288: return
! 289: end
! 290:
! 291: subroutine F77ACOSHC(ARGUMENT, RESULTAT)
! 292:
! 293: implicit none
! 294:
! 295: complex*16 ARGUMENT
! 296: complex*16 RESULTAT
! 297:
! 298: RESULTAT = log(ARGUMENT + sqrt((ARGUMENT ** 2) - 1))
! 299: return
! 300: end
! 301:
! 302: subroutine F77ACOSHI(ARGUMENT, RESULTAT)
! 303:
! 304: implicit none
! 305:
! 306: integer*8 ARGUMENT
! 307: real*8 RESULTAT
! 308:
! 309: RESULTAT = log(ARGUMENT + sqrt((dble(ARGUMENT) ** 2) - 1))
! 310: return
! 311: end
! 312:
! 313: subroutine F77ACOSHR(ARGUMENT, RESULTAT)
! 314:
! 315: implicit none
! 316:
! 317: real*8 ARGUMENT
! 318: real*8 RESULTAT
! 319:
! 320: RESULTAT = log(ARGUMENT + sqrt((dble(ARGUMENT) ** 2) - 1))
! 321: return
! 322: end
! 323:
! 324: C-------------------------------------------------------------------------------
! 325: C Tangente hyperbolique
! 326: C-------------------------------------------------------------------------------
! 327:
! 328: subroutine F77TANH(ARGUMENT, RESULTAT, ERREUR)
! 329:
! 330: implicit none
! 331:
! 332: complex*16 ARGUMENT
! 333: complex*16 COSINUSH
! 334: complex*16 RESULTAT
! 335: complex*16 SINUSH
! 336:
! 337: integer*4 ERREUR
! 338:
! 339: ERREUR = 0
! 340:
! 341: if (dimag(ARGUMENT).eq.0) then
! 342: RESULTAT = dtan(dble(ARGUMENT))
! 343: else
! 344: call F77COSH(ARGUMENT, COSINUSH)
! 345:
! 346: if (COSINUSH.ne.0) then
! 347: call F77SINH(ARGUMENT, SINUSH)
! 348: RESULTAT = SINUSH / COSINUSH
! 349: else
! 350: RESULTAT = 0
! 351: ERREUR = -1
! 352: end if
! 353: end if
! 354: return
! 355: end
! 356:
! 357: subroutine F77ATANHC(ARGUMENT, RESULTAT)
! 358:
! 359: implicit none
! 360:
! 361: complex*16 ARGUMENT
! 362: complex*16 RESULTAT
! 363:
! 364: RESULTAT = log((1 + ARGUMENT) / (1 - ARGUMENT)) / 2
! 365: return
! 366: end
! 367:
! 368: subroutine F77ATANHI(ARGUMENT, RESULTAT)
! 369:
! 370: implicit none
! 371:
! 372: integer*8 ARGUMENT
! 373: real*8 RESULTAT
! 374:
! 375: RESULTAT = log((1 + dble(ARGUMENT)) / (1 - dble(ARGUMENT))) / 2
! 376: return
! 377: end
! 378:
! 379: subroutine F77ATANHR(ARGUMENT, RESULTAT)
! 380:
! 381: implicit none
! 382:
! 383: real*8 ARGUMENT
! 384: real*8 RESULTAT
! 385:
! 386: RESULTAT = log((1 + ARGUMENT) / (1 - ARGUMENT)) / 2
! 387: return
! 388: end
! 389:
! 390: C-------------------------------------------------------------------------------
! 391: C Exponentielle complexe
! 392: C-------------------------------------------------------------------------------
! 393:
! 394: subroutine F77EXPC(ARGUMENT, RESULTAT)
! 395:
! 396: implicit none
! 397:
! 398: complex*16 ARGUMENT
! 399: complex*16 RESULTAT
! 400:
! 401: RESULTAT = exp(ARGUMENT)
! 402: return
! 403: end
! 404:
! 405: C-------------------------------------------------------------------------------
! 406: C Alog complexe
! 407: C-------------------------------------------------------------------------------
! 408:
! 409: subroutine F77ALOGC(ARGUMENT, RESULTAT)
! 410:
! 411: implicit none
! 412:
! 413: complex*16 ARGUMENT
! 414: complex*16 RESULTAT
! 415:
! 416: RESULTAT = 10 ** ARGUMENT
! 417: return
! 418: end
CVSweb interface <joel.bertrand@systella.fr>