home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 8 / Eagles_Nest_Mac_Collection_Disc_8.TOAST / Developer Environments / AAISProlog / Examples / complex.p next >
MacBinary  |  1992-04-06  |  5.0 KB  |  [TEXT/AIFC]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert ZX81 Sinclair BASIC (image/sinclairBASIC) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert bsdiff patch (other/bsdiffPatch) ext Unsupported
1% dexvert imgdiff patch (other/imgdiffPatch) ext Unsupported
1% dexvert WSUS Patch Storage File (other/wsusPatchStorageFile) ext Unsupported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Mon Apr 6 21:42:56 1992, modified Mon Apr 6 21:42:56 1992, creator 'AIFC', type ASCII, 4481 bytes "complex.p" , at 0x1201 380 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[AIFC]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 63 6f 6d 70 6c 65 | 78 2e 70 00 00 00 00 00 |..comple|x.p.....|
|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 41 49 46 | 43 01 00 00 00 00 00 00 |.TEXTAIF|C.......|
|00000050| 00 00 00 00 00 11 81 00 | 00 01 7c a6 06 ae a0 a6 |........|..|.....|
|00000060| 06 ae a0 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 6b 05 00 00 |........|....k...|
|00000080| 2f 2a 0d 20 2a 20 43 6f | 6d 70 6c 65 78 2e 70 0d |/*. * Co|mplex.p.|
|00000090| 20 2a 20 20 54 68 69 73 | 20 65 78 61 6d 70 6c 65 | * This| example|
|000000a0| 20 73 68 6f 77 69 6e 67 | 20 6d 61 6e 79 20 66 65 | showing| many fe|
|000000b0| 61 74 75 72 65 73 20 6f | 66 20 41 41 49 53 20 50 |atures o|f AAIS P|
|000000c0| 72 6f 6c 6f 67 2e 0d 20 | 2a 09 54 68 69 73 20 65 |rolog.. |*.This e|
|000000d0| 78 61 6d 70 6c 65 20 64 | 65 66 69 6e 65 73 20 61 |xample d|efines a|
|000000e0| 20 63 6f 6d 70 6c 65 78 | 20 6e 75 6d 62 65 72 20 | complex| number |
|000000f0| 74 79 70 65 20 61 6e 64 | 20 0d 20 2a 09 64 65 66 |type and| . *.def|
|00000100| 69 6e 65 73 20 62 61 73 | 69 63 20 6f 70 65 72 61 |ines bas|ic opera|
|00000110| 74 69 6f 6e 73 20 66 6f | 72 20 69 74 2e 0d 20 2a |tions fo|r it.. *|
|00000120| 0d 20 2a 20 43 6f 70 79 | 72 69 67 68 74 2c 20 a9 |. * Copy|right, .|
|00000130| 20 31 39 39 32 20 41 64 | 76 61 6e 63 65 64 20 41 | 1992 Ad|vanced A|
|00000140| 2e 20 49 2e 20 53 79 73 | 74 65 6d 73 2c 20 49 6e |. I. Sys|tems, In|
|00000150| 63 2e 0d 20 2a 20 41 6c | 6c 20 72 69 67 68 74 73 |c.. * Al|l rights|
|00000160| 20 72 65 73 65 72 76 65 | 64 2e 0d 20 2a 20 54 68 | reserve|d.. * Th|
|00000170| 69 73 20 66 69 6c 65 20 | 6d 61 79 20 6e 6f 74 20 |is file |may not |
|00000180| 62 65 20 63 6f 70 69 65 | 64 20 6f 72 20 64 69 73 |be copie|d or dis|
|00000190| 74 72 69 62 75 74 65 64 | 20 77 69 74 68 6f 75 74 |tributed| without|
|000001a0| 20 74 68 65 20 77 72 69 | 74 74 65 6e 0d 20 2a 20 | the wri|tten. * |
|000001b0| 70 65 72 6d 69 73 73 69 | 6f 6e 20 6f 66 20 41 64 |permissi|on of Ad|
|000001c0| 76 61 6e 63 65 64 20 41 | 2e 20 49 2e 20 53 79 73 |vanced A|. I. Sys|
|000001d0| 74 65 6d 73 2c 20 49 6e | 63 2e 0d 20 2a 0d 20 2a |tems, In|c.. *. *|
|000001e0| 20 53 65 65 20 41 41 49 | 53 20 46 75 6c 6c 20 43 | See AAI|S Full C|
|000001f0| 6f 6e 74 72 6f 6c 20 50 | 72 6f 6c 6f 67 20 4d 61 |ontrol P|rolog Ma|
|00000200| 6e 75 61 6c 2c 20 56 6f | 6c 75 6d 65 20 32 2c 20 |nual, Vo|lume 2, |
|00000210| 70 61 67 65 20 35 30 20 | 2d 20 35 31 2c 0d 20 2a |page 50 |- 51,. *|
|00000220| 09 56 6f 6c 75 6d 65 20 | 32 2c 20 70 61 67 65 20 |.Volume |2, page |
|00000230| 38 36 20 3d 20 38 37 2e | 0d 20 2a 0d 20 2a 20 54 |86 = 87.|. *. * T|
|00000240| 68 69 73 20 64 65 66 69 | 6e 65 73 20 61 20 70 6f |his defi|nes a po|
|00000250| 73 74 66 69 78 20 6f 70 | 65 72 61 74 6f 72 3a 20 |stfix op|erator: |
|00000260| 69 2e 0d 20 2a 09 49 74 | 73 20 6d 65 61 6e 69 6e |i.. *.It|s meanin|
|00000270| 67 20 69 73 20 73 71 72 | 74 28 2d 31 29 2e 0d 20 |g is sqr|t(-1).. |
|00000280| 2a 20 59 6f 75 20 63 61 | 6e 20 6e 6f 77 20 75 73 |* You ca|n now us|
|00000290| 65 20 74 68 65 20 66 6f | 72 6d 20 4e 20 2b 20 4d |e the fo|rm N + M|
|000002a0| 20 2a 20 69 20 69 6e 73 | 69 64 65 20 61 72 69 74 | * i ins|ide arit|
|000002b0| 68 6d 65 74 69 63 20 65 | 78 70 72 65 73 73 69 6f |hmetic e|xpressio|
|000002c0| 6e 73 0d 20 2a 20 69 6e | 76 6f 6c 76 69 6e 67 20 |ns. * in|volving |
|000002d0| 2b 2c 20 2d 2c 20 2a 2c | 20 2f 20 61 6e 64 20 66 |+, -, *,| / and f|
|000002e0| 61 62 73 2e 0d 20 2a 20 | 4e 20 61 6e 64 20 4d 20 |abs.. * |N and M |
|000002f0| 61 72 65 20 69 6e 74 65 | 67 65 72 73 20 6f 72 20 |are inte|gers or |
|00000300| 66 6c 6f 61 74 69 6e 67 | 20 70 6f 69 6e 74 20 6e |floating| point n|
|00000310| 75 6d 62 65 72 73 2e 0d | 20 2a 0d 45 78 61 6d 70 |umbers..| *.Examp|
|00000320| 6c 65 73 3a 0d 0d 3f 2d | 20 41 20 69 73 20 33 20 |les:..?-| A is 3 |
|00000330| 2b 20 34 69 2c 20 42 20 | 69 73 20 34 69 20 2b 20 |+ 4i, B |is 4i + |
|00000340| 35 2c 20 43 20 69 73 20 | 41 20 2b 20 42 2e 0d 20 |5, C is |A + B.. |
|00000350| 20 20 20 41 20 3d 20 33 | 2e 30 20 2b 20 34 2e 30 | A = 3|.0 + 4.0|
|00000360| 20 69 2c 0d 20 20 20 20 | 42 20 3d 20 35 2e 30 20 | i,. |B = 5.0 |
|00000370| 2b 20 34 2e 30 20 69 2c | 0d 20 20 20 20 43 20 3d |+ 4.0 i,|. C =|
|00000380| 20 38 2e 30 20 2b 20 38 | 2e 30 20 69 0d 0d 3f 2d | 8.0 + 8|.0 i..?-|
|00000390| 20 41 20 69 73 20 28 33 | 20 2a 20 34 69 29 20 2a | A is (3| * 4i) *|
|000003a0| 20 28 35 69 20 2d 20 34 | 29 20 2f 20 28 32 69 29 | (5i - 4|) / (2i)|
|000003b0| 2e 0d 20 20 20 20 41 20 | 3d 20 2d 32 34 2e 30 20 |.. A |= -24.0 |
|000003c0| 2b 20 33 30 2e 30 20 69 | 20 0d 20 2a 2f 0d 2f 2a |+ 30.0 i| . */./*|
|000003d0| 0d 20 2a 20 4d 61 6e 79 | 20 66 75 6e 63 74 69 6f |. * Many| functio|
|000003e0| 6e 73 20 61 72 65 20 75 | 73 65 64 20 6f 6e 6c 79 |ns are u|sed only|
|000003f0| 20 69 6e 74 65 72 6e 61 | 6c 6c 79 20 69 6e 20 74 | interna|lly in t|
|00000400| 68 69 73 20 66 69 6c 65 | 2e 0d 20 2a 2f 0d 3a 2d |his file|.. */.:-|
|00000410| 20 6c 6f 63 61 6c 28 5b | 63 72 65 61 74 65 5f 63 | local([|create_c|
|00000420| 6f 6d 70 6c 65 78 2f 33 | 2c 20 6e 65 77 5f 63 6f |omplex/3|, new_co|
|00000430| 6d 70 6c 65 78 2f 33 2c | 20 0d 09 09 20 20 6e 75 |mplex/3,| ... nu|
|00000440| 6d 5f 32 5f 63 6f 6d 70 | 6c 65 78 2f 32 2c 20 70 |m_2_comp|lex/2, p|
|00000450| 72 69 6e 74 5f 63 6f 6d | 70 6c 65 78 2f 31 5d 29 |rint_com|plex/1])|
|00000460| 2e 0d 0d 2f 2a 0d 20 2a | 20 41 20 6e 65 77 20 6f |.../*. *| A new o|
|00000470| 70 65 72 61 74 6f 72 20 | 66 6f 72 20 74 79 70 69 |perator |for typi|
|00000480| 6e 67 20 69 6e 20 74 68 | 65 20 69 6d 61 67 69 6e |ng in th|e imagin|
|00000490| 65 72 79 20 70 61 72 74 | 20 6f 66 20 63 6f 6d 70 |ery part| of comp|
|000004a0| 6c 65 78 20 6e 75 6d 62 | 65 72 73 2e 0d 20 2a 2f |lex numb|ers.. */|
|000004b0| 0d 3a 2d 20 6f 70 28 32 | 30 30 2c 20 78 66 2c 20 |.:- op(2|00, xf, |
|000004c0| 69 29 2e 0d 0d 2f 2a 0d | 20 2a 20 48 65 72 65 20 |i).../*.| * Here |
|000004d0| 77 65 20 64 65 66 69 6e | 65 20 74 68 65 20 6e 65 |we defin|e the ne|
|000004e0| 77 20 63 6f 6d 70 6c 65 | 78 20 6e 75 6d 62 65 72 |w comple|x number|
|000004f0| 20 64 61 74 61 20 74 79 | 70 65 2e 0d 20 2a 2f 0d | data ty|pe.. */.|
|00000500| 3a 2d 20 63 72 65 61 74 | 65 28 62 61 73 69 63 5f |:- creat|e(basic_|
|00000510| 74 79 70 65 2c 43 4f 4d | 50 4c 45 58 5f 54 59 50 |type,COM|PLEX_TYP|
|00000520| 45 2c 63 6f 6d 70 6c 65 | 78 2c 30 2c 5b 72 65 61 |E,comple|x,0,[rea|
|00000530| 6c 20 3d 20 66 6c 6f 61 | 74 2c 69 6d 61 67 20 3d |l = floa|t,imag =|
|00000540| 20 66 6c 6f 61 74 5d 2c | 0d 09 63 72 65 61 74 65 | float],|..create|
|00000550| 5f 63 6f 6d 70 6c 65 78 | 2f 33 2c 74 72 75 65 29 |_complex|/3,true)|
|00000560| 2e 0d 0d 2f 2a 0d 20 2a | 20 54 68 65 20 63 6f 6d |.../*. *| The com|
|00000570| 70 6c 65 78 20 6e 75 6d | 62 65 72 20 69 6e 69 74 |plex num|ber init|
|00000580| 20 66 75 6e 63 74 69 6f | 6e 2e 0d 20 2a 2f 0d 63 | functio|n.. */.c|
|00000590| 72 65 61 74 65 5f 63 6f | 6d 70 6c 65 78 28 4e 45 |reate_co|mplex(NE|
|000005a0| 57 5f 43 4f 4d 50 4c 45 | 58 2c 52 45 41 4c 2c 49 |W_COMPLE|X,REAL,I|
|000005b0| 4d 41 47 29 20 3a 2d 0d | 09 4e 45 57 5f 43 4f 4d |MAG) :-.|.NEW_COM|
|000005c0| 50 4c 45 58 5e 2e 72 65 | 61 6c 20 69 73 20 52 45 |PLEX^.re|al is RE|
|000005d0| 41 4c 2c 0d 09 4e 45 57 | 5f 43 4f 4d 50 4c 45 58 |AL,..NEW|_COMPLEX|
|000005e0| 5e 2e 69 6d 61 67 20 69 | 73 20 49 4d 41 47 2e 0d |^.imag i|s IMAG..|
|000005f0| 0d 2f 2a 0d 20 2a 20 4d | 61 6b 65 20 65 69 74 68 |./*. * M|ake eith|
|00000600| 65 72 20 61 20 72 65 61 | 6c 20 6f 72 20 63 6f 6d |er a rea|l or com|
|00000610| 70 6c 65 78 20 6e 75 6d | 62 65 72 20 61 73 20 6e |plex num|ber as n|
|00000620| 65 65 64 65 64 2e 0d 20 | 2a 0d 20 2a 20 54 68 69 |eeded.. |*. * Thi|
|00000630| 73 20 69 73 20 75 73 65 | 64 20 69 6e 74 65 72 6e |s is use|d intern|
|00000640| 61 6c 6c 79 20 74 68 72 | 6f 75 67 68 20 6f 75 74 |ally thr|ough out|
|00000650| 20 74 68 69 73 20 66 69 | 6c 65 2c 0d 20 2a 09 49 | this fi|le,. *.I|
|00000660| 66 20 74 68 65 20 69 6d | 61 67 69 6e 61 72 79 20 |f the im|aginary |
|00000670| 70 61 72 74 20 69 73 20 | 30 2c 20 74 68 69 73 20 |part is |0, this |
|00000680| 77 69 6c 6c 20 72 65 74 | 75 72 6e 20 61 20 72 65 |will ret|urn a re|
|00000690| 61 6c 20 6e 75 6d 62 65 | 72 2e 0d 20 2a 2f 0d 6e |al numbe|r.. */.n|
|000006a0| 65 77 5f 63 6f 6d 70 6c | 65 78 28 43 2c 41 2c 42 |ew_compl|ex(C,A,B|
|000006b0| 29 20 3a 2d 0d 09 42 20 | 3d 3a 3d 20 30 2c 21 2c |) :-..B |=:= 0,!,|
|000006c0| 0d 09 43 20 69 73 20 41 | 2e 0d 09 0d 6e 65 77 5f |..C is A|....new_|
|000006d0| 63 6f 6d 70 6c 65 78 28 | 43 2c 41 2c 42 29 20 3a |complex(|C,A,B) :|
|000006e0| 2d 0d 09 63 72 65 61 74 | 65 28 63 6f 6d 70 6c 65 |-..creat|e(comple|
|000006f0| 78 2c 43 2c 41 2c 42 29 | 2e 0d 0d 2f 2a 0d 20 2a |x,C,A,B)|.../*. *|
|00000700| 20 54 68 69 73 20 69 73 | 20 6f 75 72 20 62 61 73 | This is| our bas|
|00000710| 69 63 20 6f 70 65 72 61 | 74 6f 72 20 66 6f 72 20 |ic opera|tor for |
|00000720| 74 68 65 20 69 6d 61 67 | 69 6e 65 72 79 20 70 61 |the imag|inery pa|
|00000730| 72 74 20 6f 66 20 63 6f | 6d 70 6c 65 78 20 6e 75 |rt of co|mplex nu|
|00000740| 6d 62 65 72 73 2e 0d 20 | 2a 2f 0d 69 28 41 29 20 |mbers.. |*/.i(A) |
|00000750| 3a 2d 0d 09 41 20 69 73 | 20 31 20 69 2e 0d 0d 2f |:-..A is| 1 i.../|
|00000760| 2a 0d 20 2a 20 54 68 69 | 73 20 69 73 20 74 68 65 |*. * Thi|s is the|
|00000770| 20 66 75 6e 63 74 69 6f | 6e 20 63 61 6c 6c 20 62 | functio|n call b|
|00000780| 79 20 74 68 65 20 65 78 | 70 72 65 73 73 69 6f 6e |y the ex|pression|
|00000790| 20 63 72 65 61 74 65 64 | 20 62 79 20 4e 20 69 20 | created| by N i |
|000007a0| 28 4e 20 69 73 20 61 20 | 6e 75 6d 62 65 72 29 2e |(N is a |number).|
|000007b0| 0d 20 2a 09 09 69 28 4e | 2c 52 45 53 55 4c 54 29 |. *..i(N|,RESULT)|
|000007c0| 2e 0d 20 2a 20 0d 20 2a | 20 54 68 69 73 20 6d 75 |.. * . *| This mu|
|000007d0| 73 74 20 62 65 20 67 6c | 6f 62 61 6c 2e 0d 20 2a |st be gl|obal.. *|
|000007e0| 2f 0d 69 28 58 2c 59 29 | 20 3a 2d 0d 09 6e 75 6d |/.i(X,Y)| :-..num|
|000007f0| 62 65 72 28 58 29 2c 58 | 20 3d 5c 3d 20 30 2c 21 |ber(X),X| =\= 0,!|
|00000800| 2c 0d 09 63 72 65 61 74 | 65 28 63 6f 6d 70 6c 65 |,..creat|e(comple|
|00000810| 78 2c 59 2c 30 2c 58 29 | 2e 0d 0d 69 28 58 2c 59 |x,Y,0,X)|...i(X,Y|
|00000820| 29 20 3a 2d 20 0d 09 58 | 20 3d 3a 3d 20 30 2c 21 |) :- ..X| =:= 0,!|
|00000830| 2c 0d 09 59 20 69 73 20 | 30 2e 0d 0d 69 28 58 2c |,..Y is |0...i(X,|
|00000840| 59 29 20 3a 2d 0d 09 59 | 20 69 73 20 58 20 2a 20 |Y) :-..Y| is X * |
|00000850| 31 20 69 2e 0d 0d 2f 2a | 0d 20 2a 20 4c 65 74 20 |1 i.../*|. * Let |
|00000860| 75 73 20 64 65 66 69 6e | 65 20 73 6f 6d 65 20 62 |us defin|e some b|
|00000870| 61 73 69 63 20 6f 70 65 | 72 61 74 69 6f 6e 73 2e |asic ope|rations.|
|00000880| 0d 20 2a 09 57 65 20 61 | 73 73 75 6d 65 20 74 68 |. *.We a|ssume th|
|00000890| 61 74 20 50 72 6f 6c 6f | 67 20 77 69 6c 6c 20 63 |at Prolo|g will c|
|000008a0| 6f 6e 76 65 72 74 20 74 | 68 65 20 74 77 6f 20 61 |onvert t|he two a|
|000008b0| 72 67 75 6d 65 6e 74 73 | 20 74 6f 20 62 6f 74 68 |rguments| to both|
|000008c0| 20 63 6f 6d 70 6c 65 78 | 0d 20 2a 09 61 6c 72 65 | complex|. *.alre|
|000008d0| 61 64 79 20 61 6e 64 20 | 74 68 75 73 20 77 65 20 |ady and |thus we |
|000008e0| 6a 75 73 74 20 64 65 61 | 6c 20 77 69 74 68 20 63 |just dea|l with c|
|000008f0| 6f 6d 70 6c 65 78 20 6e | 75 6d 62 65 72 73 2e 0d |omplex n|umbers..|
|00000900| 20 2a 09 49 66 20 74 68 | 65 79 20 63 6f 75 6c 64 | *.If th|ey could|
|00000910| 6e 27 74 20 62 65 20 63 | 6f 6e 76 65 72 74 65 64 |n't be c|onverted|
|00000920| 2c 20 77 65 20 63 61 6e | 27 74 20 75 6e 64 65 72 |, we can|'t under|
|00000930| 73 74 61 6e 64 20 74 68 | 65 20 6f 74 68 65 72 20 |stand th|e other |
|00000940| 61 72 67 75 6d 65 6e 74 | 20 61 6e 79 77 61 79 73 |argument| anyways|
|00000950| 2e 0d 20 2a 0d 20 2a 20 | 4f 70 65 72 61 74 69 6f |.. *. * |Operatio|
|00000960| 6e 73 20 64 65 66 69 6e | 65 64 3a 09 43 6f 6d 70 |ns defin|ed:.Comp|
|00000970| 6c 65 78 31 20 2b 20 43 | 6f 6d 70 6c 65 78 32 0d |lex1 + C|omplex2.|
|00000980| 20 2a 09 09 09 09 09 09 | 43 6f 6d 70 6c 65 78 31 | *......|Complex1|
|00000990| 20 2d 20 43 6f 6d 70 6c | 65 78 32 0d 20 2a 09 09 | - Compl|ex2. *..|
|000009a0| 09 09 09 09 43 6f 6d 70 | 6c 65 78 31 20 2a 20 43 |....Comp|lex1 * C|
|000009b0| 6f 6d 70 6c 65 78 32 0d | 20 2a 09 09 09 09 09 09 |omplex2.| *......|
|000009c0| 43 6f 6d 70 6c 65 78 31 | 20 2f 20 43 6f 6d 70 6c |Complex1| / Compl|
|000009d0| 65 78 32 0d 20 2a 09 09 | 09 09 09 09 66 61 62 73 |ex2. *..|....fabs|
|000009e0| 28 43 6f 6d 70 6c 65 78 | 31 29 0d 20 2a 2f 0d 63 |(Complex|1). */.c|
|000009f0| 6f 6d 70 6c 65 78 20 3c | 2d 20 2b 28 41 2c 42 2c |omplex <|- +(A,B,|
|00000a00| 52 29 20 3a 2d 0d 09 63 | 6f 6e 76 65 72 74 28 42 |R) :-..c|onvert(B|
|00000a10| 2c 20 63 6f 6d 70 6c 65 | 78 2c 20 42 43 29 2c 0d |, comple|x, BC),.|
|00000a20| 09 6e 65 77 5f 63 6f 6d | 70 6c 65 78 28 52 2c 41 |.new_com|plex(R,A|
|00000a30| 5e 2e 72 65 61 6c 20 2b | 20 42 43 5e 2e 72 65 61 |^.real +| BC^.rea|
|00000a40| 6c 2c 41 5e 2e 69 6d 61 | 67 20 2b 20 42 43 5e 2e |l,A^.ima|g + BC^.|
|00000a50| 69 6d 61 67 29 2e 0d 0d | 2f 2a 0d 20 2a 20 57 65 |imag)...|/*. * We|
|00000a60| 20 68 61 76 65 20 74 6f | 20 64 65 66 69 6e 65 20 | have to| define |
|00000a70| 61 20 64 65 66 61 75 6c | 74 20 2b 2f 33 20 73 6f |a defaul|t +/3 so|
|00000a80| 20 74 68 61 74 20 69 66 | 20 74 68 65 20 73 65 63 | that if| the sec|
|00000a90| 6f 6e 64 20 61 72 67 75 | 6d 65 6e 74 0d 20 2a 09 |ond argu|ment. *.|
|00000aa0| 69 73 20 61 20 63 6f 6d | 70 6c 65 78 20 6e 75 6d |is a com|plex num|
|00000ab0| 62 65 72 20 61 6e 64 20 | 74 68 65 20 66 69 72 73 |ber and |the firs|
|00000ac0| 74 20 69 73 20 6e 6f 74 | 2c 20 77 65 20 63 61 6e |t is not|, we can|
|00000ad0| 20 73 74 69 6c 6c 20 64 | 6f 20 74 68 65 0d 20 2a | still d|o the. *|
|00000ae0| 09 20 61 64 64 69 74 69 | 6f 6e 20 69 66 20 70 6f |. additi|on if po|
|00000af0| 73 73 69 62 6c 65 2e 0d | 20 2a 20 48 6f 77 65 76 |ssible..| * Howev|
|00000b00| 65 72 2c 20 74 68 69 73 | 20 77 69 6c 6c 20 72 65 |er, this| will re|
|00000b10| 64 65 66 69 6e 65 20 61 | 6e 79 20 6f 74 68 65 72 |define a|ny other|
|00000b20| 20 64 65 66 61 75 6c 74 | 20 3c 2d 20 2b 2f 33 20 | default| <- +/3 |
|00000b30| 72 75 6c 65 73 2e 0d 20 | 2a 2f 0d 64 65 66 61 75 |rules.. |*/.defau|
|00000b40| 6c 74 20 3c 2d 20 2b 28 | 41 2c 20 42 2c 20 52 29 |lt <- +(|A, B, R)|
|00000b50| 20 3a 2d 0d 09 63 6f 6e | 76 65 72 74 28 41 2c 20 | :-..con|vert(A, |
|00000b60| 63 6f 6d 70 6c 65 78 2c | 20 41 43 29 2c 0d 09 2b |complex,| AC),..+|
|00000b70| 28 41 43 2c 20 42 2c 20 | 52 29 2e 0d 0d 63 6f 6d |(AC, B, |R)...com|
|00000b80| 70 6c 65 78 20 3c 2d 20 | 2d 28 41 2c 20 42 2c 20 |plex <- |-(A, B, |
|00000b90| 52 29 20 3a 2d 0d 09 52 | 20 69 73 20 41 20 2b 20 |R) :-..R| is A + |
|00000ba0| 2d 20 42 2e 0d 0d 64 65 | 66 61 75 6c 74 20 3c 2d |- B...de|fault <-|
|00000bb0| 20 2d 28 41 2c 20 42 2c | 20 52 29 20 3a 2d 0d 09 | -(A, B,| R) :-..|
|00000bc0| 63 6f 6e 76 65 72 74 28 | 41 2c 20 63 6f 6d 70 6c |convert(|A, compl|
|00000bd0| 65 78 2c 20 41 43 29 2c | 0d 09 2d 28 41 43 2c 20 |ex, AC),|..-(AC, |
|00000be0| 42 2c 20 52 29 2e 0d 09 | 0d 63 6f 6d 70 6c 65 78 |B, R)...|.complex|
|00000bf0| 20 3c 2d 20 2d 28 41 2c | 20 52 29 20 3a 2d 0d 09 | <- -(A,| R) :-..|
|00000c00| 6e 65 77 5f 63 6f 6d 70 | 6c 65 78 28 52 2c 20 2d |new_comp|lex(R, -|
|00000c10| 20 41 5e 2e 72 65 61 6c | 2c 20 2d 20 41 5e 2e 69 | A^.real|, - A^.i|
|00000c20| 6d 61 67 29 2e 0d 09 0d | 63 6f 6d 70 6c 65 78 20 |mag)....|complex |
|00000c30| 3c 2d 20 2a 28 41 2c 20 | 42 2c 20 52 29 20 3a 2d |<- *(A, |B, R) :-|
|00000c40| 0d 09 63 6f 6e 76 65 72 | 74 28 42 2c 20 63 6f 6d |..conver|t(B, com|
|00000c50| 70 6c 65 78 2c 20 42 43 | 29 2c 0d 09 6e 65 77 5f |plex, BC|),..new_|
|00000c60| 63 6f 6d 70 6c 65 78 28 | 52 2c 20 28 41 5e 2e 72 |complex(|R, (A^.r|
|00000c70| 65 61 6c 20 2a 20 42 43 | 5e 2e 72 65 61 6c 29 20 |eal * BC|^.real) |
|00000c80| 2d 20 28 41 5e 2e 69 6d | 61 67 20 2a 20 42 43 5e |- (A^.im|ag * BC^|
|00000c90| 2e 69 6d 61 67 29 2c 0d | 09 09 28 41 5e 2e 72 65 |.imag),.|..(A^.re|
|00000ca0| 61 6c 20 2a 20 42 43 5e | 2e 69 6d 61 67 29 20 2b |al * BC^|.imag) +|
|00000cb0| 20 28 41 5e 2e 69 6d 61 | 67 20 2a 20 42 43 5e 2e | (A^.ima|g * BC^.|
|00000cc0| 72 65 61 6c 29 29 2e 0d | 0d 64 65 66 61 75 6c 74 |real))..|.default|
|00000cd0| 20 3c 2d 20 2a 28 41 2c | 20 42 2c 20 52 29 20 3a | <- *(A,| B, R) :|
|00000ce0| 2d 0d 09 63 6f 6e 76 65 | 72 74 28 41 2c 20 63 6f |-..conve|rt(A, co|
|00000cf0| 6d 70 6c 65 78 2c 20 41 | 43 29 2c 0d 09 2a 28 41 |mplex, A|C),..*(A|
|00000d00| 43 2c 20 42 2c 20 52 29 | 2e 0d 09 09 0d 63 6f 6d |C, B, R)|.....com|
|00000d10| 70 6c 65 78 20 3c 2d 20 | 2f 28 41 2c 20 42 2c 20 |plex <- |/(A, B, |
|00000d20| 52 29 20 3a 2d 0d 09 63 | 6f 6e 76 65 72 74 28 42 |R) :-..c|onvert(B|
|00000d30| 2c 20 63 6f 6d 70 6c 65 | 78 2c 20 42 43 29 2c 0d |, comple|x, BC),.|
|00000d40| 09 44 45 4e 4f 4d 20 69 | 73 20 28 42 43 5e 2e 72 |.DENOM i|s (BC^.r|
|00000d50| 65 61 6c 29 2a 28 42 43 | 5e 2e 72 65 61 6c 29 20 |eal)*(BC|^.real) |
|00000d60| 2b 20 28 42 43 5e 2e 69 | 6d 61 67 29 2a 28 42 43 |+ (BC^.i|mag)*(BC|
|00000d70| 5e 2e 69 6d 61 67 29 2c | 0d 09 6e 65 77 5f 63 6f |^.imag),|..new_co|
|00000d80| 6d 70 6c 65 78 28 52 2c | 28 41 5e 2e 72 65 61 6c |mplex(R,|(A^.real|
|00000d90| 20 2a 20 42 43 5e 2e 72 | 65 61 6c 20 2b 20 41 5e | * BC^.r|eal + A^|
|00000da0| 2e 69 6d 61 67 20 2a 20 | 42 43 5e 2e 69 6d 61 67 |.imag * |BC^.imag|
|00000db0| 29 2f 44 45 4e 4f 4d 2c | 0d 09 09 09 09 20 20 28 |)/DENOM,|..... (|
|00000dc0| 41 5e 2e 69 6d 61 67 20 | 2a 20 42 43 5e 2e 72 65 |A^.imag |* BC^.re|
|00000dd0| 61 6c 20 2d 20 41 5e 2e | 72 65 61 6c 20 2a 20 42 |al - A^.|real * B|
|00000de0| 43 5e 2e 69 6d 61 67 29 | 2f 44 45 4e 4f 4d 29 2e |C^.imag)|/DENOM).|
|00000df0| 0d 0d 64 65 66 61 75 6c | 74 20 3c 2d 20 2f 28 41 |..defaul|t <- /(A|
|00000e00| 2c 20 42 2c 20 52 29 20 | 3a 2d 0d 09 63 6f 6e 76 |, B, R) |:-..conv|
|00000e10| 65 72 74 28 41 2c 20 63 | 6f 6d 70 6c 65 78 2c 20 |ert(A, c|omplex, |
|00000e20| 41 43 29 2c 0d 09 2f 28 | 41 43 2c 20 42 2c 20 52 |AC),../(|AC, B, R|
|00000e30| 29 2e 0d 09 09 09 09 20 | 20 0d 63 6f 6d 70 6c 65 |)...... | .comple|
|00000e40| 78 20 3c 2d 20 66 61 62 | 73 28 41 2c 20 52 29 20 |x <- fab|s(A, R) |
|00000e50| 3a 2d 0d 09 41 5e 2e 69 | 6d 61 67 20 3d 5c 3d 20 |:-..A^.i|mag =\= |
|00000e60| 30 2c 21 2c 0d 09 6e 65 | 77 5f 63 6f 6d 70 6c 65 |0,!,..ne|w_comple|
|00000e70| 78 28 52 2c 20 41 5e 2e | 72 65 61 6c 2c 20 2d 20 |x(R, A^.|real, - |
|00000e80| 41 5e 2e 69 6d 61 67 29 | 2e 0d 09 0d 63 6f 6d 70 |A^.imag)|....comp|
|00000e90| 6c 65 78 20 3c 2d 20 66 | 61 62 73 28 41 2c 20 52 |lex <- f|abs(A, R|
|00000ea0| 29 20 3a 2d 0d 09 52 20 | 69 73 20 66 61 62 73 28 |) :-..R |is fabs(|
|00000eb0| 41 5e 2e 72 65 61 6c 29 | 2e 0d 0d 2f 2a 0d 20 2a |A^.real)|.../*. *|
|00000ec0| 20 4e 6f 77 20 77 65 20 | 64 65 66 69 6e 65 20 61 | Now we |define a|
|00000ed0| 20 66 75 6e 63 74 69 6f | 6e 20 74 6f 20 63 6f 6e | functio|n to con|
|00000ee0| 76 65 72 74 20 69 6e 74 | 65 67 65 72 73 20 61 6e |vert int|egers an|
|00000ef0| 64 20 66 6c 6f 61 74 69 | 6e 67 20 70 6f 69 6e 74 |d floati|ng point|
|00000f00| 20 6e 75 6d 62 65 72 73 | 0d 20 2a 09 69 6e 74 6f | numbers|. *.into|
|00000f10| 20 63 6f 6d 70 6c 65 78 | 20 6e 75 6d 62 65 72 73 | complex| numbers|
|00000f20| 2e 0d 20 2a 20 54 68 69 | 73 20 77 69 6c 6c 20 62 |.. * Thi|s will b|
|00000f30| 65 20 75 73 65 64 20 62 | 79 20 63 6f 6e 76 65 72 |e used b|y conver|
|00000f40| 74 28 41 52 47 2c 63 6f | 6d 70 6c 65 78 2c 52 45 |t(ARG,co|mplex,RE|
|00000f50| 53 55 4c 54 29 2e 0d 20 | 2a 2f 0d 6e 75 6d 5f 32 |SULT).. |*/.num_2|
|00000f60| 5f 63 6f 6d 70 6c 65 78 | 28 41 2c 52 29 20 3a 2d |_complex|(A,R) :-|
|00000f70| 20 63 72 65 61 74 65 28 | 63 6f 6d 70 6c 65 78 2c | create(|complex,|
|00000f80| 52 2c 41 2c 30 29 2e 0d | 0d 3a 2d 20 64 65 66 69 |R,A,0)..|.:- defi|
|00000f90| 6e 65 5f 63 6f 6e 76 65 | 72 74 28 69 6e 74 65 67 |ne_conve|rt(integ|
|00000fa0| 65 72 2c 63 6f 6d 70 6c | 65 78 2c 6e 75 6d 5f 32 |er,compl|ex,num_2|
|00000fb0| 5f 63 6f 6d 70 6c 65 78 | 29 2e 0d 3a 2d 20 64 65 |_complex|)..:- de|
|00000fc0| 66 69 6e 65 5f 63 6f 6e | 76 65 72 74 28 66 6c 6f |fine_con|vert(flo|
|00000fd0| 61 74 2c 63 6f 6d 70 6c | 65 78 2c 6e 75 6d 5f 32 |at,compl|ex,num_2|
|00000fe0| 5f 63 6f 6d 70 6c 65 78 | 29 2e 0d 0d 2f 2a 0d 20 |_complex|).../*. |
|00000ff0| 2a 20 54 68 69 73 20 64 | 65 66 69 6e 65 73 20 61 |* This d|efines a|
|00001000| 20 70 72 69 6e 74 20 66 | 75 6e 63 74 69 6f 6e 20 | print f|unction |
|00001010| 66 6f 72 20 63 6f 6d 70 | 6c 65 78 20 6e 75 6d 62 |for comp|lex numb|
|00001020| 65 72 73 2e 0d 20 2a 09 | 57 65 20 6e 65 65 64 20 |ers.. *.|We need |
|00001030| 74 6f 20 64 65 66 69 6e | 65 20 61 20 66 75 6e 63 |to defin|e a func|
|00001040| 74 69 6f 6e 20 77 68 69 | 63 68 20 74 61 6b 65 73 |tion whi|ch takes|
|00001050| 20 6f 6e 65 20 61 72 67 | 75 6d 65 6e 74 20 28 74 | one arg|ument (t|
|00001060| 68 65 20 63 6f 6d 70 6c | 65 78 20 6e 75 6d 62 65 |he compl|ex numbe|
|00001070| 72 29 2c 0d 20 2a 09 61 | 6e 64 20 70 72 69 6e 74 |r),. *.a|nd print|
|00001080| 73 20 69 74 20 74 6f 20 | 74 68 65 20 63 75 72 72 |s it to |the curr|
|00001090| 65 6e 74 20 6f 75 74 70 | 75 74 20 70 6f 72 74 2e |ent outp|ut port.|
|000010a0| 0d 20 2a 09 57 65 20 75 | 73 65 20 70 72 69 6e 74 |. *.We u|se print|
|000010b0| 20 74 6f 20 70 72 69 6e | 74 20 73 75 62 20 70 61 | to prin|t sub pa|
|000010c0| 72 74 73 2e 0d 20 2a 0d | 20 2a 20 54 68 69 73 20 |rts.. *.| * This |
|000010d0| 77 69 6c 6c 20 62 65 20 | 75 73 65 64 20 62 79 20 |will be |used by |
|000010e0| 70 72 69 6e 74 28 43 4f | 4d 50 4c 45 58 29 2e 0d |print(CO|MPLEX)..|
|000010f0| 20 2a 2f 0d 70 72 69 6e | 74 5f 63 6f 6d 70 6c 65 | */.prin|t_comple|
|00001100| 78 28 58 29 20 3a 2d 0d | 09 58 5e 2e 72 65 61 6c |x(X) :-.|.X^.real|
|00001110| 20 3d 3a 3d 20 30 2c 21 | 2c 0d 09 42 20 69 73 20 | =:= 0,!|,..B is |
|00001120| 58 5e 2e 69 6d 61 67 2c | 0d 09 70 72 69 6e 74 28 |X^.imag,|..print(|
|00001130| 42 20 69 29 2e 0d 09 09 | 20 20 20 0d 70 72 69 6e |B i)....| .prin|
|00001140| 74 5f 63 6f 6d 70 6c 65 | 78 28 58 29 20 3a 2d 0d |t_comple|x(X) :-.|
|00001150| 09 58 5e 2e 69 6d 61 67 | 20 3c 20 30 2c 21 2c 0d |.X^.imag| < 0,!,.|
|00001160| 09 41 20 69 73 20 58 5e | 2e 72 65 61 6c 2c 0d 09 |.A is X^|.real,..|
|00001170| 42 31 20 69 73 20 2d 20 | 58 5e 2e 69 6d 61 67 2c |B1 is - |X^.imag,|
|00001180| 0d 09 70 72 69 6e 74 28 | 41 20 2d 20 42 31 20 69 |..print(|A - B1 i|
|00001190| 29 2e 0d 09 0d 70 72 69 | 6e 74 5f 63 6f 6d 70 6c |)....pri|nt_compl|
|000011a0| 65 78 28 58 29 20 3a 2d | 0d 09 41 20 69 73 20 58 |ex(X) :-|..A is X|
|000011b0| 5e 2e 72 65 61 6c 2c 0d | 09 42 20 69 73 20 58 5e |^.real,.|.B is X^|
|000011c0| 2e 69 6d 61 67 2c 0d 09 | 70 72 69 6e 74 28 41 20 |.imag,..|print(A |
|000011d0| 2b 20 42 20 69 29 2e 0d | 0d 3a 2d 20 64 65 66 69 |+ B i)..|.:- defi|
|000011e0| 6e 65 5f 70 72 69 6e 74 | 28 63 6f 6d 70 6c 65 78 |ne_print|(complex|
|000011f0| 2c 70 72 69 6e 74 5f 63 | 6f 6d 70 6c 65 78 29 2e |,print_c|omplex).|
|00001200| 0d 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001260| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001270| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001280| 00 00 01 00 00 00 01 22 | 00 00 00 22 00 00 00 5a |......."|..."...Z|
|00001290| 20 2a 20 20 54 68 69 73 | 20 65 78 61 6d 70 6c 65 | * This| example|
|000012a0| 20 73 68 6f 77 69 6e 67 | 20 6d 61 6e 79 20 66 65 | showing| many fe|
|000012b0| 09 63 6f 6d 70 6c 65 78 | 2e 70 02 00 00 00 54 45 |.complex|.p....TE|
|000012c0| 58 54 41 49 46 43 01 00 | 00 14 00 00 00 00 00 00 |XTAIFC..|........|
|000012d0| 00 00 54 45 58 54 41 49 | 46 43 01 00 00 14 00 00 |..TEXTAI|FC......|
|000012e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000012f0| 00 00 a5 e2 44 34 00 00 | 11 81 00 00 01 7c 65 66 |....D4..|.....|ef|
|00001300| 69 6e 65 73 20 62 61 73 | 69 63 20 6f 70 65 72 61 |ines bas|ic opera|
|00001310| 74 69 6f 6e 73 20 66 6f | 72 20 69 74 2e 0d 20 2a |tions fo|r it.. *|
|00001320| 0d 20 2a 20 43 6f 70 79 | 72 69 67 68 74 2c 20 a9 |. * Copy|right, .|
|00001330| 20 31 39 39 31 20 41 64 | 76 61 6e 63 65 64 20 41 | 1991 Ad|vanced A|
|00001340| 2e 20 49 2e 20 53 79 73 | 74 65 6d 73 2c 20 49 6e |. I. Sys|tems, In|
|00001350| 63 2e 0d 20 2a 20 41 6c | 6c 20 72 69 67 68 74 73 |c.. * Al|l rights|
|00001360| 20 72 65 73 65 72 76 65 | 64 2e 0d 20 2a 2f 0d 2f | reserve|d.. */./|
|00001370| 2a 0d 20 2a 20 4d 61 6e | 79 20 66 75 6e 63 74 69 |*. * Man|y functi|
|00001380| 00 00 00 0a 00 09 06 4d | 6f 6e 61 63 6f 2b 00 00 |.......M|onaco+..|
|00001390| 00 08 00 46 00 14 01 76 | 01 f1 00 00 00 04 00 18 |...F...v|........|
|000013a0| 00 04 00 00 01 00 00 00 | 01 22 00 00 00 22 00 00 |........|."..."..|
|000013b0| 00 5a 00 21 54 ac 06 40 | 00 00 00 1c 00 5a 00 02 |.Z.!T..@|.....Z..|
|000013c0| 45 46 4e 54 00 00 00 1a | 45 57 4e 44 00 00 00 26 |EFNT....|EWND...&|
|000013d0| 45 54 41 42 00 00 00 32 | 03 eb ff ff 00 00 00 00 |ETAB...2|........|
|000013e0| 00 21 a2 90 01 00 ff ff | 00 00 00 0e 00 21 a2 80 |.!......|.....!..|
|000013f0| 03 ec ff ff 00 00 00 1a | 00 21 a2 c0 00 00 00 00 |........|.!......|
+--------+-------------------------+-------------------------+--------+--------+