home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / oct93 / develop / umbscheme.lha / UMBScheme / src / number.h < prev    next >
Text File  |  1992-08-04  |  3KB  |  98 lines

  1. /* number.h -- UMB Scheme, number interface.
  2.  
  3. UMB Scheme Interpreter                  $Revision: 2.5 $
  4. Copyright (C) 1988, 1991 William R Campbell
  5.  
  6. This program is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with this program; if not, write to the Free Software
  18. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  
  20. UMB Scheme was written by Bill Campbell with help from Karl Berry,
  21. Barbara Dixey, Ira Gerstein, Mary Glaser, Kathy Hargreaves, Bill McCabe,
  22. Long Nguyen, Susan Quina, Jeyashree Sivasubram, Bela Sohoni and Thang Quoc Tran.
  23.  
  24. For additional information about UMB Scheme, contact the author:
  25.  
  26.     Bill Campbell
  27.     Department of Mathematics and Computer Science
  28.     University of Massachusetts at Boston
  29.     Harbor Campus
  30.     Boston, MA 02125
  31.  
  32.     Telephone: 617-287-6449        Internet: bill@cs.umb.edu
  33.  
  34. */
  35.  
  36. #define    Is_Fixnum(x)    (Get_Number_Tower_Position(x)==FIXNUM_LEVEL)
  37. #define    Is_Bignum(x)    (Get_Number_Tower_Position(x)==BIGNUM_LEVEL)
  38. #define    Is_Rational(x)    (Get_Number_Tower_Position(x)==RATIONAL_LEVEL)
  39. #define    Is_Real(x)    (Get_Number_Tower_Position(x)==REAL_LEVEL)
  40. #define    Is_Complex(x)    (Get_Number_Tower_Position(x)==COMPLEX_LEVEL)
  41.  
  42. #define MAX_CHARS_PER_INT    64
  43.  
  44.  
  45.  
  46. Import void 
  47.     Is_Number_Zero(), Is_Number_Positive(), Is_Number_Negative(),
  48.         Is_Number_Odd(), Is_Number_Even(), Is_Number_Exact(), 
  49.     Is_Number_Inexact();
  50.  
  51. Import void
  52.     Number_Less_Than(), Number_Greater_Than(), Number_Equal(),
  53.         Number_Less_Than_Or_Equal(), Number_Greater_Than_Or_Equal();
  54.  
  55. Import void
  56.     Number_Add(), Number_Subtract(), Number_Multiply(),
  57.         Number_Divide(), Number_Quotient(), Number_Remainder(),
  58.     Number_Modulo(), Number_Negate(), Number_Abs(),
  59.     Number_Numerator(), Number_Denominator(), Number_Rationalize();
  60.         
  61. Import void
  62.     Number_Max(), Number_Min(), Number_GCD(), Number_LCM();
  63.  
  64. Import void
  65.     Number_Floor(), Number_Ceiling(), Number_Truncate(), Number_Round();
  66.  
  67. Import void
  68.     Number_Sqrt(), Number_Exp(), Number_Log(), Number_Expt();
  69.  
  70. Import void
  71.         Number_Sin(), Number_Cos(), Number_Tan(),
  72.         Number_Asin(), Number_Acos(), Number_Atan(), Number_Atan2();
  73.  
  74. Import void
  75.     Number_Exact_To_Inexact(), Number_Inexact_To_Exact(),
  76.     Number_To_String(), Cstring_To_Number();
  77.  
  78. Import    String    Integer_To_Cstring();
  79.  
  80. Import void
  81.         Number_Make_Rectangular(), Number_Make_Polar(), 
  82.         Number_Real_Part(), Number_Imaginary_Part(), 
  83.         Number_Magnitude(), Number_Angle(); 
  84.  
  85.  
  86. Import void    String_To_Number();
  87. Import Integer    Number_To_Integer();
  88. Import void    Integer_To_Number(/* Integer */);
  89.  
  90. Import void Initialize_Number();
  91. Import struct Object_Struct * Make_Bignum_Zero();
  92.  
  93. Import void Promote();
  94. Import void Demote();
  95.  
  96.  
  97. Import Integer Number_Sign();
  98.