home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / progrmng / function.zoo / realfunc.bas < prev   
Encoding:
BASIC Source File  |  1990-11-07  |  5.8 KB  |  371 lines

  1. DECLARE FUNCTION amod! (x!, b!)
  2. DECLARE FUNCTION dmod# (dx#, b#)
  3.  
  4. DECLARE FUNCTION amin! (x!, y!)
  5. DECLARE FUNCTION dmin# (dx#, dy#)
  6.  
  7. DECLARE FUNCTION amax! (x!, y!)
  8. DECLARE FUNCTION dmax# (dx#, dy#)
  9.  
  10. DECLARE FUNCTION sind! (x!)
  11. DECLARE FUNCTION cosd! (x!)
  12. DECLARE FUNCTION tand! (x!)
  13.  
  14. DECLARE FUNCTION dsind# (dx#)
  15. DECLARE FUNCTION dcosd# (dx#)
  16. DECLARE FUNCTION dtand# (dx#)
  17.  
  18. DECLARE FUNCTION asin! (x!)
  19. DECLARE FUNCTION acos! (x!)
  20. 'DECLARE FUNCTION atn (x!) (intrinsic)
  21. DECLARE FUNCTION atan! (y!, x!)
  22.  
  23. DECLARE FUNCTION asind! (x!)
  24. DECLARE FUNCTION acosd! (x!)
  25. DECLARE FUNCTION atnd! (x!)
  26. DECLARE FUNCTION atand! (y!, x!)
  27.  
  28. DECLARE FUNCTION dasin# (dx#)
  29. DECLARE FUNCTION dacos# (dx#)
  30. 'DECLARE FUNCTION atn (dx#) (intrinsic)
  31. DECLARE FUNCTION datan# (dy#, dx#)
  32.  
  33. DECLARE FUNCTION dasind# (dx#)
  34. DECLARE FUNCTION dacosd# (dx#)
  35. DECLARE FUNCTION datnd# (dx#)
  36. DECLARE FUNCTION datand# (dy#, dx#)
  37.  
  38. DECLARE FUNCTION sinh! (x!)
  39. DECLARE FUNCTION cosh! (x!)
  40. DECLARE FUNCTION tanh! (x!)
  41.  
  42. DECLARE FUNCTION dsinh# (dx#)
  43. DECLARE FUNCTION dcosh# (dx#)
  44. DECLARE FUNCTION dtanh# (dx#)
  45.  
  46. DECLARE FUNCTION asinh! (x!)
  47. DECLARE FUNCTION acosh! (x!)
  48. DECLARE FUNCTION atanh! (x!)
  49.  
  50. DECLARE FUNCTION dasinh# (dx#)
  51. DECLARE FUNCTION dacosh# (dx#)
  52. DECLARE FUNCTION datanh# (dx#)
  53.  
  54. CLS : RANDOMIZE TIMER
  55. FOR i = 1 TO 10
  56.   x1 = INT(RND * 20 - 10): dx1# = x1
  57.   x2 = INT(RND * 20 - 10): IF x2 = 0 THEN x2 = 1
  58.   dx2# = x2
  59.   y = amod(x1, x2): dy# = dmod#(dx1#, dx2#)
  60.   PRINT USING "###.#####   ###.#####   ###.#####   ###.#####"; x1; x2; y; dy#
  61.   NEXT i
  62.  
  63. FUNCTION acos (x) STATIC
  64.  
  65. y = SQR(1 - x * x)
  66. acos = atan(y, x)
  67.  
  68. END FUNCTION
  69.  
  70. FUNCTION acosd (x) STATIC
  71.  
  72. y = SQR(1 - x * x)
  73. acosd = atand(y, x)
  74.  
  75. END FUNCTION
  76.  
  77. FUNCTION acosh (x) STATIC
  78.  
  79. acosh = LOG(x + SQR(x * x - 1))
  80.  
  81. END FUNCTION
  82.  
  83. FUNCTION amax (x, y) STATIC
  84.  
  85. amax = y
  86. IF x > y THEN amax = x
  87.  
  88. END FUNCTION
  89.  
  90. FUNCTION amin (x, y) STATIC
  91.  
  92. amin = y
  93. IF x < y THEN amin = x
  94.  
  95. END FUNCTION
  96.  
  97. FUNCTION amod (x, b) STATIC
  98.  
  99. amod! = x - b * FIX(x / b)
  100.  
  101. END FUNCTION
  102.  
  103. FUNCTION asin (x) STATIC
  104.  
  105. y = SQR(1 - x * x)
  106. asin = atan(x, y)
  107.  
  108. END FUNCTION
  109.  
  110. FUNCTION asind (x) STATIC
  111.  
  112. y = SQR(1 - x * x)
  113. asind = atand(x, y)
  114.  
  115. END FUNCTION
  116.  
  117. FUNCTION asinh (x) STATIC
  118.  
  119. asinh = LOG(x + SQR(x * x + 1))
  120.  
  121. END FUNCTION
  122.  
  123. FUNCTION atan (y, x) STATIC
  124.  
  125. pio2 = 2 * ATN(1)
  126.  
  127. IF x = 0 THEN
  128.   atan = SGN(y) * pio2
  129.   EXIT FUNCTION
  130. ELSEIF y = 0 THEN
  131.   atan = (1 - SGN(x)) * pio2
  132.   EXIT FUNCTION
  133. END IF
  134.  
  135. t = ATN(y / x)
  136. IF x > 0 THEN
  137.   atan = t
  138. ELSE
  139.   atan = t + SGN(y) * 2 * pio2
  140. END IF
  141.  
  142. END FUNCTION
  143.  
  144. FUNCTION atand (y, x) STATIC
  145.  
  146. pio2 = 90: r2d = 45 / ATN(1)
  147.  
  148. IF x = 0 THEN
  149.   atand = SGN(y) * pio2
  150.   EXIT FUNCTION
  151. ELSEIF y = 0 THEN
  152.   atand = (1 - SGN(x)) * pio2
  153.   EXIT FUNCTION
  154. END IF
  155.  
  156. t = ATN(y / x) * r2d
  157. IF x > 0 THEN
  158.   atand = t
  159. ELSE
  160.   atand = t + SGN(y) * 2 * pio2
  161. END IF
  162.  
  163. END FUNCTION
  164.  
  165. FUNCTION atanh (x) STATIC
  166.  
  167. atanh = .5 * LOG((1 + x) / (1 - x))
  168.  
  169. END FUNCTION
  170.  
  171. FUNCTION atnd (x) STATIC
  172.  
  173. r2d = 45 / ATN(1)
  174. atnd = ATN(x) * r2d
  175.  
  176. END FUNCTION
  177.  
  178. FUNCTION cosd (x) STATIC
  179.  
  180. d2r = ATN(1) / 45
  181. cosd = COS(x * d2r)
  182.  
  183. END FUNCTION
  184.  
  185. FUNCTION cosh (x) STATIC
  186.  
  187. cosh = (EXP(x) + EXP(-x)) / 2
  188.  
  189. END FUNCTION
  190.  
  191. FUNCTION dacos# (dx#) STATIC
  192.  
  193. dy# = SQR(1# - dx# * dx#)
  194. dacos# = datan#(dy#, dx#)
  195.  
  196. END FUNCTION
  197.  
  198. FUNCTION dacosd# (dx#) STATIC
  199.  
  200. dy# = SQR(1# - dx# * dx#)
  201. dacosd# = datand(dy#, dx#)
  202.  
  203. END FUNCTION
  204.  
  205. FUNCTION dacosh# (dx#) STATIC
  206.  
  207. dacosh# = LOG(dx# + SQR(dx# * dx# - 1#))
  208.  
  209. END FUNCTION
  210.  
  211. FUNCTION dasin# (dx#) STATIC
  212.  
  213. dy# = SQR(1# - dx# * dx#)
  214. dasin# = datan#(dx#, dy#)
  215.  
  216. END FUNCTION
  217.  
  218. FUNCTION dasind# (dx#) STATIC
  219.  
  220. dy# = SQR(1# - dx# * dx#)
  221. dasind# = datand(dx#, dy#)
  222.  
  223. END FUNCTION
  224.  
  225. FUNCTION dasinh# (dx#) STATIC
  226.  
  227. dasinh# = LOG(dx# + SQR(dx# * dx# + 1#))
  228.  
  229. END FUNCTION
  230.  
  231. FUNCTION datan# (dy#, dx#) STATIC
  232.  
  233. dpio2# = 2# * ATN(1#)
  234.  
  235. IF dx# = 0# THEN
  236.   datan# = SGN(dy#) * dpio2#
  237.   EXIT FUNCTION
  238. ELSEIF dy# = 0# THEN
  239.   datan# = (1# - SGN(dx#)) * dpio2#
  240.   EXIT FUNCTION
  241. END IF
  242.  
  243. dt = ATN(dy# / dx#)
  244. IF dx# > 0# THEN
  245.   datan# = dt
  246. ELSE
  247.   datan# = dt + SGN(dy#) * 2# * dpio2#
  248. END IF
  249.  
  250. END FUNCTION
  251.  
  252. FUNCTION datand# (dy#, dx#) STATIC
  253.  
  254. dpio2# = 90#: r2d# = 45# / ATN(1#)
  255.  
  256. IF dx# = 0# THEN
  257.   datand# = SGN(dy#) * dpio2#
  258.   EXIT FUNCTION
  259. ELSEIF dy# = 0# THEN
  260.   datand# = (1# - SGN(dx#)) * dpio2#
  261.   EXIT FUNCTION
  262. END IF
  263.  
  264. dt = ATN(dy# / dx#) * r2d#
  265. IF dx# > 0# THEN
  266.   datand# = dt
  267. ELSE
  268.   datand# = dt + SGN(dy#) * 2# * dpio2#
  269. END IF
  270.  
  271. END FUNCTION
  272.  
  273. FUNCTION datanh# (dx#) STATIC
  274.  
  275. datanh# = .5# * LOG((1# + dx#) / (1# - dx#))
  276.  
  277. END FUNCTION
  278.  
  279. FUNCTION datnd# (dx#) STATIC
  280.  
  281. r2d# = 45# / ATN(1#)
  282. datnd# = ATN(dx#) * r2d#
  283.  
  284. END FUNCTION
  285.  
  286. FUNCTION dcosd# (dx#) STATIC
  287.  
  288. d2r# = ATN(1#) / 45#
  289. dcosd# = COS(dx# * d2r#)
  290.  
  291. END FUNCTION
  292.  
  293. FUNCTION dcosh# (dx#) STATIC
  294.  
  295. dcosh# = (EXP(dx#) + EXP(-dx#)) / 2#
  296.  
  297. END FUNCTION
  298.  
  299. FUNCTION dmax# (dx#, dy#) STATIC
  300.  
  301. dmax# = dy#
  302. IF dx# > dy# THEN dmax# = dx#
  303.  
  304. END FUNCTION
  305.  
  306. FUNCTION dmin# (dx#, dy#) STATIC
  307.  
  308. dmin# = dy#
  309. IF dx# < dy# THEN dmin# = dx#
  310.  
  311. END FUNCTION
  312.  
  313. FUNCTION dmod# (dx#, b#) STATIC
  314.  
  315. dmod# = dx# - b# * FIX(dx# / b#)
  316.  
  317. END FUNCTION
  318.  
  319. FUNCTION dsind# (dx#) STATIC
  320.  
  321. d2r# = ATN(1#) / 45#
  322. dsind# = SIN(dx# * d2r#)
  323.  
  324. END FUNCTION
  325.  
  326. FUNCTION dsinh# (dx#) STATIC
  327.  
  328. dsinh# = (EXP(dx#) - EXP(-dx#)) / 2#
  329.  
  330. END FUNCTION
  331.  
  332. FUNCTION dtand# (dx#) STATIC
  333.  
  334. d2r# = ATN(1#) / 45#
  335. dtand# = TAN(dx# * d2r#)
  336.  
  337. END FUNCTION
  338.  
  339. FUNCTION dtanh# (dx#) STATIC
  340.  
  341. dtanh# = (EXP(dx#) - EXP(-dx#)) / (EXP(dx#) + EXP(-dx#))
  342.  
  343. END FUNCTION
  344.  
  345. FUNCTION sind (x) STATIC
  346.  
  347. d2r = ATN(1) / 45
  348. sind = SIN(x * d2r)
  349.  
  350. END FUNCTION
  351.  
  352. FUNCTION sinh (x) STATIC
  353.  
  354. sinh = (EXP(x) - EXP(-x)) / 2
  355.  
  356. END FUNCTION
  357.  
  358. FUNCTION tand (x) STATIC
  359.  
  360. d2r = ATN(1) / 45
  361. tand = TAN(x * d2r)
  362.  
  363. END FUNCTION
  364.  
  365. FUNCTION tanh (x) STATIC
  366.  
  367. tanh = (EXP(x) - EXP(-x)) / (EXP(x) + EXP(-x))
  368.  
  369. END FUNCTION
  370.  
  371.