1. /* sn.h by K.Tsuru */
  2. /***********************************************
  3. Include header files for SNumber classes
  4. ***********************************************/
  5. #ifndef SN_H
  6. #define SN_H
  7. /**************
  8. compile swithes
  9. ***************/
  10. //#define NDEBUG
  11. //#define PoorMemory 1
  12. /****************************************************************************
  13. Preprocessors UseFFT and NotUseFFT are removed since version 2.20 i.e. FFT
  14. multiplication is used if needs.
  15. ****************************************************************************/
  16. #define _CRT_SECURE_NO_WARNINGS // for visual c++ since ver 2.19
  17. #include <stdio.h>
  18. #include <stdlib.h>
  19. #include <ctype.h>
  20. #include <assert.h>
  21. #include <limits.h>
  22. #include <new>
  23. #include <math.h> // added since 2.30
  24. #include <cmath> // <math.h> is included in "gcc"
  25. #include <string>
  26. #include <complex>
  27. #include <iostream> // added since ver 2.182
  28. #include <iomanip> // since ver.2.21
  29. #include <ostream> // added since ver. 2.3
  30. #include <fstream> // added since ver. 2.3
  31. #include <sstream> // since ver.2.31
  32. #include <algorithm> // added since ver 2.91 for max(). min()
  33. using namespace std; // ver. 2.17
  34. #ifndef __cplusplus
  35. #error Use C++ compiler.
  36. #endif // __cplusplus
  37. //It detects that used system is 16 bits or not.
  38. #if INT_MAX == SHRT_MAX
  39. #error This library is for 32 bits system. Please use Turbo C++ version(16 bits).
  40. #endif // INT_MAX == SHRT_MAX
  41. //Definition of Mathematical constants M_E, M_PI, etc.
  42. #ifndef DEF_CONST_H
  43. #include "defconst.h"
  44. #endif //DEF_CONST_H
  45. // Mathmatical template functions are defined.
  46. #ifndef MATH_TEMPLATE_H
  47. #include "mathtp.h"
  48. #endif // MATH_TEMPLATE_H
  49. #ifndef TOOLS_H // ver. 2.17
  50. #include "tools.h"
  51. #endif // TOOLS_H
  52. // FFT
  53. #ifndef S_FFT_H
  54. #include "sfft.h"
  55. #endif // S_FFT_H
  56. // typedef and contants are defined
  57. #ifndef SN_CONST_H
  58. #include "snconst.h"
  59. #endif // SN_CONST_H
  60. // NCBlock template class
  61. #ifndef NC_BLOCK_H
  62. #include "ncblock.h"
  63. #endif // NC_BLOCK_H
  64. // SNBlock template class
  65. #ifndef SNBLOCK_H
  66. #include "snblock.h"
  67. #endif
  68. // SNStack template class
  69. #ifndef SNSTACK_H
  70. #include "snstack.h"
  71. #endif // STACK_H
  72. #ifndef SNMANAGER_H // SNManager class
  73. #include "snmanage.h"
  74. #endif
  75. #ifndef S_NUMBER_H // SNumber class
  76. #include "snum.h"
  77. #endif
  78. #ifndef S_LONG_H // SLong class
  79. #include "slong.h"
  80. #endif
  81. #ifndef S_REAL_H // RealSize class and SCalcInfo structure
  82. #include "sreal.h"
  83. #endif // S_REAL_H
  84. #ifndef S_DOUBLE_H // SDouble class in decimal radix
  85. #include "sdbl.h"
  86. #endif
  87. #ifndef STRING_NUMBER_H // StringToNumber class
  88. #include "sstr.h"
  89. #endif
  90. #ifndef S_DECIMAL_H // SDecimal class in binary radix
  91. #include "sdec.h"
  92. #endif
  93. #ifndef SN_INLINE_H // SNumber inline functions
  94. #include "sninline.h"
  95. #endif
  96. #ifndef S_DEC_INT_H // SInteger class in binary radix
  97. #include "sint.h"
  98. #endif
  99. #ifndef S_FRACTION_H // SFraction class by use of SLong
  100. #include "sfract.h"
  101. #endif
  102. #ifndef S_RATIONAL_H // SRational class by use of SInteger
  103. #include "sratio.h"
  104. #endif
  105. #ifndef SN_FUNCTIONS_H // prototype of various mathematical functions
  106. #include "snfunc.h"
  107. #endif
  108. #ifndef SN_MATH_H // fundamental mathematical functions
  109. #include "snmath.h"
  110. #endif
  111. #ifndef SNC_FILE_H
  112. #include "sncfile.h" // for three constant files
  113. #endif
  114. #ifndef SCOMPLEX_H
  115. #include "scomplex.h" // SComplex class by use of SDouble
  116. #endif
  117. #ifndef SLCOMPLEX_H
  118. #include "slcomplx.h" // SLComplex class by use of SLong, since ver. 2.18
  119. #endif
  120. // template class of binary splitting method, since ver. 2.17
  121. #ifndef BINARY_SPLITTING_TEMPLATE_H
  122. #include "sbstempl.h"
  123. #endif
  124. // template class of square coupling method, since ver. 2.18
  125. #ifndef SQUARE_COUPLING_TEMPLATE_H
  126. #include "ssqcoupl.h"
  127. #endif
  128. #ifndef SQUARE_COUPLING_INV_TEMPLATE_H
  129. #include "ssqcpinv.h"
  130. #endif
  131. #ifndef SN_EXTERN_H
  132. #include "SNextern.h" // since version 2.20
  133. #endif
  134. // related to keybord and time measurement added since ver 2.182
  135. #ifndef GET_NUMBER_H
  136. #include "getnum.h"
  137. #endif
  138. #ifndef WAIT_H
  139. #include "wait.h"
  140. #endif
  141. #ifndef TIMER_H
  142. #include "timer.h"
  143. #endif
  144. #endif // SN_H

sn.h : last modifiled at 2017/08/21 09:34:54(4,213 bytes)
created at 2016/04/11 11:18:59
The creation time of this html file is 2017/10/11 16:07:52 (Wed Oct 11 16:07:52 2017).