home *** CD-ROM | disk | FTP | other *** search
- DECLARE FUNCTION amod! (x!, b!)
- DECLARE FUNCTION dmod# (dx#, b#)
-
- DECLARE FUNCTION amin! (x!, y!)
- DECLARE FUNCTION dmin# (dx#, dy#)
-
- DECLARE FUNCTION amax! (x!, y!)
- DECLARE FUNCTION dmax# (dx#, dy#)
-
- DECLARE FUNCTION sind! (x!)
- DECLARE FUNCTION cosd! (x!)
- DECLARE FUNCTION tand! (x!)
-
- DECLARE FUNCTION dsind# (dx#)
- DECLARE FUNCTION dcosd# (dx#)
- DECLARE FUNCTION dtand# (dx#)
-
- DECLARE FUNCTION asin! (x!)
- DECLARE FUNCTION acos! (x!)
- 'DECLARE FUNCTION atn (x!) (intrinsic)
- DECLARE FUNCTION atan! (y!, x!)
-
- DECLARE FUNCTION asind! (x!)
- DECLARE FUNCTION acosd! (x!)
- DECLARE FUNCTION atnd! (x!)
- DECLARE FUNCTION atand! (y!, x!)
-
- DECLARE FUNCTION dasin# (dx#)
- DECLARE FUNCTION dacos# (dx#)
- 'DECLARE FUNCTION atn (dx#) (intrinsic)
- DECLARE FUNCTION datan# (dy#, dx#)
-
- DECLARE FUNCTION dasind# (dx#)
- DECLARE FUNCTION dacosd# (dx#)
- DECLARE FUNCTION datnd# (dx#)
- DECLARE FUNCTION datand# (dy#, dx#)
-
- DECLARE FUNCTION sinh! (x!)
- DECLARE FUNCTION cosh! (x!)
- DECLARE FUNCTION tanh! (x!)
-
- DECLARE FUNCTION dsinh# (dx#)
- DECLARE FUNCTION dcosh# (dx#)
- DECLARE FUNCTION dtanh# (dx#)
-
- DECLARE FUNCTION asinh! (x!)
- DECLARE FUNCTION acosh! (x!)
- DECLARE FUNCTION atanh! (x!)
-
- DECLARE FUNCTION dasinh# (dx#)
- DECLARE FUNCTION dacosh# (dx#)
- DECLARE FUNCTION datanh# (dx#)
-
- CLS : RANDOMIZE TIMER
- FOR i = 1 TO 10
- x1 = INT(RND * 20 - 10): dx1# = x1
- x2 = INT(RND * 20 - 10): IF x2 = 0 THEN x2 = 1
- dx2# = x2
- y = amod(x1, x2): dy# = dmod#(dx1#, dx2#)
- PRINT USING "###.##### ###.##### ###.##### ###.#####"; x1; x2; y; dy#
- NEXT i
-
- FUNCTION acos (x) STATIC
-
- y = SQR(1 - x * x)
- acos = atan(y, x)
-
- END FUNCTION
-
- FUNCTION acosd (x) STATIC
-
- y = SQR(1 - x * x)
- acosd = atand(y, x)
-
- END FUNCTION
-
- FUNCTION acosh (x) STATIC
-
- acosh = LOG(x + SQR(x * x - 1))
-
- END FUNCTION
-
- FUNCTION amax (x, y) STATIC
-
- amax = y
- IF x > y THEN amax = x
-
- END FUNCTION
-
- FUNCTION amin (x, y) STATIC
-
- amin = y
- IF x < y THEN amin = x
-
- END FUNCTION
-
- FUNCTION amod (x, b) STATIC
-
- amod! = x - b * FIX(x / b)
-
- END FUNCTION
-
- FUNCTION asin (x) STATIC
-
- y = SQR(1 - x * x)
- asin = atan(x, y)
-
- END FUNCTION
-
- FUNCTION asind (x) STATIC
-
- y = SQR(1 - x * x)
- asind = atand(x, y)
-
- END FUNCTION
-
- FUNCTION asinh (x) STATIC
-
- asinh = LOG(x + SQR(x * x + 1))
-
- END FUNCTION
-
- FUNCTION atan (y, x) STATIC
-
- pio2 = 2 * ATN(1)
-
- IF x = 0 THEN
- atan = SGN(y) * pio2
- EXIT FUNCTION
- ELSEIF y = 0 THEN
- atan = (1 - SGN(x)) * pio2
- EXIT FUNCTION
- END IF
-
- t = ATN(y / x)
- IF x > 0 THEN
- atan = t
- ELSE
- atan = t + SGN(y) * 2 * pio2
- END IF
-
- END FUNCTION
-
- FUNCTION atand (y, x) STATIC
-
- pio2 = 90: r2d = 45 / ATN(1)
-
- IF x = 0 THEN
- atand = SGN(y) * pio2
- EXIT FUNCTION
- ELSEIF y = 0 THEN
- atand = (1 - SGN(x)) * pio2
- EXIT FUNCTION
- END IF
-
- t = ATN(y / x) * r2d
- IF x > 0 THEN
- atand = t
- ELSE
- atand = t + SGN(y) * 2 * pio2
- END IF
-
- END FUNCTION
-
- FUNCTION atanh (x) STATIC
-
- atanh = .5 * LOG((1 + x) / (1 - x))
-
- END FUNCTION
-
- FUNCTION atnd (x) STATIC
-
- r2d = 45 / ATN(1)
- atnd = ATN(x) * r2d
-
- END FUNCTION
-
- FUNCTION cosd (x) STATIC
-
- d2r = ATN(1) / 45
- cosd = COS(x * d2r)
-
- END FUNCTION
-
- FUNCTION cosh (x) STATIC
-
- cosh = (EXP(x) + EXP(-x)) / 2
-
- END FUNCTION
-
- FUNCTION dacos# (dx#) STATIC
-
- dy# = SQR(1# - dx# * dx#)
- dacos# = datan#(dy#, dx#)
-
- END FUNCTION
-
- FUNCTION dacosd# (dx#) STATIC
-
- dy# = SQR(1# - dx# * dx#)
- dacosd# = datand(dy#, dx#)
-
- END FUNCTION
-
- FUNCTION dacosh# (dx#) STATIC
-
- dacosh# = LOG(dx# + SQR(dx# * dx# - 1#))
-
- END FUNCTION
-
- FUNCTION dasin# (dx#) STATIC
-
- dy# = SQR(1# - dx# * dx#)
- dasin# = datan#(dx#, dy#)
-
- END FUNCTION
-
- FUNCTION dasind# (dx#) STATIC
-
- dy# = SQR(1# - dx# * dx#)
- dasind# = datand(dx#, dy#)
-
- END FUNCTION
-
- FUNCTION dasinh# (dx#) STATIC
-
- dasinh# = LOG(dx# + SQR(dx# * dx# + 1#))
-
- END FUNCTION
-
- FUNCTION datan# (dy#, dx#) STATIC
-
- dpio2# = 2# * ATN(1#)
-
- IF dx# = 0# THEN
- datan# = SGN(dy#) * dpio2#
- EXIT FUNCTION
- ELSEIF dy# = 0# THEN
- datan# = (1# - SGN(dx#)) * dpio2#
- EXIT FUNCTION
- END IF
-
- dt = ATN(dy# / dx#)
- IF dx# > 0# THEN
- datan# = dt
- ELSE
- datan# = dt + SGN(dy#) * 2# * dpio2#
- END IF
-
- END FUNCTION
-
- FUNCTION datand# (dy#, dx#) STATIC
-
- dpio2# = 90#: r2d# = 45# / ATN(1#)
-
- IF dx# = 0# THEN
- datand# = SGN(dy#) * dpio2#
- EXIT FUNCTION
- ELSEIF dy# = 0# THEN
- datand# = (1# - SGN(dx#)) * dpio2#
- EXIT FUNCTION
- END IF
-
- dt = ATN(dy# / dx#) * r2d#
- IF dx# > 0# THEN
- datand# = dt
- ELSE
- datand# = dt + SGN(dy#) * 2# * dpio2#
- END IF
-
- END FUNCTION
-
- FUNCTION datanh# (dx#) STATIC
-
- datanh# = .5# * LOG((1# + dx#) / (1# - dx#))
-
- END FUNCTION
-
- FUNCTION datnd# (dx#) STATIC
-
- r2d# = 45# / ATN(1#)
- datnd# = ATN(dx#) * r2d#
-
- END FUNCTION
-
- FUNCTION dcosd# (dx#) STATIC
-
- d2r# = ATN(1#) / 45#
- dcosd# = COS(dx# * d2r#)
-
- END FUNCTION
-
- FUNCTION dcosh# (dx#) STATIC
-
- dcosh# = (EXP(dx#) + EXP(-dx#)) / 2#
-
- END FUNCTION
-
- FUNCTION dmax# (dx#, dy#) STATIC
-
- dmax# = dy#
- IF dx# > dy# THEN dmax# = dx#
-
- END FUNCTION
-
- FUNCTION dmin# (dx#, dy#) STATIC
-
- dmin# = dy#
- IF dx# < dy# THEN dmin# = dx#
-
- END FUNCTION
-
- FUNCTION dmod# (dx#, b#) STATIC
-
- dmod# = dx# - b# * FIX(dx# / b#)
-
- END FUNCTION
-
- FUNCTION dsind# (dx#) STATIC
-
- d2r# = ATN(1#) / 45#
- dsind# = SIN(dx# * d2r#)
-
- END FUNCTION
-
- FUNCTION dsinh# (dx#) STATIC
-
- dsinh# = (EXP(dx#) - EXP(-dx#)) / 2#
-
- END FUNCTION
-
- FUNCTION dtand# (dx#) STATIC
-
- d2r# = ATN(1#) / 45#
- dtand# = TAN(dx# * d2r#)
-
- END FUNCTION
-
- FUNCTION dtanh# (dx#) STATIC
-
- dtanh# = (EXP(dx#) - EXP(-dx#)) / (EXP(dx#) + EXP(-dx#))
-
- END FUNCTION
-
- FUNCTION sind (x) STATIC
-
- d2r = ATN(1) / 45
- sind = SIN(x * d2r)
-
- END FUNCTION
-
- FUNCTION sinh (x) STATIC
-
- sinh = (EXP(x) - EXP(-x)) / 2
-
- END FUNCTION
-
- FUNCTION tand (x) STATIC
-
- d2r = ATN(1) / 45
- tand = TAN(x * d2r)
-
- END FUNCTION
-
- FUNCTION tanh (x) STATIC
-
- tanh = (EXP(x) - EXP(-x)) / (EXP(x) + EXP(-x))
-
- END FUNCTION
-
-