home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1989-09-14 | 7.8 KB | [TEXT/KAHL] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| AMOS Picture Packer (image/amosPicturePacker)
| ext
| Supported |
10%
| dexvert
| Jesper Olsen Module (music/jesperOlsen)
| magic
| Supported |
1%
| dexvert
| Debian floppy split (archive/debianFloppySplit)
| ext
| Unsupported |
1%
| dexvert
| Sound Images sound sample (audio/soundImagesSoundSample)
| ext
| Unsupported |
1%
| dexvert
| DESI-III drawing (image/desiIIIDrawing)
| ext
| Unsupported |
1%
| dexvert
| MS-DOS PMODE extender executable (executable/msdosPMODEExtenderExecutable)
| ext
| Unsupported |
1%
| dexvert
| Alien Trilogytextures (other/alienTrilogyTextures)
| ext
| Unsupported |
1%
| dexvert
| APT cache data (other/aptCacheData)
| ext
| Unsupported |
1%
| dexvert
| CorelTRACE configuration (other/corelTRACEConfiguration)
| ext
| Unsupported |
1%
| dexvert
| Dreamcast Disc (other/dreamcastDisc)
| ext
| Unsupported |
1%
| dexvert
| EST flat binary (other/estFlatBinary)
| ext
| Unsupported |
1%
| dexvert
| Finale Enigma Binary Format (other/finaleEnigmaBinaryFormat)
| ext
| Unsupported |
1%
| dexvert
| Sega Genesis/Megadrive/32x ROM (other/genesisROM)
| ext
| Unsupported |
1%
| dexvert
| Myth: The Fallen Lords game archive (other/mythTheFallenLordsGameArchive)
| ext
| Unsupported |
1%
| dexvert
| Sound Images Sound Driver (other/soundImagesSoundDriver)
| ext
| Unsupported |
1%
| dexvert
| Symantec/Norton Config (other/symantecNortonConfig)
| ext
| Unsupported |
1%
| dexvert
| Vectrex ROM (other/vectrexROM)
| ext
| Unsupported |
1%
| dexvert
| BIS raP encoded format (other/bisraPEncoded)
| ext
| Unsupported |
1%
| dexvert
| Pascal Script binary (other/pascalScriptBinary)
| ext
| Unsupported |
1%
| dexvert
| 7th Level game data archive (other/seventhLevelGameDataArchive)
| ext
| Unsupported |
1%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Binary Text (image/binaryText)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary, Fri May 27 11:45:23 1988, modified Mon Jan 16 08:49:40 1989, creator Think C, type ASCII, 7784 bytes "Math.c"
| default (weak)
| |
99%
| file
| data
| default
| |
49%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
33%
| TrID
| TTComp archive compressed (bin-4K)
| default (weak)
| |
17%
| TrID
| MacBinary 1
| default (weak)
| |
100%
| lsar
| MacBinary
| default
| |
100%
| gt2
| MAC Bilddatei
| default (weak)
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [KAHL] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 4d 61 74 68 2e 63 | 00 00 00 00 00 00 00 00 |..Math.c|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 00 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 1e 68 00 | 00 00 00 9e c3 3f 93 9f |......h.|.....?..|
|00000060| f7 a3 74 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..t.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000080| 0d 2f 2a 0d 0d 09 4d 61 | 74 68 20 6c 69 62 72 61 |./*...Ma|th libra|
|00000090| 72 79 20 66 6f 72 20 4c | 69 67 68 74 73 70 65 65 |ry for L|ightspee|
|000000a0| 64 43 0d 09 0d 09 28 43 | 29 20 43 6f 70 79 72 69 |dC....(C|) Copyri|
|000000b0| 67 68 74 20 31 39 38 36 | 20 54 48 49 4e 4b 20 54 |ght 1986| THINK T|
|000000c0| 65 63 68 6e 6f 6c 6f 67 | 69 65 73 2e 20 20 41 6c |echnolog|ies. Al|
|000000d0| 6c 20 72 69 67 68 74 73 | 20 72 65 73 65 72 76 65 |l rights| reserve|
|000000e0| 64 2e 0d 09 0d 09 46 6f | 72 20 64 65 74 61 69 6c |d.....Fo|r detail|
|000000f0| 73 2c 20 72 65 66 65 72 | 20 74 6f 20 48 61 72 62 |s, refer| to Harb|
|00000100| 69 73 6f 6e 20 26 20 53 | 74 65 65 6c 65 27 73 20 |ison & S|teele's |
|00000110| 22 43 3a 20 41 20 52 65 | 66 65 72 65 6e 63 65 20 |"C: A Re|ference |
|00000120| 4d 61 6e 75 61 6c 22 2c | 0d 09 43 68 61 70 74 65 |Manual",|..Chapte|
|00000130| 72 20 31 31 2e 0d 0d 09 | 4f 6e 6c 79 20 6f 6e 65 |r 11....|Only one|
|00000140| 20 76 65 72 73 69 6f 6e | 20 6f 66 20 65 61 63 68 | version| of each|
|00000150| 20 66 75 6e 63 74 69 6f | 6e 20 69 73 20 64 65 66 | functio|n is def|
|00000160| 69 6e 65 64 20 62 79 20 | 74 68 69 73 20 6c 69 62 |ined by |this lib|
|00000170| 72 61 72 79 2e 0d 09 57 | 68 65 74 68 65 72 20 65 |rary...W|hether e|
|00000180| 72 72 6f 72 20 63 68 65 | 63 6b 69 6e 67 20 69 73 |rror che|cking is|
|00000190| 20 64 6f 6e 65 20 69 73 | 20 64 65 74 65 72 6d 69 | done is| determi|
|000001a0| 6e 65 64 20 62 79 20 68 | 6f 77 20 74 68 69 73 20 |ned by h|ow this |
|000001b0| 66 69 6c 65 0d 09 69 73 | 20 63 6f 6d 70 69 6c 65 |file..is| compile|
|000001c0| 64 2e 20 20 45 72 72 6f | 72 20 63 68 65 63 6b 69 |d. Erro|r checki|
|000001d0| 6e 67 20 69 73 20 45 4e | 41 42 4c 45 44 20 77 68 |ng is EN|ABLED wh|
|000001e0| 65 6e 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |en the f|ollowing|
|000001f0| 0d 09 23 64 65 66 69 6e | 65 20 69 73 20 43 4f 4d |..#defin|e is COM|
|00000200| 4d 45 4e 54 45 44 20 4f | 55 54 2e 0d 09 0d 2a 2f |MENTED O|UT....*/|
|00000210| 0d 0d 2f 2a 23 64 65 66 | 69 6e 65 20 5f 4e 4f 45 |../*#def|ine _NOE|
|00000220| 52 52 4f 52 43 48 45 43 | 4b 5f 2a 2f 0d 23 69 6e |RRORCHEC|K_*/.#in|
|00000230| 63 6c 75 64 65 20 22 6d | 61 74 68 2e 68 22 0d 23 |clude "m|ath.h".#|
|00000240| 69 6e 63 6c 75 64 65 20 | 22 73 61 6e 65 2e 68 22 |include |"sane.h"|
|00000250| 0d 0d 2f 2a 20 20 75 73 | 65 66 75 6c 20 63 6f 6e |../* us|eful con|
|00000260| 73 74 61 6e 74 73 20 20 | 2a 2f 0d 73 74 61 74 69 |stants |*/.stati|
|00000270| 63 20 64 6f 75 62 6c 65 | 20 5a 65 72 6f 20 3d 20 |c double| Zero = |
|00000280| 30 2e 30 3b 0d 73 74 61 | 74 69 63 20 64 6f 75 62 |0.0;.sta|tic doub|
|00000290| 6c 65 20 4f 6e 65 20 3d | 20 31 2e 30 3b 0d 73 74 |le One =| 1.0;.st|
|000002a0| 61 74 69 63 20 64 6f 75 | 62 6c 65 20 54 77 6f 20 |atic dou|ble Two |
|000002b0| 3d 20 32 2e 30 3b 0d 73 | 74 61 74 69 63 20 64 6f |= 2.0;.s|tatic do|
|000002c0| 75 62 6c 65 20 4d 69 6e | 75 73 4f 6e 65 20 3d 20 |uble Min|usOne = |
|000002d0| 2d 31 2e 30 3b 0d 73 74 | 61 74 69 63 20 64 6f 75 |-1.0;.st|atic dou|
|000002e0| 62 6c 65 20 4d 69 6e 75 | 73 54 77 6f 20 3d 20 2d |ble Minu|sTwo = -|
|000002f0| 32 2e 30 3b 0d 73 74 61 | 74 69 63 20 64 6f 75 62 |2.0;.sta|tic doub|
|00000300| 6c 65 20 50 6f 69 6e 74 | 46 69 76 65 20 3d 20 30 |le Point|Five = 0|
|00000310| 2e 35 3b 0d 73 74 61 74 | 69 63 20 64 6f 75 62 6c |.5;.stat|ic doubl|
|00000320| 65 20 50 6f 69 6e 74 54 | 77 6f 46 69 76 65 20 3d |e PointT|woFive =|
|00000330| 20 30 2e 32 35 3b 0d 73 | 74 61 74 69 63 20 64 6f | 0.25;.s|tatic do|
|00000340| 75 62 6c 65 20 50 69 20 | 3d 20 50 49 3b 0d 73 74 |uble Pi |= PI;.st|
|00000350| 61 74 69 63 20 64 6f 75 | 62 6c 65 20 50 69 32 20 |atic dou|ble Pi2 |
|00000360| 3d 20 50 49 32 3b 0d 73 | 74 61 74 69 63 20 64 6f |= PI2;.s|tatic do|
|00000370| 75 62 6c 65 20 4c 6f 67 | 32 54 65 6e 20 3d 20 33 |uble Log|2Ten = 3|
|00000380| 2e 33 32 31 39 32 38 30 | 39 34 38 38 37 33 36 32 |.3219280|94887362|
|00000390| 33 34 38 3b 0d 0d 73 74 | 61 74 69 63 20 73 68 6f |348;..st|atic sho|
|000003a0| 72 74 20 5f 4d 61 78 5b | 5d 20 3d 20 7b 20 30 78 |rt _Max[|] = { 0x|
|000003b0| 37 46 46 45 2c 20 30 78 | 37 46 46 46 2c 20 30 78 |7FFE, 0x|7FFF, 0x|
|000003c0| 46 46 46 46 2c 20 30 78 | 46 46 46 46 2c 20 30 78 |FFFF, 0x|FFFF, 0x|
|000003d0| 46 46 46 46 20 7d 3b 0d | 73 74 61 74 69 63 20 73 |FFFF };.|static s|
|000003e0| 68 6f 72 74 20 5f 4d 69 | 6e 75 73 4d 61 78 5b 5d |hort _Mi|nusMax[]|
|000003f0| 20 3d 20 7b 20 30 78 46 | 46 46 45 2c 20 30 78 37 | = { 0xF|FFE, 0x7|
|00000400| 46 46 46 2c 20 30 78 46 | 46 46 46 2c 20 30 78 46 |FFF, 0xF|FFF, 0xF|
|00000410| 46 46 46 2c 20 30 78 46 | 46 46 46 20 7d 3b 0d 23 |FFF, 0xF|FFF };.#|
|00000420| 64 65 66 69 6e 65 20 4d | 61 78 09 09 09 09 28 2a |define M|ax....(*|
|00000430| 20 28 64 6f 75 62 6c 65 | 20 2a 29 20 5f 4d 61 78 | (double| *) _Max|
|00000440| 29 0d 23 64 65 66 69 6e | 65 20 4d 69 6e 75 73 4d |).#defin|e MinusM|
|00000450| 61 78 09 09 28 2a 20 28 | 64 6f 75 62 6c 65 20 2a |ax..(* (|double *|
|00000460| 29 20 5f 4d 69 6e 75 73 | 4d 61 78 29 0d 0d 2f 2a |) _Minus|Max)../*|
|00000470| 20 20 73 65 65 64 20 66 | 6f 72 20 70 73 65 75 64 | seed f|or pseud|
|00000480| 6f 2d 72 61 6e 64 6f 6d | 20 6e 75 6d 62 65 72 20 |o-random| number |
|00000490| 67 65 6e 65 72 61 74 6f | 72 20 20 2a 2f 0d 73 74 |generato|r */.st|
|000004a0| 61 74 69 63 20 75 6e 73 | 69 67 6e 65 64 20 6c 6f |atic uns|igned lo|
|000004b0| 6e 67 20 73 65 65 64 20 | 3d 20 31 3b 0d 0d 0d 2f |ng seed |= 1;.../|
|000004c0| 2a 20 20 65 6e 76 69 72 | 6f 6e 6d 65 6e 74 20 77 |* envir|onment w|
|000004d0| 6f 72 64 20 6d 61 73 6b | 73 20 20 2a 2f 0d 23 64 |ord mask|s */.#d|
|000004e0| 65 66 69 6e 65 20 52 4f | 55 4e 44 09 09 09 30 78 |efine RO|UND...0x|
|000004f0| 36 30 30 30 0d 23 64 65 | 66 69 6e 65 20 52 4f 55 |6000.#de|fine ROU|
|00000500| 4e 44 5f 55 50 09 09 30 | 78 32 30 30 30 0d 23 64 |ND_UP..0|x2000.#d|
|00000510| 65 66 69 6e 65 20 52 4f | 55 4e 44 5f 44 4f 57 4e |efine RO|UND_DOWN|
|00000520| 09 09 30 78 34 30 30 30 | 0d 23 64 65 66 69 6e 65 |..0x4000|.#define|
|00000530| 20 45 52 52 4f 52 09 09 | 09 30 78 30 46 30 30 0d | ERROR..|.0x0F00.|
|00000540| 0d 0d 2f 2a 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 20 |../* ---|------- |
|00000550| 65 72 72 6f 72 20 63 68 | 65 63 6b 69 6e 67 20 2d |error ch|ecking -|
|00000560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 20 2a 2f 0d 0d 23 69 |--------|- */..#i|
|00000570| 66 64 65 66 20 5f 45 52 | 52 4f 52 43 48 45 43 4b |fdef _ER|RORCHECK|
|00000580| 5f 0d 0d 23 64 65 66 69 | 6e 65 20 44 6f 6d 61 69 |_..#defi|ne Domai|
|00000590| 6e 43 68 65 63 6b 28 74 | 65 73 74 2c 20 72 65 73 |nCheck(t|est, res|
|000005a0| 75 6c 74 29 09 09 69 66 | 20 28 74 65 73 74 29 20 |ult)..if| (test) |
|000005b0| 7b 09 09 09 09 09 5c 0d | 09 09 09 09 09 09 09 09 |{.....\.|........|
|000005c0| 09 09 09 65 72 72 6e 6f | 20 3d 20 45 44 4f 4d 3b |...errno| = EDOM;|
|000005d0| 09 09 09 5c 0d 09 09 09 | 09 09 09 09 09 09 09 09 |...\....|........|
|000005e0| 72 65 74 75 72 6e 28 72 | 65 73 75 6c 74 29 3b 09 |return(r|esult);.|
|000005f0| 09 09 5c 0d 09 09 09 09 | 09 09 09 09 09 09 7d 0d |..\.....|......}.|
|00000600| 23 64 65 66 69 6e 65 20 | 52 61 6e 67 65 43 68 65 |#define |RangeChe|
|00000610| 63 6b 28 74 61 72 67 65 | 74 29 09 09 09 09 69 66 |ck(targe|t)....if|
|00000620| 20 28 47 65 74 53 74 61 | 74 65 28 29 20 26 20 45 | (GetSta|te() & E|
|00000630| 52 52 4f 52 29 20 7b 09 | 5c 0d 09 09 09 09 09 09 |RROR) {.|\.......|
|00000640| 09 09 09 09 09 65 72 72 | 6e 6f 20 3d 20 45 52 41 |.....err|no = ERA|
|00000650| 4e 47 45 3b 09 09 09 5c | 0d 09 09 09 09 09 09 09 |NGE;...\|........|
|00000660| 09 09 09 09 74 61 72 67 | 65 74 20 3d 20 4d 61 78 |....targ|et = Max|
|00000670| 3b 09 09 09 5c 0d 09 09 | 09 09 09 09 09 09 09 09 |;...\...|........|
|00000680| 7d 0d 0d 23 65 6c 73 65 | 20 5f 45 52 52 4f 52 43 |}..#else| _ERRORC|
|00000690| 48 45 43 4b 5f 0d 0d 23 | 64 65 66 69 6e 65 20 43 |HECK_..#|define C|
|000006a0| 6c 65 61 72 45 78 63 65 | 70 74 69 6f 6e 73 28 29 |learExce|ptions()|
|000006b0| 0d 23 64 65 66 69 6e 65 | 20 44 6f 6d 61 69 6e 43 |.#define| DomainC|
|000006c0| 68 65 63 6b 28 74 65 73 | 74 2c 20 72 65 73 75 6c |heck(tes|t, resul|
|000006d0| 74 29 0d 23 64 65 66 69 | 6e 65 20 52 61 6e 67 65 |t).#defi|ne Range|
|000006e0| 43 68 65 63 6b 28 74 61 | 72 67 65 74 29 0d 0d 23 |Check(ta|rget)..#|
|000006f0| 65 6e 64 69 66 20 5f 45 | 52 52 4f 52 43 48 45 43 |endif _E|RRORCHEC|
|00000700| 4b 5f 0d 0d 2f 2a 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |K_../* -|--------|
|00000710| 2d 20 65 6e 76 69 72 6f | 6e 6d 65 6e 74 20 2d 2d |- enviro|nment --|
|00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 20 2a 2f 0d 0d 0d 2f 2a |--------| */.../*|
|00000730| 0d 20 2a 20 20 47 65 74 | 53 74 61 74 65 20 2d 20 |. * Get|State - |
|00000740| 71 75 65 72 79 20 65 6e | 76 69 72 6f 6e 6d 65 6e |query en|vironmen|
|00000750| 74 20 77 6f 72 64 0d 20 | 2a 0d 20 2a 2f 0d 0d 73 |t word. |*. */..s|
|00000760| 74 61 74 69 63 0d 47 65 | 74 53 74 61 74 65 28 29 |tatic.Ge|tState()|
|00000770| 0d 7b 0d 09 69 6e 74 20 | 73 74 61 74 65 3b 0d 09 |.{..int |state;..|
|00000780| 0d 09 47 65 74 45 6e 76 | 69 72 6f 6e 6d 65 6e 74 |..GetEnv|ironment|
|00000790| 28 26 73 74 61 74 65 29 | 3b 0d 09 72 65 74 75 72 |(&state)|;..retur|
|000007a0| 6e 28 73 74 61 74 65 29 | 3b 0d 7d 0d 0d 0d 2f 2a |n(state)|;.}.../*|
|000007b0| 0d 20 2a 20 20 53 65 74 | 53 74 61 74 65 20 2d 20 |. * Set|State - |
|000007c0| 64 65 66 69 6e 65 20 65 | 6e 76 69 72 6f 6e 6d 65 |define e|nvironme|
|000007d0| 6e 74 20 77 6f 72 64 0d | 20 2a 0d 20 2a 2f 0d 0d |nt word.| *. */..|
|000007e0| 73 74 61 74 69 63 0d 53 | 65 74 53 74 61 74 65 28 |static.S|etState(|
|000007f0| 73 74 61 74 65 29 0d 7b | 0d 09 53 65 74 45 6e 76 |state).{|..SetEnv|
|00000800| 69 72 6f 6e 6d 65 6e 74 | 28 26 73 74 61 74 65 29 |ironment|(&state)|
|00000810| 3b 0d 7d 0d 0d 0d 2f 2a | 0d 20 2a 20 20 43 6c 65 |;.}.../*|. * Cle|
|00000820| 61 72 45 78 63 65 70 74 | 69 6f 6e 73 20 2d 20 63 |arExcept|ions - c|
|00000830| 6c 65 61 72 20 65 72 72 | 6f 72 20 63 6f 6e 64 69 |lear err|or condi|
|00000840| 74 69 6f 6e 73 0d 20 2a | 0d 20 2a 20 20 54 68 69 |tions. *|. * Thi|
|00000850| 73 20 6d 75 73 74 20 62 | 65 20 63 61 6c 6c 65 64 |s must b|e called|
|00000860| 20 69 66 20 52 61 6e 67 | 65 43 68 65 63 6b 20 69 | if Rang|eCheck i|
|00000870| 73 20 74 6f 20 62 65 20 | 75 73 65 64 2e 0d 20 2a |s to be |used.. *|
|00000880| 0d 20 2a 2f 0d 0d 23 69 | 66 64 65 66 20 5f 45 52 |. */..#i|fdef _ER|
|00000890| 52 4f 52 43 48 45 43 4b | 5f 0d 73 74 61 74 69 63 |RORCHECK|_.static|
|000008a0| 0d 43 6c 65 61 72 45 78 | 63 65 70 74 69 6f 6e 73 |.ClearEx|ceptions|
|000008b0| 28 29 0d 7b 0d 09 69 6e | 74 20 73 74 61 74 65 3b |().{..in|t state;|
|000008c0| 0d 09 0d 09 47 65 74 45 | 6e 76 69 72 6f 6e 6d 65 |....GetE|nvironme|
|000008d0| 6e 74 28 26 73 74 61 74 | 65 29 3b 0d 09 73 74 61 |nt(&stat|e);..sta|
|000008e0| 74 65 20 26 3d 20 7e 45 | 52 52 4f 52 3b 0d 09 53 |te &= ~E|RROR;..S|
|000008f0| 65 74 45 6e 76 69 72 6f | 6e 6d 65 6e 74 28 26 73 |etEnviro|nment(&s|
|00000900| 74 61 74 65 29 3b 0d 7d | 0d 23 65 6e 64 69 66 20 |tate);.}|.#endif |
|00000910| 5f 45 52 52 4f 52 43 48 | 45 43 4b 5f 0d 0d 0d 2f |_ERRORCH|ECK_.../|
|00000920| 2a 0d 20 2a 20 20 53 65 | 74 52 6f 75 6e 64 20 2d |*. * Se|tRound -|
|00000930| 20 64 65 66 69 6e 65 20 | 72 6f 75 6e 64 69 6e 67 | define |rounding|
|00000940| 20 64 69 72 65 63 74 69 | 6f 6e 0d 20 2a 0d 20 2a | directi|on. *. *|
|00000950| 20 20 54 68 65 20 70 72 | 65 76 69 6f 75 73 20 65 | The pr|evious e|
|00000960| 6e 76 69 72 6f 6e 6d 65 | 6e 74 20 77 6f 72 64 20 |nvironme|nt word |
|00000970| 69 73 20 72 65 74 75 72 | 6e 65 64 2e 20 20 54 68 |is retur|ned. Th|
|00000980| 65 20 72 6f 75 6e 64 69 | 6e 67 20 64 69 72 65 63 |e roundi|ng direc|
|00000990| 74 69 6f 6e 20 63 61 6e | 0d 20 2a 20 20 62 65 20 |tion can|. * be |
|000009a0| 72 65 73 74 6f 72 65 64 | 20 62 79 20 70 61 73 73 |restored| by pass|
|000009b0| 69 6e 67 20 74 68 69 73 | 20 76 61 6c 75 65 20 74 |ing this| value t|
|000009c0| 6f 20 53 65 74 53 74 61 | 74 65 2e 0d 20 2a 0d 20 |o SetSta|te.. *. |
|000009d0| 2a 2f 0d 0d 73 74 61 74 | 69 63 0d 53 65 74 52 6f |*/..stat|ic.SetRo|
|000009e0| 75 6e 64 28 64 69 72 65 | 63 74 69 6f 6e 29 0d 7b |und(dire|ction).{|
|000009f0| 0d 09 69 6e 74 20 73 74 | 61 74 65 3b 0d 0d 09 47 |..int st|ate;...G|
|00000a00| 65 74 45 6e 76 69 72 6f | 6e 6d 65 6e 74 28 26 73 |etEnviro|nment(&s|
|00000a10| 74 61 74 65 29 3b 0d 09 | 53 65 74 53 74 61 74 65 |tate);..|SetState|
|00000a20| 28 28 73 74 61 74 65 20 | 26 20 7e 52 4f 55 4e 44 |((state |& ~ROUND|
|00000a30| 29 20 7c 20 64 69 72 65 | 63 74 69 6f 6e 29 3b 0d |) | dire|ction);.|
|00000a40| 09 72 65 74 75 72 6e 28 | 73 74 61 74 65 29 3b 0d |.return(|state);.|
|00000a50| 7d 0d 0d 0d 2f 2a 0d 20 | 2a 20 20 78 66 65 72 73 |}.../*. |* xfers|
|00000a60| 69 67 6e 20 2d 20 74 72 | 61 6e 73 66 65 72 20 73 |ign - tr|ansfer s|
|00000a70| 69 67 6e 20 66 72 6f 6d | 20 6f 6e 65 20 66 6c 6f |ign from| one flo|
|00000a80| 61 74 69 6e 67 20 6e 75 | 6d 62 65 72 20 74 6f 20 |ating nu|mber to |
|00000a90| 61 6e 6f 74 68 65 72 0d | 20 2a 0d 20 2a 2f 0d 0d |another.| *. */..|
|00000aa0| 73 74 61 74 69 63 0d 78 | 66 65 72 73 69 67 6e 28 |static.x|fersign(|
|00000ab0| 78 2c 20 79 70 29 0d 64 | 6f 75 62 6c 65 20 78 2c |x, yp).d|ouble x,|
|00000ac0| 20 2a 79 70 3b 0d 7b 0d | 09 61 73 6d 20 7b 0d 09 | *yp;.{.|.asm {..|
|00000ad0| 09 6d 6f 76 65 61 2e 6c | 09 79 70 2c 61 30 0d 09 |.movea.l|.yp,a0..|
|00000ae0| 09 62 63 6c 72 09 23 37 | 2c 28 61 30 29 0d 09 09 |.bclr.#7|,(a0)...|
|00000af0| 74 73 74 2e 77 09 78 0d | 09 09 62 70 6c 2e 73 09 |tst.w.x.|..bpl.s.|
|00000b00| 40 31 0d 09 09 62 73 65 | 74 09 23 37 2c 28 61 30 |@1...bse|t.#7,(a0|
|00000b10| 29 0d 40 31 09 7d 0d 7d | 0d 0d 0d 2f 2a 20 2d 2d |).@1.}.}|.../* --|
|00000b20| 2d 2d 2d 2d 2d 2d 2d 2d | 20 6d 61 74 68 20 66 75 |--------| math fu|
|00000b30| 6e 63 74 69 6f 6e 73 20 | 28 61 6c 70 68 61 62 65 |nctions |(alphabe|
|00000b40| 74 69 63 61 6c 6c 79 29 | 20 2d 2d 2d 2d 2d 2d 2d |tically)| -------|
|00000b50| 2d 2d 2d 20 2a 2f 0d 0d | 0d 2f 2a 0d 20 2a 20 20 |--- */..|./*. * |
|00000b60| 61 62 73 20 2d 20 61 62 | 73 6f 6c 75 74 65 20 76 |abs - ab|solute v|
|00000b70| 61 6c 75 65 20 6f 66 20 | 61 6e 20 69 6e 74 65 67 |alue of |an integ|
|00000b80| 65 72 0d 20 2a 0d 20 2a | 2f 0d 0d 69 6e 74 20 61 |er. *. *|/..int a|
|00000b90| 62 73 28 78 29 0d 69 6e | 74 20 78 3b 0d 7b 0d 09 |bs(x).in|t x;.{..|
|00000ba0| 72 65 74 75 72 6e 28 78 | 20 3c 20 30 20 3f 20 2d |return(x| < 0 ? -|
|00000bb0| 78 20 3a 20 78 29 3b 0d | 7d 0d 0d 0d 2f 2a 0d 20 |x : x);.|}.../*. |
|00000bc0| 2a 20 20 61 63 6f 73 20 | 2d 20 69 6e 76 65 72 73 |* acos |- invers|
|00000bd0| 65 20 63 69 72 63 75 6c | 61 72 20 63 6f 73 69 6e |e circul|ar cosin|
|00000be0| 65 0d 20 2a 0d 20 2a 2f | 0d 0d 64 6f 75 62 6c 65 |e. *. */|..double|
|00000bf0| 20 61 63 6f 73 28 78 29 | 0d 64 6f 75 62 6c 65 20 | acos(x)|.double |
|00000c00| 78 3b 0d 7b 0d 09 44 6f | 6d 61 69 6e 43 68 65 63 |x;.{..Do|mainChec|
|00000c10| 6b 28 78 20 3e 20 4f 6e | 65 20 7c 7c 20 78 20 3c |k(x > On|e || x <|
|00000c20| 20 4d 69 6e 75 73 4f 6e | 65 2c 20 5a 65 72 6f 29 | MinusOn|e, Zero)|
|00000c30| 3b 0d 09 69 66 20 28 78 | 20 3d 3d 20 4d 69 6e 75 |;..if (x| == Minu|
|00000c40| 73 4f 6e 65 29 0d 09 09 | 72 65 74 75 72 6e 28 50 |sOne)...|return(P|
|00000c50| 69 29 3b 0d 09 72 65 74 | 75 72 6e 28 54 77 6f 20 |i);..ret|urn(Two |
|00000c60| 2a 20 61 74 61 6e 28 73 | 71 72 74 28 28 4f 6e 65 |* atan(s|qrt((One|
|00000c70| 20 2d 20 78 29 20 2f 20 | 28 4f 6e 65 20 2b 20 78 | - x) / |(One + x|
|00000c80| 29 29 29 29 3b 0d 7d 0d | 0d 0d 2f 2a 0d 20 2a 20 |))));.}.|../*. * |
|00000c90| 20 61 73 69 6e 20 2d 20 | 69 6e 76 65 72 73 65 20 | asin - |inverse |
|00000ca0| 63 69 72 63 75 6c 61 72 | 20 73 69 6e 65 0d 20 2a |circular| sine. *|
|00000cb0| 0d 20 2a 2f 0d 0d 64 6f | 75 62 6c 65 20 61 73 69 |. */..do|uble asi|
|00000cc0| 6e 28 78 29 0d 64 6f 75 | 62 6c 65 20 78 3b 0d 7b |n(x).dou|ble x;.{|
|00000cd0| 0d 09 64 6f 75 62 6c 65 | 20 79 20 3d 20 66 61 62 |..double| y = fab|
|00000ce0| 73 28 78 29 3b 0d 0d 09 | 44 6f 6d 61 69 6e 43 68 |s(x);...|DomainCh|
|00000cf0| 65 63 6b 28 79 20 3e 20 | 4f 6e 65 2c 20 5a 65 72 |eck(y > |One, Zer|
|00000d00| 6f 29 3b 0d 09 69 66 20 | 28 79 20 3d 3d 20 4f 6e |o);..if |(y == On|
|00000d10| 65 29 20 7b 0d 09 09 79 | 20 3d 20 50 69 32 3b 0d |e) {...y| = Pi2;.|
|00000d20| 09 09 78 66 65 72 73 69 | 67 6e 28 78 2c 20 26 79 |..xfersi|gn(x, &y|
|00000d30| 29 3b 0d 09 09 72 65 74 | 75 72 6e 28 79 29 3b 0d |);...ret|urn(y);.|
|00000d40| 09 7d 0d 09 69 66 20 28 | 79 20 3e 20 50 6f 69 6e |.}..if (|y > Poin|
|00000d50| 74 46 69 76 65 29 20 7b | 0d 09 09 79 20 3d 20 4f |tFive) {|...y = O|
|00000d60| 6e 65 20 2d 20 79 3b 0d | 09 09 79 20 3d 20 54 77 |ne - y;.|..y = Tw|
|00000d70| 6f 20 2a 20 79 20 2d 20 | 79 20 2a 20 79 3b 0d 09 |o * y - |y * y;..|
|00000d80| 7d 0d 09 65 6c 73 65 0d | 09 09 79 20 3d 20 4f 6e |}..else.|..y = On|
|00000d90| 65 20 2d 20 79 20 2a 20 | 79 3b 0d 09 72 65 74 75 |e - y * |y;..retu|
|00000da0| 72 6e 28 61 74 61 6e 28 | 78 20 2f 20 73 71 72 74 |rn(atan(|x / sqrt|
|00000db0| 28 79 29 29 29 3b 0d 7d | 0d 0d 0d 2f 2a 0d 20 2a |(y)));.}|.../*. *|
|00000dc0| 20 20 61 74 61 6e 20 2d | 20 69 6e 76 65 72 73 65 | atan -| inverse|
|00000dd0| 20 63 69 72 63 75 6c 61 | 72 20 74 61 6e 67 65 6e | circula|r tangen|
|00000de0| 74 0d 20 2a 0d 20 2a 2f | 0d 0d 64 6f 75 62 6c 65 |t. *. */|..double|
|00000df0| 20 61 74 61 6e 28 78 29 | 0d 64 6f 75 62 6c 65 20 | atan(x)|.double |
|00000e00| 78 3b 0d 7b 0d 09 65 6c | 65 6d 73 36 38 6b 28 26 |x;.{..el|ems68k(&|
|00000e10| 78 2c 20 46 4f 41 54 41 | 4e 58 29 3b 0d 09 72 65 |x, FOATA|NX);..re|
|00000e20| 74 75 72 6e 28 78 29 3b | 0d 7d 0d 0d 0d 2f 2a 0d |turn(x);|.}.../*.|
|00000e30| 20 2a 20 20 61 74 61 6e | 32 20 2d 20 69 6e 76 65 | * atan|2 - inve|
|00000e40| 72 73 65 20 63 69 72 63 | 75 6c 61 72 20 74 61 6e |rse circ|ular tan|
|00000e50| 67 65 6e 74 20 28 79 2f | 78 29 0d 20 2a 0d 20 2a |gent (y/|x). *. *|
|00000e60| 2f 0d 0d 64 6f 75 62 6c | 65 20 61 74 61 6e 32 28 |/..doubl|e atan2(|
|00000e70| 79 2c 20 78 29 0d 64 6f | 75 62 6c 65 20 79 2c 20 |y, x).do|uble y, |
|00000e80| 78 3b 0d 7b 0d 09 64 6f | 75 62 6c 65 20 7a 3b 0d |x;.{..do|uble z;.|
|00000e90| 0d 09 69 66 20 28 78 20 | 3d 3d 20 30 29 20 7b 0d |..if (x |== 0) {.|
|00000ea0| 09 09 44 6f 6d 61 69 6e | 43 68 65 63 6b 28 79 20 |..Domain|Check(y |
|00000eb0| 3d 3d 20 30 2c 20 5a 65 | 72 6f 29 3b 0d 09 09 7a |== 0, Ze|ro);...z|
|00000ec0| 20 3d 20 50 69 32 3b 0d | 09 7d 0d 09 65 6c 73 65 | = Pi2;.|.}..else|
|00000ed0| 20 7b 0d 09 09 7a 20 3d | 20 61 74 61 6e 28 66 61 | {...z =| atan(fa|
|00000ee0| 62 73 28 79 20 2f 20 78 | 29 29 3b 0d 09 09 69 66 |bs(y / x|));...if|
|00000ef0| 20 28 78 20 3c 20 30 29 | 0d 09 09 09 7a 20 3d 20 | (x < 0)|....z = |
|00000f00| 50 69 20 2d 20 7a 3b 0d | 09 7d 0d 09 78 66 65 72 |Pi - z;.|.}..xfer|
|00000f10| 73 69 67 6e 28 79 2c 20 | 26 7a 29 3b 0d 09 72 65 |sign(y, |&z);..re|
|00000f20| 74 75 72 6e 28 7a 29 3b | 0d 7d 0d 0d 0d 2f 2a 0d |turn(z);|.}.../*.|
|00000f30| 20 2a 20 20 63 65 69 6c | 20 2d 20 72 6f 75 6e 64 | * ceil| - round|
|00000f40| 20 75 70 20 74 6f 20 61 | 6e 20 69 6e 74 65 67 65 | up to a|n intege|
|00000f50| 72 0d 20 2a 0d 20 2a 2f | 0d 0d 64 6f 75 62 6c 65 |r. *. */|..double|
|00000f60| 20 63 65 69 6c 28 78 29 | 0d 64 6f 75 62 6c 65 20 | ceil(x)|.double |
|00000f70| 78 3b 0d 7b 0d 09 69 6e | 74 20 73 74 61 74 65 20 |x;.{..in|t state |
|00000f80| 3d 20 53 65 74 52 6f 75 | 6e 64 28 52 4f 55 4e 44 |= SetRou|nd(ROUND|
|00000f90| 5f 55 50 29 3b 0d 09 66 | 70 36 38 6b 28 26 78 2c |_UP);..f|p68k(&x,|
|00000fa0| 20 46 4f 52 54 49 29 3b | 0d 09 53 65 74 53 74 61 | FORTI);|..SetSta|
|00000fb0| 74 65 28 73 74 61 74 65 | 29 3b 0d 09 72 65 74 75 |te(state|);..retu|
|00000fc0| 72 6e 28 78 29 3b 0d 7d | 0d 0d 0d 2f 2a 0d 20 2a |rn(x);.}|.../*. *|
|00000fd0| 20 20 63 6f 73 20 2d 20 | 63 69 72 63 75 6c 61 72 | cos - |circular|
|00000fe0| 20 63 6f 73 69 6e 65 0d | 20 2a 0d 20 2a 2f 0d 0d | cosine.| *. */..|
|00000ff0| 64 6f 75 62 6c 65 20 63 | 6f 73 28 78 29 0d 64 6f |double c|os(x).do|
|00001000| 75 62 6c 65 20 78 3b 0d | 7b 09 0d 09 65 6c 65 6d |uble x;.|{...elem|
|00001010| 73 36 38 6b 28 26 78 2c | 20 46 4f 43 4f 53 58 29 |s68k(&x,| FOCOSX)|
|00001020| 3b 0d 09 72 65 74 75 72 | 6e 28 78 29 3b 0d 7d 0d |;..retur|n(x);.}.|
|00001030| 0d 0d 2f 2a 0d 20 2a 20 | 20 63 6f 73 68 20 2d 20 |../*. * | cosh - |
|00001040| 68 79 70 65 72 62 6f 6c | 69 63 20 63 6f 73 69 6e |hyperbol|ic cosin|
|00001050| 65 0d 20 2a 0d 20 2a 2f | 0d 0d 64 6f 75 62 6c 65 |e. *. */|..double|
|00001060| 20 63 6f 73 68 28 78 29 | 0d 64 6f 75 62 6c 65 20 | cosh(x)|.double |
|00001070| 78 3b 0d 7b 0d 09 43 6c | 65 61 72 45 78 63 65 70 |x;.{..Cl|earExcep|
|00001080| 74 69 6f 6e 73 28 29 3b | 0d 09 78 20 3d 20 50 6f |tions();|..x = Po|
|00001090| 69 6e 74 46 69 76 65 20 | 2a 20 65 78 70 28 66 61 |intFive |* exp(fa|
|000010a0| 62 73 28 78 29 29 3b 0d | 09 78 20 2b 3d 20 50 6f |bs(x));.|.x += Po|
|000010b0| 69 6e 74 54 77 6f 46 69 | 76 65 20 2f 20 78 3b 0d |intTwoFi|ve / x;.|
|000010c0| 09 52 61 6e 67 65 43 68 | 65 63 6b 28 78 29 3b 0d |.RangeCh|eck(x);.|
|000010d0| 09 72 65 74 75 72 6e 28 | 78 29 3b 0d 7d 0d 0d 0d |.return(|x);.}...|
|000010e0| 2f 2a 0d 20 2a 20 20 65 | 78 70 20 2d 20 65 78 70 |/*. * e|xp - exp|
|000010f0| 6f 6e 65 6e 74 69 61 6c | 20 66 75 6e 63 74 69 6f |onential| functio|
|00001100| 6e 0d 20 2a 0d 20 2a 2f | 0d 0d 64 6f 75 62 6c 65 |n. *. */|..double|
|00001110| 20 65 78 70 28 78 29 0d | 64 6f 75 62 6c 65 20 78 | exp(x).|double x|
|00001120| 3b 0d 7b 0d 09 43 6c 65 | 61 72 45 78 63 65 70 74 |;.{..Cle|arExcept|
|00001130| 69 6f 6e 73 28 29 3b 0d | 09 65 6c 65 6d 73 36 38 |ions();.|.elems68|
|00001140| 6b 28 26 78 2c 20 46 4f | 45 58 50 58 29 3b 0d 09 |k(&x, FO|EXPX);..|
|00001150| 52 61 6e 67 65 43 68 65 | 63 6b 28 78 29 3b 0d 09 |RangeChe|ck(x);..|
|00001160| 72 65 74 75 72 6e 28 78 | 29 3b 0d 7d 0d 0d 0d 2f |return(x|);.}.../|
|00001170| 2a 0d 20 2a 20 20 66 61 | 62 73 20 2d 20 61 62 73 |*. * fa|bs - abs|
|00001180| 6f 6c 75 74 65 20 76 61 | 6c 75 65 20 6f 66 20 61 |olute va|lue of a|
|00001190| 20 66 6c 6f 61 74 69 6e | 67 20 6e 75 6d 62 65 72 | floatin|g number|
|000011a0| 0d 20 2a 0d 20 2a 2f 0d | 0d 64 6f 75 62 6c 65 20 |. *. */.|.double |
|000011b0| 66 61 62 73 28 78 29 0d | 64 6f 75 62 6c 65 20 78 |fabs(x).|double x|
|000011c0| 3b 0d 7b 0d 09 66 70 36 | 38 6b 28 26 78 2c 20 46 |;.{..fp6|8k(&x, F|
|000011d0| 4f 41 42 53 29 3b 0d 09 | 72 65 74 75 72 6e 28 78 |OABS);..|return(x|
|000011e0| 29 3b 0d 7d 0d 0d 0d 2f | 2a 0d 20 2a 20 20 66 6c |);.}.../|*. * fl|
|000011f0| 6f 6f 72 20 2d 20 72 6f | 75 6e 64 20 64 6f 77 6e |oor - ro|und down|
|00001200| 20 74 6f 20 61 6e 20 69 | 6e 74 65 67 65 72 0d 20 | to an i|nteger. |
|00001210| 2a 0d 20 2a 2f 0d 0d 64 | 6f 75 62 6c 65 20 66 6c |*. */..d|ouble fl|
|00001220| 6f 6f 72 28 78 29 0d 64 | 6f 75 62 6c 65 20 78 3b |oor(x).d|ouble x;|
|00001230| 0d 7b 0d 09 69 6e 74 20 | 73 74 61 74 65 20 3d 20 |.{..int |state = |
|00001240| 53 65 74 52 6f 75 6e 64 | 28 52 4f 55 4e 44 5f 44 |SetRound|(ROUND_D|
|00001250| 4f 57 4e 29 3b 0d 09 0d | 09 66 70 36 38 6b 28 26 |OWN);...|.fp68k(&|
|00001260| 78 2c 20 46 4f 52 54 49 | 29 3b 0d 09 53 65 74 53 |x, FORTI|);..SetS|
|00001270| 74 61 74 65 28 73 74 61 | 74 65 29 3b 0d 09 72 65 |tate(sta|te);..re|
|00001280| 74 75 72 6e 28 78 29 3b | 0d 7d 0d 0d 0d 2f 2a 0d |turn(x);|.}.../*.|
|00001290| 20 2a 20 20 66 6d 6f 64 | 20 2d 20 72 65 6d 61 69 | * fmod| - remai|
|000012a0| 6e 64 65 72 20 66 75 6e | 63 74 69 6f 6e 0d 20 2a |nder fun|ction. *|
|000012b0| 0d 20 2a 20 20 54 68 69 | 73 20 63 6f 6d 70 75 74 |. * Thi|s comput|
|000012c0| 65 73 20 61 20 76 61 6c | 75 65 20 7a 2c 20 77 69 |es a val|ue z, wi|
|000012d0| 74 68 20 74 68 65 20 73 | 61 6d 65 20 73 69 67 6e |th the s|ame sign|
|000012e0| 20 61 73 20 78 2c 20 73 | 75 63 68 20 74 68 61 74 | as x, s|uch that|
|000012f0| 20 66 6f 72 20 73 6f 6d | 65 0d 20 2a 20 20 69 6e | for som|e. * in|
|00001300| 74 65 67 65 72 20 6b 2c | 20 6b 2a 79 20 2b 20 7a |teger k,| k*y + z|
|00001310| 20 3d 3d 20 78 2e 0d 20 | 2a 0d 20 2a 2f 0d 0d 64 | == x.. |*. */..d|
|00001320| 6f 75 62 6c 65 20 66 6d | 6f 64 28 78 2c 20 79 29 |ouble fm|od(x, y)|
|00001330| 0d 64 6f 75 62 6c 65 20 | 78 2c 20 79 3b 0d 7b 0d |.double |x, y;.{.|
|00001340| 09 64 6f 75 62 6c 65 20 | 7a 20 3d 20 78 3b 0d 0d |.double |z = x;..|
|00001350| 09 66 70 36 38 6b 28 26 | 79 2c 20 46 4f 41 42 53 |.fp68k(&|y, FOABS|
|00001360| 29 3b 0d 09 66 70 36 38 | 6b 28 26 79 2c 20 26 7a |);..fp68|k(&y, &z|
|00001370| 2c 20 46 4f 52 45 4d 29 | 3b 0d 09 0d 09 69 66 20 |, FOREM)|;....if |
|00001380| 28 78 20 3e 20 30 20 26 | 26 20 7a 20 3c 20 30 29 |(x > 0 &|& z < 0)|
|00001390| 0d 09 09 7a 20 2b 3d 20 | 79 3b 0d 09 65 6c 73 65 |...z += |y;..else|
|000013a0| 20 69 66 20 28 78 20 3c | 20 30 20 26 26 20 7a 20 | if (x <| 0 && z |
|000013b0| 3e 20 30 29 0d 09 09 7a | 20 2d 3d 20 79 3b 0d 09 |> 0)...z| -= y;..|
|000013c0| 72 65 74 75 72 6e 28 7a | 29 3b 0d 7d 0d 0d 0d 2f |return(z|);.}.../|
|000013d0| 2a 0d 20 2a 20 20 66 72 | 65 78 70 20 2d 20 73 70 |*. * fr|exp - sp|
|000013e0| 6c 69 74 20 66 6c 6f 61 | 74 69 6e 67 20 6e 75 6d |lit floa|ting num|
|000013f0| 62 65 72 20 69 6e 74 6f | 20 66 72 61 63 74 69 6f |ber into| fractio|
|00001400| 6e 2f 65 78 70 6f 6e 65 | 6e 74 0d 20 2a 0d 20 2a |n/expone|nt. *. *|
|00001410| 20 20 54 68 69 73 20 63 | 6f 6d 70 75 74 65 73 20 | This c|omputes |
|00001420| 61 20 76 61 6c 75 65 20 | 7a 2c 20 77 68 65 72 65 |a value |z, where|
|00001430| 20 30 2e 35 20 3c 3d 20 | 66 61 62 73 28 7a 29 20 | 0.5 <= |fabs(z) |
|00001440| 3c 20 31 2e 30 2c 20 61 | 6e 64 20 61 6e 20 69 6e |< 1.0, a|nd an in|
|00001450| 74 65 67 65 72 20 6e 20 | 73 75 63 68 0d 20 2a 20 |teger n |such. * |
|00001460| 20 74 68 61 74 20 7a 2a | 28 32 5e 6e 29 20 3d 3d | that z*|(2^n) ==|
|00001470| 20 78 2e 0d 20 2a 0d 20 | 2a 2f 0d 0d 64 6f 75 62 | x.. *. |*/..doub|
|00001480| 6c 65 20 66 72 65 78 70 | 28 78 2c 20 6e 70 74 72 |le frexp|(x, nptr|
|00001490| 29 0d 64 6f 75 62 6c 65 | 20 78 3b 0d 72 65 67 69 |).double| x;.regi|
|000014a0| 73 74 65 72 20 69 6e 74 | 20 2a 6e 70 74 72 3b 0d |ster int| *nptr;.|
|000014b0| 7b 0d 09 64 6f 75 62 6c | 65 20 79 20 3d 20 66 61 |{..doubl|e y = fa|
|000014c0| 62 73 28 78 29 2c 20 7a | 20 3d 20 54 77 6f 3b 0d |bs(x), z| = Two;.|
|000014d0| 09 0d 09 69 66 20 28 79 | 20 3d 3d 20 30 29 20 7b |...if (y| == 0) {|
|000014e0| 0d 09 09 2a 6e 70 74 72 | 20 3d 20 30 3b 0d 09 09 |...*nptr| = 0;...|
|000014f0| 72 65 74 75 72 6e 28 5a | 65 72 6f 29 3b 0d 09 7d |return(Z|ero);..}|
|00001500| 0d 09 0d 09 65 6c 65 6d | 73 36 38 6b 28 26 79 2c |....elem|s68k(&y,|
|00001510| 20 46 4f 4c 4f 47 32 58 | 29 3b 0d 09 0d 09 79 20 | FOLOG2X|);....y |
|00001520| 2d 3d 20 2a 6e 70 74 72 | 20 3d 20 79 3b 0d 09 0d |-= *nptr| = y;...|
|00001530| 09 65 6c 65 6d 73 36 38 | 6b 28 26 79 2c 20 26 7a |.elems68|k(&y, &z|
|00001540| 2c 20 46 4f 50 57 52 59 | 29 3b 0d 09 0d 09 69 66 |, FOPWRY|);....if|
|00001550| 20 28 7a 20 3e 3d 20 4f | 6e 65 29 20 7b 0d 09 09 | (z >= O|ne) {...|
|00001560| 7a 20 2a 3d 20 50 6f 69 | 6e 74 46 69 76 65 3b 0d |z *= Poi|ntFive;.|
|00001570| 09 09 2b 2b 2a 6e 70 74 | 72 3b 0d 09 7d 0d 09 65 |..++*npt|r;..}..e|
|00001580| 6c 73 65 20 69 66 20 28 | 7a 20 3c 20 50 6f 69 6e |lse if (|z < Poin|
|00001590| 74 46 69 76 65 29 20 7b | 0d 09 09 7a 20 2b 3d 20 |tFive) {|...z += |
|000015a0| 7a 3b 0d 09 09 2d 2d 2a | 6e 70 74 72 3b 0d 09 7d |z;...--*|nptr;..}|
|000015b0| 0d 09 78 66 65 72 73 69 | 67 6e 28 78 2c 20 26 7a |..xfersi|gn(x, &z|
|000015c0| 29 3b 0d 09 72 65 74 75 | 72 6e 28 7a 29 3b 0d 7d |);..retu|rn(z);.}|
|000015d0| 0d 0d 0d 2f 2a 0d 20 2a | 20 20 6c 61 62 73 20 2d |.../*. *| labs -|
|000015e0| 20 61 62 73 6f 6c 75 74 | 65 20 76 61 6c 75 65 20 | absolut|e value |
|000015f0| 6f 66 20 61 20 6c 6f 6e | 67 20 69 6e 74 65 67 65 |of a lon|g intege|
|00001600| 72 0d 20 2a 0d 20 2a 2f | 0d 0d 6c 6f 6e 67 20 6c |r. *. */|..long l|
|00001610| 61 62 73 28 78 29 0d 6c | 6f 6e 67 20 78 3b 0d 7b |abs(x).l|ong x;.{|
|00001620| 0d 09 72 65 74 75 72 6e | 28 78 20 3c 20 30 20 3f |..return|(x < 0 ?|
|00001630| 20 2d 78 20 3a 20 78 29 | 3b 0d 7d 0d 0d 0d 2f 2a | -x : x)|;.}.../*|
|00001640| 0d 20 2a 20 20 6c 64 65 | 78 70 20 2d 20 63 6f 6d |. * lde|xp - com|
|00001650| 62 69 6e 65 20 66 72 61 | 63 74 69 6f 6e 2f 65 78 |bine fra|ction/ex|
|00001660| 70 6f 6e 65 6e 74 20 69 | 6e 74 6f 20 61 20 66 6c |ponent i|nto a fl|
|00001670| 6f 61 74 69 6e 67 20 6e | 75 6d 62 65 72 0d 20 2a |oating n|umber. *|
|00001680| 0d 20 2a 2f 0d 0d 64 6f | 75 62 6c 65 20 6c 64 65 |. */..do|uble lde|
|00001690| 78 70 28 78 2c 20 6e 29 | 0d 64 6f 75 62 6c 65 20 |xp(x, n)|.double |
|000016a0| 78 3b 0d 69 6e 74 20 6e | 3b 0d 7b 0d 09 66 70 36 |x;.int n|;.{..fp6|
|000016b0| 38 6b 28 26 6e 2c 20 26 | 78 2c 20 46 4f 53 43 41 |8k(&n, &|x, FOSCA|
|000016c0| 4c 42 29 3b 0d 09 72 65 | 74 75 72 6e 28 78 29 3b |LB);..re|turn(x);|
|000016d0| 0d 7d 0d 0d 0d 2f 2a 0d | 20 2a 20 20 6c 6f 67 20 |.}.../*.| * log |
|000016e0| 2d 20 6e 61 74 75 72 61 | 6c 20 6c 6f 67 61 72 69 |- natura|l logari|
|000016f0| 74 68 6d 0d 20 2a 0d 20 | 2a 2f 0d 0d 64 6f 75 62 |thm. *. |*/..doub|
|00001700| 6c 65 20 6c 6f 67 28 78 | 29 0d 64 6f 75 62 6c 65 |le log(x|).double|
|00001710| 20 78 3b 0d 7b 0d 09 44 | 6f 6d 61 69 6e 43 68 65 | x;.{..D|omainChe|
|00001720| 63 6b 28 78 20 3c 3d 20 | 30 2c 20 4d 69 6e 75 73 |ck(x <= |0, Minus|
|00001730| 4d 61 78 29 3b 0d 09 65 | 6c 65 6d 73 36 38 6b 28 |Max);..e|lems68k(|
|00001740| 26 78 2c 20 46 4f 4c 4e | 58 29 3b 0d 09 72 65 74 |&x, FOLN|X);..ret|
|00001750| 75 72 6e 28 78 29 3b 0d | 7d 0d 0d 0d 2f 2a 0d 20 |urn(x);.|}.../*. |
|00001760| 2a 20 20 6c 6f 67 31 30 | 20 2d 20 6c 6f 67 61 72 |* log10| - logar|
|00001770| 69 74 68 6d 20 62 61 73 | 65 20 31 30 0d 20 2a 0d |ithm bas|e 10. *.|
|00001780| 20 2a 2f 0d 0d 64 6f 75 | 62 6c 65 20 6c 6f 67 31 | */..dou|ble log1|
|00001790| 30 28 78 29 0d 64 6f 75 | 62 6c 65 20 78 3b 0d 7b |0(x).dou|ble x;.{|
|000017a0| 0d 09 44 6f 6d 61 69 6e | 43 68 65 63 6b 28 78 20 |..Domain|Check(x |
|000017b0| 3c 3d 20 30 2c 20 4d 69 | 6e 75 73 4d 61 78 29 3b |<= 0, Mi|nusMax);|
|000017c0| 0d 09 65 6c 65 6d 73 36 | 38 6b 28 26 78 2c 20 46 |..elems6|8k(&x, F|
|000017d0| 4f 4c 4f 47 32 58 29 3b | 09 2f 2a 20 4c 4f 47 32 |OLOG2X);|./* LOG2|
|000017e0| 20 69 73 20 6d 75 63 68 | 20 66 61 73 74 65 72 20 | is much| faster |
|000017f0| 74 68 61 6e 20 4c 4e 20 | 2a 2f 0d 09 72 65 74 75 |than LN |*/..retu|
|00001800| 72 6e 28 78 20 2f 20 4c | 6f 67 32 54 65 6e 29 3b |rn(x / L|og2Ten);|
|00001810| 0d 7d 0d 0d 0d 2f 2a 0d | 20 2a 20 20 6d 6f 64 66 |.}.../*.| * modf|
|00001820| 20 2d 20 73 70 6c 69 74 | 20 61 20 66 6c 6f 61 74 | - split| a float|
|00001830| 69 6e 67 20 6e 75 6d 62 | 65 72 20 69 6e 74 6f 20 |ing numb|er into |
|00001840| 66 72 61 63 74 69 6f 6e | 2f 69 6e 74 65 67 65 72 |fraction|/integer|
|00001850| 0d 20 2a 0d 20 2a 2f 0d | 0d 64 6f 75 62 6c 65 20 |. *. */.|.double |
|00001860| 6d 6f 64 66 28 78 2c 20 | 6e 70 74 72 29 0d 64 6f |modf(x, |nptr).do|
|00001870| 75 62 6c 65 20 78 3b 0d | 72 65 67 69 73 74 65 72 |uble x;.|register|
|00001880| 20 64 6f 75 62 6c 65 20 | 2a 6e 70 74 72 3b 0d 7b | double |*nptr;.{|
|00001890| 0d 09 2a 6e 70 74 72 20 | 3d 20 78 3b 0d 09 66 70 |..*nptr |= x;..fp|
|000018a0| 36 38 6b 28 6e 70 74 72 | 2c 20 46 4f 54 54 49 29 |68k(nptr|, FOTTI)|
|000018b0| 3b 0d 09 72 65 74 75 72 | 6e 28 78 20 2d 20 2a 6e |;..retur|n(x - *n|
|000018c0| 70 74 72 29 3b 0d 7d 0d | 0d 0d 2f 2a 0d 20 2a 20 |ptr);.}.|../*. * |
|000018d0| 20 70 6f 77 20 2d 20 70 | 6f 77 65 72 20 66 75 6e | pow - p|ower fun|
|000018e0| 63 74 69 6f 6e 20 28 65 | 78 70 6f 6e 65 6e 74 69 |ction (e|xponenti|
|000018f0| 61 74 69 6f 6e 29 0d 20 | 2a 0d 20 2a 2f 0d 0d 64 |ation). |*. */..d|
|00001900| 6f 75 62 6c 65 20 70 6f | 77 28 78 2c 20 79 29 0d |ouble po|w(x, y).|
|00001910| 64 6f 75 62 6c 65 20 78 | 2c 20 79 3b 0d 7b 0d 09 |double x|, y;.{..|
|00001920| 69 6e 74 20 6f 64 64 20 | 3d 20 30 3b 0d 09 64 6f |int odd |= 0;..do|
|00001930| 75 62 6c 65 20 7a 3b 0d | 09 0d 09 43 6c 65 61 72 |uble z;.|...Clear|
|00001940| 45 78 63 65 70 74 69 6f | 6e 73 28 29 3b 0d 09 69 |Exceptio|ns();..i|
|00001950| 66 20 28 78 20 3d 3d 20 | 30 29 20 7b 0d 09 09 69 |f (x == |0) {...i|
|00001960| 66 20 28 79 20 3c 3d 20 | 30 29 20 7b 0d 23 69 66 |f (y <= |0) {.#if|
|00001970| 64 65 66 20 5f 45 52 52 | 4f 52 43 48 45 43 4b 5f |def _ERR|ORCHECK_|
|00001980| 0d 09 09 09 65 72 72 6e | 6f 20 3d 20 45 44 4f 4d |....errn|o = EDOM|
|00001990| 3b 0d 23 65 6e 64 69 66 | 0d 09 09 09 72 65 74 75 |;.#endif|....retu|
|000019a0| 72 6e 20 28 4d 69 6e 75 | 73 4d 61 78 29 3b 0d 09 |rn (Minu|sMax);..|
|000019b0| 09 7d 0d 09 09 72 65 74 | 75 72 6e 28 5a 65 72 6f |.}...ret|urn(Zero|
|000019c0| 29 3b 0d 09 7d 0d 09 69 | 66 20 28 79 20 3d 3d 20 |);..}..i|f (y == |
|000019d0| 30 29 0d 09 09 72 65 74 | 75 72 6e 28 4f 6e 65 29 |0)...ret|urn(One)|
|000019e0| 3b 0d 09 69 66 20 28 78 | 20 3c 20 30 29 20 7b 0d |;..if (x| < 0) {.|
|000019f0| 09 09 69 66 20 28 6d 6f | 64 66 28 79 2c 20 26 79 |..if (mo|df(y, &y|
|00001a00| 29 29 20 7b 0d 23 69 66 | 64 65 66 20 5f 45 52 52 |)) {.#if|def _ERR|
|00001a10| 4f 52 43 48 45 43 4b 5f | 0d 09 09 09 65 72 72 6e |ORCHECK_|....errn|
|00001a20| 6f 20 3d 20 45 44 4f 4d | 3b 0d 23 65 6e 64 69 66 |o = EDOM|;.#endif|
|00001a30| 0d 09 09 09 72 65 74 75 | 72 6e 20 28 4d 69 6e 75 |....retu|rn (Minu|
|00001a40| 73 4d 61 78 29 3b 0d 09 | 09 7d 0d 09 09 78 20 3d |sMax);..|.}...x =|
|00001a50| 20 2d 78 3b 0d 09 09 6f | 64 64 20 3d 20 66 6d 6f | -x;...o|dd = fmo|
|00001a60| 64 28 79 2c 20 54 77 6f | 29 3b 0d 09 7d 0d 09 65 |d(y, Two|);..}..e|
|00001a70| 6c 65 6d 73 36 38 6b 28 | 26 79 2c 20 26 78 2c 20 |lems68k(|&y, &x, |
|00001a80| 46 4f 50 57 52 59 29 3b | 0d 09 0d 09 52 61 6e 67 |FOPWRY);|....Rang|
|00001a90| 65 43 68 65 63 6b 28 78 | 29 3b 0d 09 72 65 74 75 |eCheck(x|);..retu|
|00001aa0| 72 6e 28 6f 64 64 20 3f | 20 2d 78 20 3a 20 78 29 |rn(odd ?| -x : x)|
|00001ab0| 3b 0d 7d 0d 0d 2f 2a 0d | 20 2a 20 20 72 61 6e 64 |;.}../*.| * rand|
|00001ac0| 20 2d 20 70 73 65 75 64 | 6f 2d 72 61 6e 64 6f 6d | - pseud|o-random|
|00001ad0| 20 6e 75 6d 62 65 72 20 | 67 65 6e 65 72 61 74 6f | number |generato|
|00001ae0| 72 20 28 41 4e 53 49 20 | 43 20 73 74 61 6e 64 61 |r (ANSI |C standa|
|00001af0| 72 64 29 0d 20 2a 0d 20 | 2a 2f 0d 0d 69 6e 74 20 |rd). *. |*/..int |
|00001b00| 72 61 6e 64 28 29 0d 7b | 0d 09 73 65 65 64 20 3d |rand().{|..seed =|
|00001b10| 20 73 65 65 64 20 2a 20 | 31 31 30 33 35 31 35 32 | seed * |11035152|
|00001b20| 34 35 20 2b 20 31 32 33 | 34 35 3b 0d 09 61 73 6d |45 + 123|45;..asm|
|00001b30| 20 7b 0d 09 09 6d 6f 76 | 65 2e 77 09 73 65 65 64 | {...mov|e.w.seed|
|00001b40| 2c 64 30 09 09 09 3b 20 | 20 68 69 67 68 20 77 6f |,d0...; | high wo|
|00001b50| 72 64 20 6f 66 20 6c 6f | 6e 67 0d 09 09 61 6e 64 |rd of lo|ng...and|
|00001b60| 69 2e 77 09 23 30 78 37 | 46 46 46 2c 64 30 09 09 |i.w.#0x7|FFF,d0..|
|00001b70| 3b 20 20 72 65 6d 6f 76 | 65 20 68 69 67 68 20 62 |; remov|e high b|
|00001b80| 69 74 0d 09 7d 0d 7d 0d | 0d 0d 2f 2a 0d 20 2a 20 |it..}.}.|../*. * |
|00001b90| 20 73 69 6e 20 2d 20 63 | 69 72 63 75 6c 61 72 20 | sin - c|ircular |
|00001ba0| 73 69 6e 65 0d 20 2a 0d | 20 2a 2f 0d 0d 64 6f 75 |sine. *.| */..dou|
|00001bb0| 62 6c 65 20 73 69 6e 28 | 78 29 0d 64 6f 75 62 6c |ble sin(|x).doubl|
|00001bc0| 65 20 78 3b 0d 7b 0d 09 | 65 6c 65 6d 73 36 38 6b |e x;.{..|elems68k|
|00001bd0| 28 26 78 2c 20 46 4f 53 | 49 4e 58 29 3b 0d 09 72 |(&x, FOS|INX);..r|
|00001be0| 65 74 75 72 6e 28 78 29 | 3b 0d 7d 0d 0d 0d 2f 2a |eturn(x)|;.}.../*|
|00001bf0| 0d 20 2a 20 20 73 69 6e | 68 20 2d 20 68 79 70 65 |. * sin|h - hype|
|00001c00| 72 62 6f 6c 69 63 20 73 | 69 6e 65 0d 20 2a 0d 20 |rbolic s|ine. *. |
|00001c10| 2a 2f 0d 0d 64 6f 75 62 | 6c 65 20 73 69 6e 68 28 |*/..doub|le sinh(|
|00001c20| 78 29 0d 64 6f 75 62 6c | 65 20 78 3b 0d 7b 0d 09 |x).doubl|e x;.{..|
|00001c30| 64 6f 75 62 6c 65 20 79 | 20 3d 20 66 61 62 73 28 |double y| = fabs(|
|00001c40| 78 29 3b 0d 09 0d 09 43 | 6c 65 61 72 45 78 63 65 |x);....C|learExce|
|00001c50| 70 74 69 6f 6e 73 28 29 | 3b 0d 09 65 6c 65 6d 73 |ptions()|;..elems|
|00001c60| 36 38 6b 28 26 79 2c 20 | 46 4f 45 58 50 31 58 29 |68k(&y, |FOEXP1X)|
|00001c70| 3b 0d 09 79 20 2b 3d 20 | 79 20 2f 20 28 79 20 2b |;..y += |y / (y +|
|00001c80| 20 4f 6e 65 29 3b 0d 09 | 79 20 2a 3d 20 50 6f 69 | One);..|y *= Poi|
|00001c90| 6e 74 46 69 76 65 3b 0d | 09 52 61 6e 67 65 43 68 |ntFive;.|.RangeCh|
|00001ca0| 65 63 6b 28 79 29 3b 0d | 09 78 66 65 72 73 69 67 |eck(y);.|.xfersig|
|00001cb0| 6e 28 78 2c 20 26 79 29 | 3b 0d 09 72 65 74 75 72 |n(x, &y)|;..retur|
|00001cc0| 6e 28 79 29 3b 0d 7d 0d | 0d 0d 2f 2a 0d 20 2a 20 |n(y);.}.|../*. * |
|00001cd0| 20 73 71 72 74 20 2d 20 | 73 71 75 61 72 65 20 72 | sqrt - |square r|
|00001ce0| 6f 6f 74 0d 20 2a 0d 20 | 2a 2f 0d 0d 64 6f 75 62 |oot. *. |*/..doub|
|00001cf0| 6c 65 20 73 71 72 74 28 | 78 29 0d 64 6f 75 62 6c |le sqrt(|x).doubl|
|00001d00| 65 20 78 3b 0d 7b 0d 09 | 44 6f 6d 61 69 6e 43 68 |e x;.{..|DomainCh|
|00001d10| 65 63 6b 28 78 20 3c 20 | 30 2c 20 5a 65 72 6f 29 |eck(x < |0, Zero)|
|00001d20| 3b 0d 09 66 70 36 38 6b | 28 26 78 2c 20 46 4f 53 |;..fp68k|(&x, FOS|
|00001d30| 51 52 54 29 3b 0d 09 72 | 65 74 75 72 6e 28 78 29 |QRT);..r|eturn(x)|
|00001d40| 3b 0d 7d 0d 0d 0d 2f 2a | 0d 20 2a 20 20 73 72 61 |;.}.../*|. * sra|
|00001d50| 6e 64 20 2d 20 73 65 65 | 64 20 70 73 65 75 64 6f |nd - see|d pseudo|
|00001d60| 2d 72 61 6e 64 6f 6d 20 | 6e 75 6d 62 65 72 20 67 |-random |number g|
|00001d70| 65 6e 65 72 61 74 6f 72 | 0d 20 2a 0d 20 2a 2f 0d |enerator|. *. */.|
|00001d80| 0d 76 6f 69 64 20 73 72 | 61 6e 64 28 6e 29 0d 75 |.void sr|and(n).u|
|00001d90| 6e 73 69 67 6e 65 64 20 | 6e 3b 0d 7b 0d 09 73 65 |nsigned |n;.{..se|
|00001da0| 65 64 20 3d 20 6e 3b 0d | 7d 0d 0d 0d 2f 2a 0d 20 |ed = n;.|}.../*. |
|00001db0| 2a 20 20 74 61 6e 20 2d | 20 63 69 72 63 75 6c 61 |* tan -| circula|
|00001dc0| 72 20 74 61 6e 67 65 6e | 74 0d 20 2a 0d 20 2a 2f |r tangen|t. *. */|
|00001dd0| 0d 0d 64 6f 75 62 6c 65 | 20 74 61 6e 28 78 29 0d |..double| tan(x).|
|00001de0| 64 6f 75 62 6c 65 20 78 | 3b 0d 7b 0d 09 43 6c 65 |double x|;.{..Cle|
|00001df0| 61 72 45 78 63 65 70 74 | 69 6f 6e 73 28 29 3b 0d |arExcept|ions();.|
|00001e00| 09 65 6c 65 6d 73 36 38 | 6b 28 26 78 2c 20 46 4f |.elems68|k(&x, FO|
|00001e10| 54 41 4e 58 29 3b 0d 09 | 52 61 6e 67 65 43 68 65 |TANX);..|RangeChe|
|00001e20| 63 6b 28 78 29 3b 0d 09 | 72 65 74 75 72 6e 28 78 |ck(x);..|return(x|
|00001e30| 29 3b 0d 7d 0d 0d 0d 2f | 2a 0d 20 2a 20 20 74 61 |);.}.../|*. * ta|
|00001e40| 6e 68 20 2d 20 68 79 70 | 65 72 62 6f 6c 69 63 20 |nh - hyp|erbolic |
|00001e50| 74 61 6e 67 65 6e 74 0d | 20 2a 0d 20 2a 2f 0d 0d |tangent.| *. */..|
|00001e60| 64 6f 75 62 6c 65 20 74 | 61 6e 68 28 78 29 0d 64 |double t|anh(x).d|
|00001e70| 6f 75 62 6c 65 20 78 3b | 0d 7b 0d 09 64 6f 75 62 |ouble x;|.{..doub|
|00001e80| 6c 65 20 79 20 3d 20 4d | 69 6e 75 73 54 77 6f 20 |le y = M|inusTwo |
|00001e90| 2a 20 66 61 62 73 28 78 | 29 3b 0d 09 65 6c 65 6d |* fabs(x|);..elem|
|00001ea0| 73 36 38 6b 28 26 79 2c | 20 46 4f 45 58 50 31 58 |s68k(&y,| FOEXP1X|
|00001eb0| 29 3b 0d 09 79 20 3d 20 | 2d 79 20 2f 20 28 79 20 |);..y = |-y / (y |
|00001ec0| 2b 20 54 77 6f 29 3b 0d | 09 78 66 65 72 73 69 67 |+ Two);.|.xfersig|
|00001ed0| 6e 28 78 2c 20 26 79 29 | 3b 0d 09 72 65 74 75 72 |n(x, &y)|;..retur|
|00001ee0| 6e 28 79 29 3b 0d 7d 0d | 00 00 00 00 00 00 00 00 |n(y);.}.|........|
|00001ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+