home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2src / complexl.def < prev    next >
Text File  |  1995-08-16  |  2KB  |  78 lines

  1. DEFINITION MODULE ComplexLib;
  2.  
  3. (**************************************************************************
  4.   OS/2 2.x  Modula-2 complex number library
  5.  
  6.             Aug 16, 1995 -- Created.
  7.  
  8.   Copyright (c) 1995 by Anthony Busigin. Permission is granted for
  9.   use of this software with the Modula-2 OS/2-compiler by Juergen Neuhoff.
  10.  
  11.   Note: This library is a work in progress. SHORTCOMPLEX functions will
  12.         be added in a future version of the library.
  13. **************************************************************************)
  14.  
  15. TYPE
  16.   COMPLEX = RECORD
  17.     r,i : REAL;
  18.   END;
  19.  
  20.   SHORTCOMPLEX = RECORD
  21.     r,i : SHORTREAL;
  22.   END;
  23.  
  24.   LONGCOMPLEX = RECORD
  25.     r,i : LONGREAL;
  26.   END;
  27.  
  28. PROCEDURE cadd( x, y : LONGCOMPLEX ) : LONGCOMPLEX;
  29. (* returns x+y *)
  30.  
  31. PROCEDURE csub( x, y : LONGCOMPLEX ) : LONGCOMPLEX;
  32. (* returns x-y *)
  33.  
  34. PROCEDURE cmul( x, y : LONGCOMPLEX ) : LONGCOMPLEX;
  35. (* returns x*y *)
  36.  
  37. PROCEDURE rcmul ( a : LONGREAL;  x: LONGCOMPLEX ) : LONGCOMPLEX;
  38. (* returns a*x *)
  39.  
  40. PROCEDURE cdiv( x, y : LONGCOMPLEX ) : LONGCOMPLEX;
  41. (* returns x/y *)
  42.  
  43. PROCEDURE cdivr ( x: LONGCOMPLEX; a : LONGREAL ) : LONGCOMPLEX;
  44. (* returns x/a *)
  45.  
  46. PROCEDURE csqr( x : LONGCOMPLEX ) : LONGCOMPLEX;
  47. (* returns x*x *)
  48.  
  49. PROCEDURE csqrt( x : LONGCOMPLEX ) : LONGCOMPLEX;
  50. (* returns complex square root of x *)
  51.  
  52. PROCEDURE lcmplx( r, i : LONGREAL ) : LONGCOMPLEX;
  53. (* returns complex number *)
  54.  
  55. PROCEDURE cmag( x : LONGCOMPLEX ) : LONGREAL;
  56. (* returns magnitude of x = sqrt(x.r*x.r+x.i*x.i) *)
  57.  
  58. PROCEDURE conjg ( x : LONGCOMPLEX ) : LONGCOMPLEX;
  59. (* returns complex conjugate of x *)
  60.  
  61. PROCEDURE cexp ( x : LONGCOMPLEX ) : LONGCOMPLEX;
  62. (* returns complex exp(x) *)
  63.  
  64. PROCEDURE cln ( x : LONGCOMPLEX ) : LONGCOMPLEX;
  65. (* returns complex ln(x) *)
  66.  
  67. PROCEDURE csin ( x : LONGCOMPLEX ) : LONGCOMPLEX;
  68. (* returns complex sin(x) *)
  69.  
  70. PROCEDURE ccos ( x : LONGCOMPLEX ) : LONGCOMPLEX;
  71. (* returns complex cos(x) *)
  72.  
  73. PROCEDURE WriteLongComplex( x : LONGCOMPLEX; n : INTEGER );
  74. (* write complex number x *)
  75.  
  76. END ComplexLib.
  77.  
  78.