home *** CD-ROM | disk | FTP | other *** search
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: part03
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 0a 58 2d |.sources|.misc.X-|
|00000020| 55 4e 49 58 2d 46 72 6f | 6d 3a 20 6d 69 6d 73 79 |UNIX-Fro|m: mimsy|
|00000030| 21 6f 64 64 6a 6f 62 2e | 75 63 68 69 63 61 67 6f |!oddjob.|uchicago|
|00000040| 2e 65 64 75 21 6e 75 63 | 73 72 6c 21 63 68 69 6e |.edu!nuc|srl!chin|
|00000050| 65 74 2e 75 75 63 70 21 | 64 72 74 0a 73 75 62 6a |et.uucp!|drt.subj|
|00000060| 65 63 74 3a 20 76 31 34 | 69 30 38 36 3a 20 46 61 |ect: v14|i086: Fa|
|00000070| 73 74 20 42 61 63 6b 70 | 72 6f 70 61 67 61 74 69 |st Backp|ropagati|
|00000080| 6f 6e 20 50 61 72 74 20 | 33 20 6f 66 20 34 0a 66 |on Part |3 of 4.f|
|00000090| 72 6f 6d 3a 20 44 6f 6e | 61 6c 64 20 54 76 65 74 |rom: Don|ald Tvet|
|000000a0| 65 72 20 3c 64 72 74 40 | 63 68 69 6e 65 74 2e 63 |er <drt@|chinet.c|
|000000b0| 68 69 2e 69 6c 2e 75 73 | 3e 0a 53 65 6e 64 65 72 |hi.il.us|>.Sender|
|000000c0| 3a 20 61 6c 6c 62 65 72 | 79 40 75 75 6e 65 74 2e |: allber|y@uunet.|
|000000d0| 55 55 2e 4e 45 54 20 28 | 42 72 61 6e 64 6f 6e 20 |UU.NET (|Brandon |
|000000e0| 53 2e 20 41 6c 6c 62 65 | 72 79 20 2d 20 63 6f 6d |S. Allbe|ry - com|
|000000f0| 70 2e 73 6f 75 72 63 65 | 73 2e 6d 69 73 63 29 0a |p.source|s.misc).|
|00000100| 0a 50 6f 73 74 69 6e 67 | 2d 6e 75 6d 62 65 72 3a |.Posting|-number:|
|00000110| 20 56 6f 6c 75 6d 65 20 | 31 34 2c 20 49 73 73 75 | Volume |14, Issu|
|00000120| 65 20 38 36 0a 53 75 62 | 6d 69 74 74 65 64 2d 62 |e 86.Sub|mitted-b|
|00000130| 79 3a 20 44 6f 6e 61 6c | 64 20 54 76 65 74 65 72 |y: Donal|d Tveter|
|00000140| 20 3c 64 72 74 40 63 68 | 69 6e 65 74 2e 63 68 69 | <drt@ch|inet.chi|
|00000150| 2e 69 6c 2e 75 73 3e 0a | 41 72 63 68 69 76 65 2d |.il.us>.|Archive-|
|00000160| 6e 61 6d 65 3a 20 62 61 | 63 6b 2d 70 72 6f 70 2f |name: ba|ck-prop/|
|00000170| 70 61 72 74 30 33 0a 0a | 23 21 20 2f 62 69 6e 2f |part03..|#! /bin/|
|00000180| 73 68 0a 23 20 54 68 69 | 73 20 69 73 20 61 20 73 |sh.# Thi|s is a s|
|00000190| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2e 20 20 52 |hell arc|hive. R|
|000001a0| 65 6d 6f 76 65 20 61 6e | 79 74 68 69 6e 67 20 62 |emove an|ything b|
|000001b0| 65 66 6f 72 65 20 74 68 | 69 73 20 6c 69 6e 65 2c |efore th|is line,|
|000001c0| 20 74 68 65 6e 20 75 6e | 70 61 63 6b 0a 23 20 69 | then un|pack.# i|
|000001d0| 74 20 62 79 20 73 61 76 | 69 6e 67 20 69 74 20 69 |t by sav|ing it i|
|000001e0| 6e 74 6f 20 61 20 66 69 | 6c 65 20 61 6e 64 20 74 |nto a fi|le and t|
|000001f0| 79 70 69 6e 67 20 22 73 | 68 20 66 69 6c 65 22 2e |yping "s|h file".|
|00000200| 20 20 54 6f 20 6f 76 65 | 72 77 72 69 74 65 20 65 | To ove|rwrite e|
|00000210| 78 69 73 74 69 6e 67 0a | 23 20 66 69 6c 65 73 2c |xisting.|# files,|
|00000220| 20 74 79 70 65 20 22 73 | 68 20 66 69 6c 65 20 2d | type "s|h file -|
|00000230| 63 22 2e 20 20 59 6f 75 | 20 63 61 6e 20 61 6c 73 |c". You| can als|
|00000240| 6f 20 66 65 65 64 20 74 | 68 69 73 20 61 73 20 73 |o feed t|his as s|
|00000250| 74 61 6e 64 61 72 64 20 | 69 6e 70 75 74 20 76 69 |tandard |input vi|
|00000260| 61 0a 23 20 75 6e 73 68 | 61 72 2c 20 6f 72 20 62 |a.# unsh|ar, or b|
|00000270| 79 20 74 79 70 69 6e 67 | 20 22 73 68 20 3c 66 69 |y typing| "sh <fi|
|00000280| 6c 65 22 2c 20 65 2e 67 | 2e 2e 20 20 49 66 20 74 |le", e.g|.. If t|
|00000290| 68 69 73 20 61 72 63 68 | 69 76 65 20 69 73 20 63 |his arch|ive is c|
|000002a0| 6f 6d 70 6c 65 74 65 2c | 20 79 6f 75 0a 23 20 77 |omplete,| you.# w|
|000002b0| 69 6c 6c 20 73 65 65 20 | 74 68 65 20 66 6f 6c 6c |ill see |the foll|
|000002c0| 6f 77 69 6e 67 20 6d 65 | 73 73 61 67 65 20 61 74 |owing me|ssage at|
|000002d0| 20 74 68 65 20 65 6e 64 | 3a 0a 23 09 09 22 45 6e | the end|:.#.."En|
|000002e0| 64 20 6f 66 20 61 72 63 | 68 69 76 65 20 33 20 28 |d of arc|hive 3 (|
|000002f0| 6f 66 20 34 29 2e 22 0a | 23 20 43 6f 6e 74 65 6e |of 4).".|# Conten|
|00000300| 74 73 3a 20 20 69 6f 2e | 63 20 6d 61 6b 65 66 69 |ts: io.|c makefi|
|00000310| 6c 65 20 72 62 70 2e 68 | 20 69 62 70 2e 68 0a 23 |le rbp.h| ibp.h.#|
|00000320| 20 57 72 61 70 70 65 64 | 20 62 79 20 64 72 74 40 | Wrapped| by drt@|
|00000330| 63 68 69 6e 65 74 20 6f | 6e 20 46 72 69 20 41 75 |chinet o|n Fri Au|
|00000340| 67 20 33 31 20 30 38 3a | 31 38 3a 31 33 20 31 39 |g 31 08:|18:13 19|
|00000350| 39 30 0a 50 41 54 48 3d | 2f 62 69 6e 3a 2f 75 73 |90.PATH=|/bin:/us|
|00000360| 72 2f 62 69 6e 3a 2f 75 | 73 72 2f 75 63 62 20 3b |r/bin:/u|sr/ucb ;|
|00000370| 20 65 78 70 6f 72 74 20 | 50 41 54 48 0a 69 66 20 | export |PATH.if |
|00000380| 74 65 73 74 20 2d 66 20 | 27 69 6f 2e 63 27 20 2d |test -f |'io.c' -|
|00000390| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|000003a0| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|000003b0| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|000003c0| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|000003d0| 66 69 6c 65 20 5c 22 27 | 69 6f 2e 63 27 5c 22 0a |file \"'|io.c'\".|
|000003e0| 65 6c 73 65 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |else.ech|o shar: |
|000003f0| 45 78 74 72 61 63 74 69 | 6e 67 20 5c 22 27 69 6f |Extracti|ng \"'io|
|00000400| 2e 63 27 5c 22 20 5c 28 | 32 34 30 33 37 20 63 68 |.c'\" \(|24037 ch|
|00000410| 61 72 61 63 74 65 72 73 | 5c 29 0a 73 65 64 20 22 |aracters|\).sed "|
|00000420| 73 2f 5e 58 2f 2f 22 20 | 3e 27 69 6f 2e 63 27 20 |s/^X//" |>'io.c' |
|00000430| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|00000440| 58 2f 2a 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X/* ****|********|
|00000450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000460| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000470| 2a 2a 2a 2a 20 2a 2f 0a | 58 2f 2a 20 66 69 6c 65 |**** */.|X/* file|
|00000480| 20 69 6f 2e 63 3a 20 20 | 63 6f 6e 74 61 69 6e 73 | io.c: |contains|
|00000490| 20 6d 6f 73 74 20 69 6e | 70 75 74 2f 6f 75 74 70 | most in|put/outp|
|000004a0| 75 74 20 66 75 6e 63 74 | 69 6f 6e 73 20 2a 2f 0a |ut funct|ions */.|
|000004b0| 58 2f 2a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X/* | |
|000004c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000004d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000004e0| 20 20 20 20 20 2a 2f 0a | 58 2f 2a 20 43 6f 70 79 | */.|X/* Copy|
|000004f0| 72 69 67 68 74 20 28 63 | 29 20 31 39 39 30 20 62 |right (c|) 1990 b|
|00000500| 79 20 44 6f 6e 61 6c 64 | 20 52 2e 20 54 76 65 74 |y Donald| R. Tvet|
|00000510| 65 72 20 20 20 20 20 20 | 20 20 20 20 20 2a 2f 0a |er | */.|
|00000520| 58 2f 2a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X/* | |
|00000530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000540| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000550| 20 20 20 20 20 2a 2f 0a | 58 2f 2a 20 2a 2a 2a 2a | */.|X/* ****|
|00000560| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 20 2a 2f 0a |********|**** */.|
|00000590| 58 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 74 64 |X.X#incl|ude <std|
|000005a0| 69 6f 2e 68 3e 0a 58 23 | 69 66 64 65 66 20 49 4e |io.h>.X#|ifdef IN|
|000005b0| 54 45 47 45 52 0a 58 23 | 69 6e 63 6c 75 64 65 20 |TEGER.X#|include |
|000005c0| 22 69 62 70 2e 68 22 0a | 58 23 65 6c 73 65 0a 58 |"ibp.h".|X#else.X|
|000005d0| 23 69 6e 63 6c 75 64 65 | 20 22 72 62 70 2e 68 22 |#include| "rbp.h"|
|000005e0| 0a 58 23 65 6e 64 69 66 | 0a 58 0a 58 65 78 74 65 |.X#endif|.X.Xexte|
|000005f0| 72 6e 20 63 68 61 72 20 | 62 75 66 66 65 72 5b 62 |rn char |buffer[b|
|00000600| 75 66 66 73 69 7a 65 5d | 3b 0a 58 65 78 74 65 72 |uffsize]|;.Xexter|
|00000610| 6e 20 69 6e 74 20 62 75 | 66 66 65 72 65 6e 64 3b |n int bu|fferend;|
|00000620| 0a 58 65 78 74 65 72 6e | 20 69 6e 74 20 62 75 66 |.Xextern| int buf|
|00000630| 66 65 72 70 74 72 3b 0a | 58 65 78 74 65 72 6e 20 |ferptr;.|Xextern |
|00000640| 69 6e 74 20 63 68 3b 0a | 58 65 78 74 65 72 6e 20 |int ch;.|Xextern |
|00000650| 46 49 4c 45 20 2a 64 61 | 74 61 3b 0a 58 65 78 74 |FILE *da|ta;.Xext|
|00000660| 65 72 6e 20 63 68 61 72 | 20 64 61 74 61 66 69 6c |ern char| datafil|
|00000670| 65 6e 61 6d 65 5b 35 30 | 5d 3b 0a 58 65 78 74 65 |ename[50|];.Xexte|
|00000680| 72 6e 20 69 6e 74 20 65 | 63 68 6f 3b 0a 58 65 78 |rn int e|cho;.Xex|
|00000690| 74 65 72 6e 20 69 6e 74 | 20 66 6f 72 6d 61 74 5b |tern int| format[|
|000006a0| 6d 61 78 66 6f 72 6d 61 | 74 5d 3b 0a 58 65 78 74 |maxforma|t];.Xext|
|000006b0| 65 72 6e 20 4c 41 59 45 | 52 20 2a 6c 61 73 74 3b |ern LAYE|R *last;|
|000006c0| 0a 58 65 78 74 65 72 6e | 20 69 6e 74 20 6c 61 73 |.Xextern| int las|
|000006d0| 74 73 61 76 65 3b 0a 58 | 65 78 74 65 72 6e 20 73 |tsave;.X|extern s|
|000006e0| 68 6f 72 74 20 6e 6c 61 | 79 65 72 73 3b 0a 58 65 |hort nla|yers;.Xe|
|000006f0| 78 74 65 72 6e 20 63 68 | 61 72 20 6f 75 74 66 6f |xtern ch|ar outfo|
|00000700| 72 6d 61 74 3b 0a 58 65 | 78 74 65 72 6e 20 57 54 |rmat;.Xe|xtern WT|
|00000710| 54 59 50 45 20 71 6d 61 | 72 6b 3b 0a 58 65 78 74 |TYPE qma|rk;.Xext|
|00000720| 65 72 6e 20 69 6e 74 20 | 72 65 61 64 65 72 72 6f |ern int |readerro|
|00000730| 72 3b 0a 58 65 78 74 65 | 72 6e 20 69 6e 74 20 72 |r;.Xexte|rn int r|
|00000740| 65 61 64 69 6e 67 70 61 | 74 74 65 72 6e 3b 0a 58 |eadingpa|ttern;.X|
|00000750| 65 78 74 65 72 6e 20 4c | 41 59 45 52 20 2a 73 74 |extern L|AYER *st|
|00000760| 61 72 74 3b 0a 58 65 78 | 74 65 72 6e 20 57 54 54 |art;.Xex|tern WTT|
|00000770| 59 50 45 20 74 6f 6c 65 | 72 3b 0a 58 65 78 74 65 |YPE tole|r;.Xexte|
|00000780| 72 6e 20 69 6e 74 20 74 | 6f 74 61 6c 69 74 65 72 |rn int t|otaliter|
|00000790| 3b 0a 58 65 78 74 65 72 | 6e 20 63 68 61 72 20 77 |;.Xexter|n char w|
|000007a0| 74 66 6f 72 6d 61 74 3b | 0a 58 0a 58 23 69 66 64 |tformat;|.X.X#ifd|
|000007b0| 65 66 20 49 4e 54 45 47 | 45 52 0a 58 0a 58 73 68 |ef INTEG|ER.X.Xsh|
|000007c0| 6f 72 74 20 73 63 61 6c | 65 28 78 29 20 20 20 20 |ort scal|e(x) |
|000007d0| 20 2f 2a 20 72 65 74 75 | 72 6e 73 20 78 20 61 73 | /* retu|rns x as|
|000007e0| 20 61 20 73 63 61 6c 65 | 64 20 31 36 2d 62 69 74 | a scale|d 16-bit|
|000007f0| 20 76 61 6c 75 65 20 2a | 2f 0a 58 64 6f 75 62 6c | value *|/.Xdoubl|
|00000800| 65 20 78 3b 0a 58 7b 0a | 58 20 20 73 68 6f 72 74 |e x;.X{.|X short|
|00000810| 20 73 3b 0a 58 20 20 69 | 66 20 28 78 20 3e 20 33 | s;.X i|f (x > 3|
|00000820| 31 2e 39 39 39 20 7c 7c | 20 78 20 3c 20 2d 33 32 |1.999 ||| x < -32|
|00000830| 2e 30 29 0a 58 20 20 20 | 20 20 7b 0a 58 20 20 20 |.0).X | {.X |
|00000840| 20 20 20 20 70 72 69 6e | 74 66 28 22 6d 61 67 6e | prin|tf("magn|
|00000850| 69 74 75 64 65 20 6f 66 | 20 25 6c 66 20 69 73 20 |itude of| %lf is |
|00000860| 74 6f 6f 20 6c 61 72 67 | 65 20 66 6f 72 20 74 68 |too larg|e for th|
|00000870| 65 20 69 6e 74 65 67 65 | 72 22 2c 78 29 3b 0a 58 |e intege|r",x);.X|
|00000880| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 20 | p|rintf(" |
|00000890| 72 65 70 72 65 73 65 6e | 74 61 74 69 6f 6e 5c 6e |represen|tation\n|
|000008a0| 22 2c 78 29 3b 0a 58 20 | 20 20 20 20 20 20 72 65 |",x);.X | re|
|000008b0| 61 64 65 72 72 6f 72 20 | 3d 20 31 3b 0a 58 20 20 |aderror |= 1;.X |
|000008c0| 20 20 20 20 20 72 65 74 | 75 72 6e 28 30 29 3b 0a | ret|urn(0);.|
|000008d0| 58 20 20 20 20 20 7d 3b | 0a 58 20 20 69 66 20 28 |X };|.X if (|
|000008e0| 78 20 3e 20 30 2e 30 29 | 20 73 20 3d 20 78 20 2a |x > 0.0)| s = x *|
|000008f0| 20 31 30 32 34 20 2b 20 | 30 2e 35 3b 0a 58 20 20 | 1024 + |0.5;.X |
|00000900| 65 6c 73 65 20 73 20 3d | 20 78 20 2a 20 31 30 32 |else s =| x * 102|
|00000910| 34 20 2d 20 30 2e 35 3b | 0a 58 20 20 69 66 20 28 |4 - 0.5;|.X if (|
|00000920| 78 20 21 3d 20 30 2e 30 | 20 26 26 20 73 20 3d 3d |x != 0.0| && s ==|
|00000930| 20 30 29 0a 58 20 20 20 | 20 20 7b 0a 58 20 20 20 | 0).X | {.X |
|00000940| 20 20 20 20 70 72 69 6e | 74 66 28 22 77 61 72 6e | prin|tf("warn|
|00000950| 69 6e 67 3a 20 20 6d 61 | 67 6e 69 74 75 64 65 20 |ing: ma|gnitude |
|00000960| 6f 66 20 25 6c 66 20 69 | 73 20 74 6f 6f 20 73 6d |of %lf i|s too sm|
|00000970| 61 6c 6c 20 66 6f 72 22 | 2c 78 29 3b 0a 58 20 20 |all for"|,x);.X |
|00000980| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 20 74 68 | pri|ntf(" th|
|00000990| 65 20 69 6e 74 65 67 65 | 72 20 72 65 70 72 65 73 |e intege|r repres|
|000009a0| 65 6e 74 61 74 69 6f 6e | 5c 6e 22 29 3b 0a 58 20 |entation|\n");.X |
|000009b0| 20 20 20 20 20 20 72 65 | 74 75 72 6e 28 30 29 3b | re|turn(0);|
|000009c0| 0a 58 20 20 20 20 20 7d | 3b 0a 58 20 20 72 65 74 |.X }|;.X ret|
|000009d0| 75 72 6e 28 73 29 3b 0a | 58 7d 0a 58 0a 58 64 6f |urn(s);.|X}.X.Xdo|
|000009e0| 75 62 6c 65 20 75 6e 73 | 63 61 6c 65 28 78 29 20 |uble uns|cale(x) |
|000009f0| 20 2f 2a 20 72 65 74 75 | 72 6e 73 20 74 68 65 20 | /* retu|rns the |
|00000a00| 64 6f 75 62 6c 65 20 76 | 61 6c 75 65 20 6f 66 20 |double v|alue of |
|00000a10| 73 68 6f 72 74 20 78 20 | 2a 2f 0a 58 73 68 6f 72 |short x |*/.Xshor|
|00000a20| 74 20 78 3b 0a 58 7b 0a | 58 20 20 64 6f 75 62 6c |t x;.X{.|X doubl|
|00000a30| 65 20 74 65 6d 70 3b 0a | 58 20 20 74 65 6d 70 20 |e temp;.|X temp |
|00000a40| 3d 20 28 64 6f 75 62 6c | 65 29 20 78 20 2f 20 31 |= (doubl|e) x / 1|
|00000a50| 30 32 34 2e 30 3b 20 0a | 58 20 20 72 65 74 75 72 |024.0; .|X retur|
|00000a60| 6e 28 74 65 6d 70 29 3b | 0a 58 7d 0a 58 0a 58 64 |n(temp);|.X}.X.Xd|
|00000a70| 6f 75 62 6c 65 20 75 6e | 73 63 61 6c 65 69 6e 74 |ouble un|scaleint|
|00000a80| 28 78 29 20 20 2f 2a 20 | 72 65 74 75 72 6e 73 20 |(x) /* |returns |
|00000a90| 74 68 65 20 64 6f 75 62 | 6c 65 20 76 61 6c 75 65 |the doub|le value|
|00000aa0| 20 6f 66 20 69 6e 74 20 | 78 20 2a 2f 0a 58 69 6e | of int |x */.Xin|
|00000ab0| 74 20 78 3b 0a 58 7b 0a | 58 20 20 64 6f 75 62 6c |t x;.X{.|X doubl|
|00000ac0| 65 20 74 65 6d 70 3b 0a | 58 20 20 74 65 6d 70 20 |e temp;.|X temp |
|00000ad0| 3d 20 28 64 6f 75 62 6c | 65 29 20 78 20 2f 20 31 |= (doubl|e) x / 1|
|00000ae0| 30 32 34 2e 30 3b 20 0a | 58 20 20 72 65 74 75 72 |024.0; .|X retur|
|00000af0| 6e 28 74 65 6d 70 29 3b | 0a 58 7d 0a 58 0a 58 23 |n(temp);|.X}.X.X#|
|00000b00| 65 6e 64 69 66 0a 58 0a | 58 69 6e 74 20 72 65 61 |endif.X.|Xint rea|
|00000b10| 64 63 68 28 29 20 2f 2a | 20 72 65 74 75 72 6e 73 |dch() /*| returns|
|00000b20| 20 74 68 65 20 6e 65 78 | 74 20 63 68 61 72 61 63 | the nex|t charac|
|00000b30| 74 65 72 20 69 6e 20 74 | 68 65 20 69 6e 70 75 74 |ter in t|he input|
|00000b40| 20 62 75 66 66 65 72 20 | 2a 2f 0a 58 7b 20 0a 58 | buffer |*/.X{ .X|
|00000b50| 20 20 69 6e 74 20 69 2c | 20 63 68 32 3b 0a 58 20 | int i,| ch2;.X |
|00000b60| 20 69 66 20 28 62 75 66 | 66 65 72 70 74 72 20 3e | if (buf|ferptr >|
|00000b70| 20 62 75 66 66 65 72 65 | 6e 64 29 20 2f 2a 20 74 | buffere|nd) /* t|
|00000b80| 68 65 6e 20 72 65 61 64 | 20 6e 65 78 74 20 6c 69 |hen read| next li|
|00000b90| 6e 65 20 69 6e 74 6f 20 | 62 75 66 66 65 72 20 2a |ne into |buffer *|
|00000ba0| 2f 0a 58 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |/.X |{.X |
|00000bb0| 20 20 63 68 32 20 3d 20 | 67 65 74 63 28 64 61 74 | ch2 = |getc(dat|
|00000bc0| 61 29 3b 0a 58 20 20 20 | 20 20 20 20 69 66 20 28 |a);.X | if (|
|00000bd0| 63 68 32 20 3d 3d 20 45 | 4f 46 29 20 72 65 74 75 |ch2 == E|OF) retu|
|00000be0| 72 6e 28 63 68 32 29 3b | 0a 58 20 20 20 20 20 20 |rn(ch2);|.X |
|00000bf0| 20 69 20 3d 20 30 3b 0a | 58 20 20 20 20 20 20 20 | i = 0;.|X |
|00000c00| 77 68 69 6c 65 28 63 68 | 32 20 21 3d 20 27 5c 6e |while(ch|2 != '\n|
|00000c10| 27 20 26 26 20 69 20 3c | 20 62 75 66 66 73 69 7a |' && i <| buffsiz|
|00000c20| 65 29 0a 58 20 20 20 20 | 20 20 20 20 20 20 7b 0a |e).X | {.|
|00000c30| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 69 66 20 |X | if |
|00000c40| 28 63 68 32 20 3d 3d 20 | 30 31 35 29 20 63 68 32 |(ch2 == |015) ch2|
|00000c50| 20 3d 20 27 20 27 3b 20 | 2f 2a 20 66 69 6c 74 65 | = ' '; |/* filte|
|00000c60| 72 20 6f 75 74 20 63 61 | 72 72 69 61 67 65 20 72 |r out ca|rriage r|
|00000c70| 65 74 75 72 6e 73 20 2a | 2f 0a 58 20 20 20 20 20 |eturns *|/.X |
|00000c80| 20 20 20 20 20 20 20 62 | 75 66 66 65 72 5b 69 5d | b|uffer[i]|
|00000c90| 20 3d 20 63 68 32 3b 0a | 58 20 20 20 20 20 20 20 | = ch2;.|X |
|00000ca0| 20 20 20 20 20 69 20 3d | 20 69 20 2b 20 31 3b 0a | i =| i + 1;.|
|00000cb0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 63 68 32 |X | ch2|
|00000cc0| 20 3d 20 67 65 74 63 28 | 64 61 74 61 29 3b 0a 58 | = getc(|data);.X|
|00000cd0| 20 20 20 20 20 20 20 20 | 20 20 7d 3b 0a 58 20 20 | | };.X |
|00000ce0| 20 20 20 20 20 69 66 20 | 28 69 20 3d 3d 20 62 75 | if |(i == bu|
|00000cf0| 66 66 73 69 7a 65 29 0a | 58 20 20 20 20 20 20 20 |ffsize).|X |
|00000d00| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00000d10| 20 20 70 72 69 6e 74 66 | 28 22 6c 69 6e 65 20 74 | printf|("line t|
|00000d20| 6f 6f 20 6c 6f 6e 67 5c | 6e 22 29 3b 0a 58 20 20 |oo long\|n");.X |
|00000d30| 20 20 20 20 20 20 20 20 | 20 20 65 78 69 74 28 34 | | exit(4|
|00000d40| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 7d 3b |);.X | };|
|00000d50| 0a 58 20 20 20 20 20 20 | 20 62 75 66 66 65 72 5b |.X | buffer[|
|00000d60| 69 5d 20 3d 20 27 5c 6e | 27 3b 0a 58 20 20 20 20 |i] = '\n|';.X |
|00000d70| 20 20 20 62 75 66 66 65 | 72 65 6e 64 20 3d 20 69 | buffe|rend = i|
|00000d80| 3b 0a 58 20 20 20 20 20 | 20 20 62 75 66 66 65 72 |;.X | buffer|
|00000d90| 70 74 72 20 3d 20 30 3b | 0a 58 20 20 20 20 20 20 |ptr = 0;|.X |
|00000da0| 20 69 66 20 28 65 63 68 | 6f 20 3d 3d 20 31 29 0a | if (ech|o == 1).|
|00000db0| 58 20 20 20 20 20 20 20 | 20 20 20 66 6f 72 28 69 |X | for(i|
|00000dc0| 20 3d 20 30 3b 20 69 20 | 3c 3d 20 62 75 66 66 65 | = 0; i |<= buffe|
|00000dd0| 72 65 6e 64 3b 20 69 2b | 2b 29 20 70 75 74 63 68 |rend; i+|+) putch|
|00000de0| 61 72 28 62 75 66 66 65 | 72 5b 69 5d 29 3b 0a 58 |ar(buffe|r[i]);.X|
|00000df0| 20 20 20 20 20 20 7d 0a | 58 20 20 63 68 32 20 3d | }.|X ch2 =|
|00000e00| 20 62 75 66 66 65 72 5b | 62 75 66 66 65 72 70 74 | buffer[|bufferpt|
|00000e10| 72 5d 3b 0a 58 20 20 62 | 75 66 66 65 72 70 74 72 |r];.X b|ufferptr|
|00000e20| 20 3d 20 62 75 66 66 65 | 72 70 74 72 20 2b 20 31 | = buffe|rptr + 1|
|00000e30| 3b 0a 58 20 20 72 65 74 | 75 72 6e 28 63 68 32 29 |;.X ret|urn(ch2)|
|00000e40| 3b 0a 58 7d 0a 58 0a 58 | 76 6f 69 64 20 74 65 78 |;.X}.X.X|void tex|
|00000e50| 74 65 72 72 6f 72 28 29 | 20 2f 2a 20 68 61 6e 64 |terror()| /* hand|
|00000e60| 6c 65 73 20 65 72 72 6f | 72 73 20 69 6e 20 74 65 |les erro|rs in te|
|00000e70| 78 74 20 2a 2f 0a 58 7b | 0a 58 20 70 72 69 6e 74 |xt */.X{|.X print|
|00000e80| 66 28 22 75 6e 65 78 70 | 65 63 74 65 64 20 74 65 |f("unexp|ected te|
|00000e90| 78 74 3a 20 20 22 29 3b | 0a 58 20 62 75 66 66 65 |xt: ");|.X buffe|
|00000ea0| 72 70 74 72 20 3d 20 62 | 75 66 66 65 72 70 74 72 |rptr = b|ufferptr|
|00000eb0| 20 2d 20 31 3b 0a 58 20 | 63 68 20 3d 20 72 65 61 | - 1;.X |ch = rea|
|00000ec0| 64 63 68 28 29 3b 0a 58 | 20 77 68 69 6c 65 20 28 |dch();.X| while (|
|00000ed0| 63 68 20 21 3d 20 27 5c | 6e 27 29 0a 58 20 20 20 |ch != '\|n').X |
|00000ee0| 20 7b 0a 58 20 20 20 20 | 20 20 70 75 74 63 68 61 | {.X | putcha|
|00000ef0| 72 28 63 68 29 3b 0a 58 | 20 20 20 20 20 20 63 68 |r(ch);.X| ch|
|00000f00| 20 3d 20 72 65 61 64 63 | 68 28 29 3b 0a 58 20 20 | = readc|h();.X |
|00000f10| 20 20 7d 3b 0a 58 20 70 | 75 74 63 68 61 72 28 27 | };.X p|utchar('|
|00000f20| 5c 6e 27 29 3b 0a 58 20 | 62 75 66 66 65 72 70 74 |\n');.X |bufferpt|
|00000f30| 72 20 3d 20 62 75 66 66 | 65 72 70 74 72 20 2d 20 |r = buff|erptr - |
|00000f40| 31 3b 0a 58 7d 0a 58 0a | 58 69 6e 74 20 73 63 61 |1;.X}.X.|Xint sca|
|00000f50| 6e 66 6f 72 64 69 67 69 | 74 28 29 20 20 20 20 2f |nfordigi|t() /|
|00000f60| 2a 20 75 73 65 64 20 74 | 6f 20 73 63 61 6e 20 66 |* used t|o scan f|
|00000f70| 6f 72 20 74 68 65 20 6c | 65 61 64 69 6e 67 20 2a |or the l|eading *|
|00000f80| 2f 0a 58 7b 20 20 20 20 | 20 20 20 20 20 20 20 20 |/.X{ | |
|00000f90| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 64 69 67 69 | | /* digi|
|00000fa0| 74 20 6f 66 20 61 20 6e | 75 6d 62 65 72 20 61 6e |t of a n|umber an|
|00000fb0| 64 20 74 72 61 70 20 6d | 69 73 74 61 6b 65 73 20 |d trap m|istakes |
|00000fc0| 2a 2f 0a 58 20 69 6e 74 | 20 73 69 67 6e 3b 0a 58 |*/.X int| sign;.X|
|00000fd0| 0a 58 20 73 69 67 6e 20 | 3d 20 31 3b 0a 58 72 65 |.X sign |= 1;.Xre|
|00000fe0| 73 74 61 72 74 3a 0a 58 | 20 63 68 20 3d 20 72 65 |start:.X| ch = re|
|00000ff0| 61 64 63 68 28 29 3b 0a | 58 20 77 68 69 6c 65 20 |adch();.|X while |
|00001000| 28 63 68 20 3d 3d 20 27 | 20 27 20 7c 7c 20 63 68 |(ch == '| ' || ch|
|00001010| 20 3d 3d 20 27 5c 6e 27 | 29 20 63 68 20 3d 20 72 | == '\n'|) ch = r|
|00001020| 65 61 64 63 68 28 29 3b | 0a 58 20 69 66 20 28 63 |eadch();|.X if (c|
|00001030| 68 20 3e 3d 20 27 30 27 | 20 26 26 20 63 68 20 3c |h >= '0'| && ch <|
|00001040| 3d 20 27 39 27 29 0a 58 | 20 20 20 20 7b 0a 58 20 |= '9').X| {.X |
|00001050| 20 20 20 20 20 62 75 66 | 66 65 72 70 74 72 20 3d | buf|ferptr =|
|00001060| 20 62 75 66 66 65 72 70 | 74 72 20 2d 20 31 3b 20 | bufferp|tr - 1; |
|00001070| 2f 2a 20 75 6e 67 65 74 | 20 74 68 65 20 63 68 61 |/* unget| the cha|
|00001080| 72 61 63 74 65 72 20 2a | 2f 0a 58 20 20 20 20 20 |racter *|/.X |
|00001090| 20 72 65 74 75 72 6e 28 | 73 69 67 6e 29 3b 0a 58 | return(|sign);.X|
|000010a0| 20 20 20 20 7d 3b 0a 58 | 20 69 66 20 28 63 68 20 | };.X| if (ch |
|000010b0| 3e 3d 20 27 68 27 20 26 | 26 20 63 68 20 3c 3d 20 |>= 'h' &|& ch <= |
|000010c0| 27 6b 27 29 0a 58 20 20 | 20 20 7b 0a 58 20 20 20 |'k').X | {.X |
|000010d0| 20 20 20 62 75 66 66 65 | 72 70 74 72 20 3d 20 62 | buffe|rptr = b|
|000010e0| 75 66 66 65 72 70 74 72 | 20 2d 20 31 3b 20 2f 2a |ufferptr| - 1; /*|
|000010f0| 20 75 6e 67 65 74 20 74 | 68 65 20 63 68 61 72 61 | unget t|he chara|
|00001100| 63 74 65 72 20 2a 2f 0a | 58 20 20 20 20 20 20 72 |cter */.|X r|
|00001110| 65 74 75 72 6e 28 30 29 | 3b 0a 58 20 20 20 20 7d |eturn(0)|;.X }|
|00001120| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 73 77 69 |;.X | swi|
|00001130| 74 63 68 20 28 63 68 29 | 20 7b 0a 58 63 61 73 65 |tch (ch)| {.Xcase|
|00001140| 20 45 4f 46 3a 20 70 72 | 69 6e 74 66 28 22 75 6e | EOF: pr|intf("un|
|00001150| 65 78 70 65 63 74 65 64 | 20 45 4f 46 5c 6e 22 29 |expected| EOF\n")|
|00001160| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 65 78 69 |;.X | exi|
|00001170| 74 28 32 29 3b 0a 58 63 | 61 73 65 20 27 2a 27 3a |t(2);.Xc|ase '*':|
|00001180| 20 77 68 69 6c 65 20 28 | 63 68 20 21 3d 20 27 5c | while (|ch != '\|
|00001190| 6e 27 29 20 63 68 20 3d | 20 72 65 61 64 63 68 28 |n') ch =| readch(|
|000011a0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 67 6f |);.X | go|
|000011b0| 74 6f 20 72 65 73 74 61 | 72 74 3b 0a 58 63 61 73 |to resta|rt;.Xcas|
|000011c0| 65 20 27 2d 27 3a 20 73 | 69 67 6e 20 3d 20 2d 73 |e '-': s|ign = -s|
|000011d0| 69 67 6e 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ign;.X | |
|000011e0| 67 6f 74 6f 20 72 65 73 | 74 61 72 74 3b 0a 58 63 |goto res|tart;.Xc|
|000011f0| 61 73 65 20 27 3f 27 3a | 20 62 75 66 66 65 72 70 |ase '?':| bufferp|
|00001200| 74 72 20 3d 20 62 75 66 | 66 65 72 70 74 72 20 2d |tr = buf|ferptr -|
|00001210| 20 31 3b 20 2f 2a 20 75 | 6e 67 65 74 20 74 68 65 | 1; /* u|nget the|
|00001220| 20 63 68 61 72 61 63 74 | 65 72 20 2a 2f 0a 58 20 | charact|er */.X |
|00001230| 20 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 28 | | return(|
|00001240| 30 29 3b 0a 58 64 65 66 | 61 75 6c 74 3a 20 20 72 |0);.Xdef|ault: r|
|00001250| 65 61 64 65 72 72 6f 72 | 20 3d 20 31 3b 0a 58 20 |eaderror| = 1;.X |
|00001260| 20 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 28 | | return(|
|00001270| 30 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 7d |0);.X | }|
|00001280| 3b 20 2f 2a 20 65 6e 64 | 20 73 77 69 74 63 68 20 |; /* end| switch |
|00001290| 2a 2f 0a 58 7d 3b 0a 58 | 0a 58 69 6e 74 20 72 65 |*/.X};.X|.Xint re|
|000012a0| 61 64 69 6e 74 28 6d 69 | 6e 2c 6d 61 78 2c 63 6f |adint(mi|n,max,co|
|000012b0| 6d 6d 61 6e 64 29 0a 58 | 69 6e 74 20 6d 69 6e 2c |mmand).X|int min,|
|000012c0| 20 6d 61 78 3b 20 20 20 | 2f 2a 20 74 68 65 20 6d | max; |/* the m|
|000012d0| 69 6e 69 6d 75 6d 20 61 | 6e 64 20 6d 61 78 69 6d |inimum a|nd maxim|
|000012e0| 75 6d 20 61 6c 6c 6f 77 | 65 64 20 76 61 6c 75 65 |um allow|ed value|
|000012f0| 73 20 2a 2f 0a 58 63 68 | 61 72 20 63 6f 6d 6d 61 |s */.Xch|ar comma|
|00001300| 6e 64 3b 0a 58 7b 0a 58 | 20 20 69 6e 74 20 73 69 |nd;.X{.X| int si|
|00001310| 67 6e 2c 20 6e 75 6d 62 | 65 72 3b 0a 58 20 20 72 |gn, numb|er;.X r|
|00001320| 65 61 64 65 72 72 6f 72 | 20 3d 20 30 3b 0a 58 20 |eaderror| = 0;.X |
|00001330| 20 73 69 67 6e 20 3d 20 | 73 63 61 6e 66 6f 72 64 | sign = |scanford|
|00001340| 69 67 69 74 28 29 3b 0a | 58 20 20 69 66 20 28 72 |igit();.|X if (r|
|00001350| 65 61 64 65 72 72 6f 72 | 20 3d 3d 20 31 20 7c 7c |eaderror| == 1 |||
|00001360| 20 73 69 67 6e 20 3d 3d | 20 30 29 0a 58 20 20 20 | sign ==| 0).X |
|00001370| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 72 65 61 64 | {.X | read|
|00001380| 65 72 72 6f 72 20 3d 20 | 31 3b 0a 58 20 20 20 20 |error = |1;.X |
|00001390| 20 20 20 74 65 78 74 65 | 72 72 6f 72 28 29 3b 0a | texte|rror();.|
|000013a0| 58 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 28 30 |X |return(0|
|000013b0| 29 3b 0a 58 20 20 20 20 | 20 7d 3b 0a 58 20 20 6e |);.X | };.X n|
|000013c0| 75 6d 62 65 72 20 3d 20 | 30 3b 0a 58 20 20 63 68 |umber = |0;.X ch|
|000013d0| 20 3d 20 72 65 61 64 63 | 68 28 29 3b 0a 58 20 20 | = readc|h();.X |
|000013e0| 77 68 69 6c 65 20 28 63 | 68 20 3d 3d 20 27 20 27 |while (c|h == ' '|
|000013f0| 29 20 63 68 20 3d 20 72 | 65 61 64 63 68 28 29 3b |) ch = r|eadch();|
|00001400| 0a 58 20 20 77 68 69 6c | 65 20 28 63 68 20 3e 3d |.X whil|e (ch >=|
|00001410| 20 27 30 27 20 26 26 20 | 63 68 20 3c 3d 20 27 39 | '0' && |ch <= '9|
|00001420| 27 29 0a 58 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |').X | {.X |
|00001430| 20 20 20 6e 75 6d 62 65 | 72 20 3d 20 6e 75 6d 62 | numbe|r = numb|
|00001440| 65 72 20 2a 20 31 30 20 | 2b 20 28 63 68 20 2d 20 |er * 10 |+ (ch - |
|00001450| 27 30 27 29 3b 0a 58 20 | 20 20 20 20 20 20 63 68 |'0');.X | ch|
|00001460| 20 3d 20 72 65 61 64 63 | 68 28 29 3b 0a 58 20 20 | = readc|h();.X |
|00001470| 20 20 20 7d 3b 0a 58 20 | 20 62 75 66 66 65 72 70 | };.X | bufferp|
|00001480| 74 72 20 3d 20 62 75 66 | 66 65 72 70 74 72 20 2d |tr = buf|ferptr -|
|00001490| 20 31 3b 20 2f 2a 20 75 | 6e 67 65 74 20 74 68 65 | 1; /* u|nget the|
|000014a0| 20 63 68 61 72 61 63 74 | 65 72 20 2a 2f 0a 58 20 | charact|er */.X |
|000014b0| 20 6e 75 6d 62 65 72 20 | 3d 20 73 69 67 6e 20 2a | number |= sign *|
|000014c0| 20 6e 75 6d 62 65 72 3b | 0a 58 20 20 69 66 20 28 | number;|.X if (|
|000014d0| 6e 75 6d 62 65 72 20 3c | 20 6d 69 6e 20 7c 7c 20 |number <| min || |
|000014e0| 6e 75 6d 62 65 72 20 3e | 20 6d 61 78 29 0a 58 20 |number >| max).X |
|000014f0| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 70 72 | {.X | pr|
|00001500| 69 6e 74 66 28 22 65 72 | 72 6f 6e 65 6f 75 73 20 |intf("er|roneous |
|00001510| 76 61 6c 75 65 3a 20 25 | 64 22 2c 6e 75 6d 62 65 |value: %|d",numbe|
|00001520| 72 29 3b 0a 58 20 20 20 | 20 20 20 20 69 66 20 28 |r);.X | if (|
|00001530| 64 61 74 61 20 3d 3d 20 | 73 74 64 69 6e 29 20 70 |data == |stdin) p|
|00001540| 75 74 63 68 61 72 28 27 | 5c 6e 27 29 3b 0a 58 20 |utchar('|\n');.X |
|00001550| 20 20 20 20 20 20 65 6c | 73 65 20 70 72 69 6e 74 | el|se print|
|00001560| 66 28 22 20 69 6e 20 25 | 63 20 63 6f 6d 6d 61 6e |f(" in %|c comman|
|00001570| 64 5c 6e 22 2c 63 6f 6d | 6d 61 6e 64 29 3b 0a 58 |d\n",com|mand);.X|
|00001580| 20 20 20 20 20 20 20 72 | 65 61 64 65 72 72 6f 72 | r|eaderror|
|00001590| 20 3d 20 31 3b 0a 58 20 | 20 20 20 20 7d 3b 0a 58 | = 1;.X | };.X|
|000015a0| 20 20 72 65 74 75 72 6e | 28 6e 75 6d 62 65 72 29 | return|(number)|
|000015b0| 3b 0a 58 7d 0a 58 0a 58 | 64 6f 75 62 6c 65 20 72 |;.X}.X.X|double r|
|000015c0| 65 61 64 72 65 61 6c 28 | 6f 70 2c 6d 69 6e 2c 63 |eadreal(|op,min,c|
|000015d0| 6f 6d 6d 61 6e 64 29 0a | 58 69 6e 74 20 6f 70 3b |ommand).|Xint op;|
|000015e0| 0a 58 64 6f 75 62 6c 65 | 20 6d 69 6e 3b 0a 58 69 |.Xdouble| min;.Xi|
|000015f0| 6e 74 20 63 6f 6d 6d 61 | 6e 64 3b 0a 58 7b 0a 58 |nt comma|nd;.X{.X|
|00001600| 20 20 64 6f 75 62 6c 65 | 20 6e 75 6d 62 65 72 3b | double| number;|
|00001610| 0a 58 20 20 64 6f 75 62 | 6c 65 20 66 72 61 63 74 |.X doub|le fract|
|00001620| 70 61 72 74 2c 20 64 69 | 76 69 73 6f 72 2c 20 69 |part, di|visor, i|
|00001630| 6e 74 70 61 72 74 2c 20 | 73 69 67 6e 3b 0a 58 20 |ntpart, |sign;.X |
|00001640| 20 72 65 61 64 65 72 72 | 6f 72 20 3d 20 30 3b 0a | readerr|or = 0;.|
|00001650| 58 0a 58 20 20 73 69 67 | 6e 20 3d 20 28 64 6f 75 |X.X sig|n = (dou|
|00001660| 62 6c 65 29 20 73 63 61 | 6e 66 6f 72 64 69 67 69 |ble) sca|nfordigi|
|00001670| 74 28 29 3b 0a 58 20 20 | 69 66 20 28 72 65 61 64 |t();.X |if (read|
|00001680| 65 72 72 6f 72 20 3d 3d | 20 31 20 7c 7c 20 28 73 |error ==| 1 || (s|
|00001690| 69 67 6e 20 3d 3d 20 30 | 20 26 26 20 21 72 65 61 |ign == 0| && !rea|
|000016a0| 64 69 6e 67 70 61 74 74 | 65 72 6e 29 29 0a 58 20 |dingpatt|ern)).X |
|000016b0| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 74 65 | {.X | te|
|000016c0| 78 74 65 72 72 6f 72 28 | 29 3b 0a 58 20 20 20 20 |xterror(|);.X |
|000016d0| 20 20 20 72 65 74 75 72 | 6e 28 30 29 3b 0a 58 20 | retur|n(0);.X |
|000016e0| 20 20 20 20 7d 3b 0a 58 | 20 20 63 68 20 3d 20 72 | };.X| ch = r|
|000016f0| 65 61 64 63 68 28 29 3b | 0a 58 20 20 69 66 20 28 |eadch();|.X if (|
|00001700| 63 68 20 3d 3d 20 27 68 | 27 20 26 26 20 72 65 61 |ch == 'h|' && rea|
|00001710| 64 69 6e 67 70 61 74 74 | 65 72 6e 29 0a 58 20 20 |dingpatt|ern).X |
|00001720| 20 20 20 72 65 74 75 72 | 6e 28 75 6e 73 63 61 6c | retur|n(unscal|
|00001730| 65 28 48 43 4f 44 45 29 | 29 3b 0a 58 20 20 65 6c |e(HCODE)|);.X el|
|00001740| 73 65 20 69 66 20 28 63 | 68 20 3d 3d 20 27 69 27 |se if (c|h == 'i'|
|00001750| 20 26 26 20 72 65 61 64 | 69 6e 67 70 61 74 74 65 | && read|ingpatte|
|00001760| 72 6e 20 26 26 20 6e 6c | 61 79 65 72 73 20 3e 3d |rn && nl|ayers >=|
|00001770| 20 33 29 0a 58 20 20 20 | 20 20 20 20 20 20 20 72 | 3).X | r|
|00001780| 65 74 75 72 6e 28 75 6e | 73 63 61 6c 65 28 49 43 |eturn(un|scale(IC|
|00001790| 4f 44 45 29 29 3b 0a 58 | 20 20 65 6c 73 65 20 69 |ODE));.X| else i|
|000017a0| 66 20 28 63 68 20 3d 3d | 20 27 6a 27 20 26 26 20 |f (ch ==| 'j' && |
|000017b0| 72 65 61 64 69 6e 67 70 | 61 74 74 65 72 6e 20 26 |readingp|attern &|
|000017c0| 26 20 6e 6c 61 79 65 72 | 73 20 3e 3d 20 34 29 0a |& nlayer|s >= 4).|
|000017d0| 58 20 20 20 20 20 20 20 | 20 20 20 72 65 74 75 72 |X | retur|
|000017e0| 6e 28 75 6e 73 63 61 6c | 65 28 4a 43 4f 44 45 29 |n(unscal|e(JCODE)|
|000017f0| 29 3b 0a 58 20 20 65 6c | 73 65 20 69 66 20 28 63 |);.X el|se if (c|
|00001800| 68 20 3d 3d 20 27 6b 27 | 20 26 26 20 72 65 61 64 |h == 'k'| && read|
|00001810| 69 6e 67 70 61 74 74 65 | 72 6e 20 26 26 20 6e 6c |ingpatte|rn && nl|
|00001820| 61 79 65 72 73 20 3e 3d | 20 35 29 0a 58 20 20 20 |ayers >=| 5).X |
|00001830| 20 20 20 20 20 20 20 72 | 65 74 75 72 6e 28 75 6e | r|eturn(un|
|00001840| 73 63 61 6c 65 28 4b 43 | 4f 44 45 29 29 3b 0a 58 |scale(KC|ODE));.X|
|00001850| 20 20 65 6c 73 65 20 69 | 66 20 28 63 68 20 3d 3d | else i|f (ch ==|
|00001860| 20 27 3f 27 20 26 26 20 | 72 65 61 64 69 6e 67 70 | '?' && |readingp|
|00001870| 61 74 74 65 72 6e 29 0a | 58 20 20 20 20 20 20 20 |attern).|X |
|00001880| 20 20 20 72 65 74 75 72 | 6e 28 75 6e 73 63 61 6c | retur|n(unscal|
|00001890| 65 28 71 6d 61 72 6b 29 | 29 3b 0a 58 20 20 69 6e |e(qmark)|);.X in|
|000018a0| 74 70 61 72 74 20 3d 20 | 30 2e 30 3b 0a 58 20 20 |tpart = |0.0;.X |
|000018b0| 77 68 69 6c 65 20 28 63 | 68 20 3e 3d 20 27 30 27 |while (c|h >= '0'|
|000018c0| 20 26 26 20 63 68 20 3c | 3d 20 27 39 27 29 0a 58 | && ch <|= '9').X|
|000018d0| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 20 69 | {.X| i|
|000018e0| 6e 74 70 61 72 74 20 3d | 20 31 30 2e 30 20 2a 20 |ntpart =| 10.0 * |
|000018f0| 69 6e 74 70 61 72 74 20 | 2b 20 28 63 68 20 2d 20 |intpart |+ (ch - |
|00001900| 27 30 27 29 3b 0a 58 20 | 20 20 20 20 20 20 63 68 |'0');.X | ch|
|00001910| 20 3d 20 72 65 61 64 63 | 68 28 29 3b 0a 58 20 20 | = readc|h();.X |
|00001920| 20 20 20 7d 3b 0a 58 20 | 20 66 72 61 63 74 70 61 | };.X | fractpa|
|00001930| 72 74 20 3d 20 30 2e 30 | 3b 0a 58 20 20 64 69 76 |rt = 0.0|;.X div|
|00001940| 69 73 6f 72 20 3d 20 31 | 2e 30 3b 0a 58 20 20 69 |isor = 1|.0;.X i|
|00001950| 66 20 28 63 68 20 3d 3d | 20 27 2e 27 29 0a 58 20 |f (ch ==| '.').X |
|00001960| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 63 68 | {.X | ch|
|00001970| 20 3d 20 72 65 61 64 63 | 68 28 29 3b 0a 58 20 20 | = readc|h();.X |
|00001980| 20 20 20 20 20 77 68 69 | 6c 65 20 28 63 68 20 3e | whi|le (ch >|
|00001990| 3d 20 27 30 27 20 26 26 | 20 63 68 20 3c 3d 20 27 |= '0' &&| ch <= '|
|000019a0| 39 27 29 0a 58 20 20 20 | 20 20 20 20 20 20 20 7b |9').X | {|
|000019b0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 66 72 |.X | fr|
|000019c0| 61 63 74 70 61 72 74 20 | 3d 20 66 72 61 63 74 70 |actpart |= fractp|
|000019d0| 61 72 74 20 2a 20 31 30 | 2e 30 20 2b 20 28 63 68 |art * 10|.0 + (ch|
|000019e0| 20 2d 20 27 30 27 29 3b | 0a 58 20 20 20 20 20 20 | - '0');|.X |
|000019f0| 20 20 20 20 20 20 64 69 | 76 69 73 6f 72 20 3d 20 | di|visor = |
|00001a00| 64 69 76 69 73 6f 72 20 | 2a 20 31 30 2e 30 3b 0a |divisor |* 10.0;.|
|00001a10| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 63 68 20 |X | ch |
|00001a20| 3d 20 72 65 61 64 63 68 | 28 29 3b 0a 58 20 20 20 |= readch|();.X |
|00001a30| 20 20 20 20 20 20 20 7d | 3b 0a 58 20 20 20 20 20 | }|;.X |
|00001a40| 7d 3b 0a 58 20 20 62 75 | 66 66 65 72 70 74 72 20 |};.X bu|fferptr |
|00001a50| 3d 20 62 75 66 66 65 72 | 70 74 72 20 2d 20 31 3b |= buffer|ptr - 1;|
|00001a60| 20 2f 2a 20 75 6e 67 65 | 74 20 74 68 65 20 63 68 | /* unge|t the ch|
|00001a70| 61 72 61 63 74 65 72 20 | 2a 2f 0a 58 20 20 6e 75 |aracter |*/.X nu|
|00001a80| 6d 62 65 72 20 3d 20 73 | 69 67 6e 20 2a 20 28 28 |mber = s|ign * ((|
|00001a90| 28 64 6f 75 62 6c 65 29 | 20 69 6e 74 70 61 72 74 |(double)| intpart|
|00001aa0| 29 20 2b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) +.X | |
|00001ab0| 20 20 20 20 20 20 20 28 | 28 64 6f 75 62 6c 65 29 | (|(double)|
|00001ac0| 20 66 72 61 63 74 70 61 | 72 74 29 20 2f 20 28 28 | fractpa|rt) / ((|
|00001ad0| 64 6f 75 62 6c 65 29 20 | 64 69 76 69 73 6f 72 29 |double) |divisor)|
|00001ae0| 29 3b 0a 58 20 20 69 66 | 20 28 6f 70 20 3d 3d 20 |);.X if| (op == |
|00001af0| 47 54 20 26 26 20 6e 75 | 6d 62 65 72 20 3e 20 6d |GT && nu|mber > m|
|00001b00| 69 6e 29 20 72 65 74 75 | 72 6e 28 6e 75 6d 62 65 |in) retu|rn(numbe|
|00001b10| 72 29 3b 0a 58 20 20 65 | 6c 73 65 20 69 66 20 28 |r);.X e|lse if (|
|00001b20| 6f 70 20 3d 3d 20 47 45 | 20 26 26 20 6e 75 6d 62 |op == GE| && numb|
|00001b30| 65 72 20 3e 3d 20 6d 69 | 6e 29 20 72 65 74 75 72 |er >= mi|n) retur|
|00001b40| 6e 28 6e 75 6d 62 65 72 | 29 3b 0a 58 20 20 65 6c |n(number|);.X el|
|00001b50| 73 65 0a 58 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |se.X | {.X |
|00001b60| 20 20 20 70 72 69 6e 74 | 66 28 22 65 72 72 6f 6e | print|f("erron|
|00001b70| 65 6f 75 73 20 76 61 6c | 75 65 3a 20 25 6c 66 22 |eous val|ue: %lf"|
|00001b80| 2c 6e 75 6d 62 65 72 29 | 3b 0a 58 20 20 20 20 20 |,number)|;.X |
|00001b90| 20 20 69 66 20 28 64 61 | 74 61 20 3d 3d 20 73 74 | if (da|ta == st|
|00001ba0| 64 69 6e 29 20 70 75 74 | 63 68 61 72 28 27 5c 6e |din) put|char('\n|
|00001bb0| 27 29 3b 0a 58 20 20 20 | 20 20 20 20 65 6c 73 65 |');.X | else|
|00001bc0| 20 70 72 69 6e 74 66 28 | 22 20 69 6e 20 25 63 20 | printf(|" in %c |
|00001bd0| 63 6f 6d 6d 61 6e 64 5c | 6e 22 2c 63 6f 6d 6d 61 |command\|n",comma|
|00001be0| 6e 64 29 3b 0a 58 20 20 | 20 20 20 20 20 72 65 61 |nd);.X | rea|
|00001bf0| 64 65 72 72 6f 72 20 3d | 20 31 3b 0a 58 20 20 20 |derror =| 1;.X |
|00001c00| 20 20 20 20 72 65 74 75 | 72 6e 28 30 2e 30 29 3b | retu|rn(0.0);|
|00001c10| 0a 58 20 20 20 20 20 7d | 3b 0a 58 7d 0a 58 0a 58 |.X }|;.X}.X.X|
|00001c20| 57 54 54 59 50 45 20 72 | 64 72 28 6f 70 2c 6d 69 |WTTYPE r|dr(op,mi|
|00001c30| 6e 2c 63 6f 6d 6d 61 6e | 64 29 20 2f 2a 20 72 65 |n,comman|d) /* re|
|00001c40| 61 64 73 20 64 6f 75 62 | 6c 65 20 72 65 61 6c 20 |ads doub|le real |
|00001c50| 6e 75 6d 62 65 72 73 20 | 61 6e 64 20 63 6f 6e 76 |numbers |and conv|
|00001c60| 65 72 74 73 20 2a 2f 0a | 58 69 6e 74 20 6f 70 3b |erts */.|Xint op;|
|00001c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001c80| 20 20 20 20 2f 2a 20 74 | 68 65 6d 20 74 6f 20 31 | /* t|hem to 1|
|00001c90| 36 2d 62 69 74 20 69 6e | 74 65 67 65 72 73 20 69 |6-bit in|tegers i|
|00001ca0| 66 20 6e 65 63 65 73 73 | 61 72 79 20 2a 2f 0a 58 |f necess|ary */.X|
|00001cb0| 64 6f 75 62 6c 65 20 6d | 69 6e 3b 0a 58 69 6e 74 |double m|in;.Xint|
|00001cc0| 20 63 6f 6d 6d 61 6e 64 | 3b 0a 58 7b 0a 58 20 20 | command|;.X{.X |
|00001cd0| 64 6f 75 62 6c 65 20 78 | 3b 0a 58 20 20 57 54 54 |double x|;.X WTT|
|00001ce0| 59 50 45 20 69 78 3b 0a | 58 20 0a 58 20 20 78 20 |YPE ix;.|X .X x |
|00001cf0| 3d 20 72 65 61 64 72 65 | 61 6c 28 6f 70 2c 6d 69 |= readre|al(op,mi|
|00001d00| 6e 2c 63 6f 6d 6d 61 6e | 64 29 3b 0a 58 20 20 69 |n,comman|d);.X i|
|00001d10| 66 20 28 72 65 61 64 65 | 72 72 6f 72 20 3d 3d 20 |f (reade|rror == |
|00001d20| 31 29 20 72 65 74 75 72 | 6e 28 30 29 3b 0a 58 20 |1) retur|n(0);.X |
|00001d30| 20 69 78 20 3d 20 73 63 | 61 6c 65 28 78 29 3b 0a | ix = sc|ale(x);.|
|00001d40| 58 20 20 69 66 20 28 72 | 65 61 64 65 72 72 6f 72 |X if (r|eaderror|
|00001d50| 20 3d 3d 20 31 29 20 72 | 65 74 75 72 6e 28 30 29 | == 1) r|eturn(0)|
|00001d60| 3b 0a 58 20 20 72 65 74 | 75 72 6e 28 69 78 29 3b |;.X ret|urn(ix);|
|00001d70| 0a 58 7d 0a 58 0a 58 64 | 6f 75 62 6c 65 20 72 65 |.X}.X.Xd|ouble re|
|00001d80| 61 64 63 68 61 72 28 29 | 20 20 20 2f 2a 20 72 65 |adchar()| /* re|
|00001d90| 61 64 73 20 64 61 74 61 | 20 69 6e 20 63 6f 6d 70 |ads data| in comp|
|00001da0| 72 65 73 73 65 64 20 66 | 6f 72 6d 61 74 20 2a 2f |ressed f|ormat */|
|00001db0| 0a 58 7b 0a 58 20 20 72 | 65 61 64 65 72 72 6f 72 |.X{.X r|eaderror|
|00001dc0| 20 3d 20 30 3b 0a 58 20 | 20 63 68 20 3d 20 72 65 | = 0;.X | ch = re|
|00001dd0| 61 64 63 68 28 29 3b 0a | 58 20 20 64 6f 20 7b 0a |adch();.|X do {.|
|00001de0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 73 77 |X | sw|
|00001df0| 69 74 63 68 20 28 63 68 | 29 20 7b 0a 58 20 20 63 |itch (ch|) {.X c|
|00001e00| 61 73 65 20 27 5c 6e 27 | 3a 0a 58 20 20 63 61 73 |ase '\n'|:.X cas|
|00001e10| 65 20 27 20 27 3a 20 63 | 68 20 3d 20 72 65 61 64 |e ' ': c|h = read|
|00001e20| 63 68 28 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |ch();.X | |
|00001e30| 20 20 20 62 72 65 61 6b | 3b 0a 58 20 20 63 61 73 | break|;.X cas|
|00001e40| 65 20 27 31 27 3a 20 72 | 65 74 75 72 6e 28 31 2e |e '1': r|eturn(1.|
|00001e50| 30 29 3b 0a 58 20 20 63 | 61 73 65 20 27 30 27 3a |0);.X c|ase '0':|
|00001e60| 20 72 65 74 75 72 6e 28 | 30 2e 30 29 3b 0a 58 20 | return(|0.0);.X |
|00001e70| 20 63 61 73 65 20 27 3f | 27 3a 20 72 65 74 75 72 | case '?|': retur|
|00001e80| 6e 28 75 6e 73 63 61 6c | 65 28 71 6d 61 72 6b 29 |n(unscal|e(qmark)|
|00001e90| 29 3b 0a 58 20 20 63 61 | 73 65 20 27 2a 27 3a 20 |);.X ca|se '*': |
|00001ea0| 64 6f 20 7b 63 68 20 3d | 20 72 65 61 64 63 68 28 |do {ch =| readch(|
|00001eb0| 29 3b 7d 20 77 68 69 6c | 65 28 63 68 20 21 3d 20 |);} whil|e(ch != |
|00001ec0| 27 5c 6e 27 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |'\n');.X| |
|00001ed0| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 20 20 63 61 | brea|k;.X ca|
|00001ee0| 73 65 20 27 68 27 3a 20 | 72 65 74 75 72 6e 28 75 |se 'h': |return(u|
|00001ef0| 6e 73 63 61 6c 65 28 48 | 43 4f 44 45 29 29 3b 0a |nscale(H|CODE));.|
|00001f00| 58 20 20 63 61 73 65 20 | 27 69 27 3a 20 69 66 20 |X case |'i': if |
|00001f10| 28 6e 6c 61 79 65 72 73 | 20 3e 3d 20 33 29 20 72 |(nlayers| >= 3) r|
|00001f20| 65 74 75 72 6e 28 75 6e | 73 63 61 6c 65 28 49 43 |eturn(un|scale(IC|
|00001f30| 4f 44 45 29 29 3b 0a 58 | 20 20 63 61 73 65 20 27 |ODE));.X| case '|
|00001f40| 6a 27 3a 20 69 66 20 28 | 6e 6c 61 79 65 72 73 20 |j': if (|nlayers |
|00001f50| 3e 3d 20 34 29 20 72 65 | 74 75 72 6e 28 75 6e 73 |>= 4) re|turn(uns|
|00001f60| 63 61 6c 65 28 4a 43 4f | 44 45 29 29 3b 0a 58 20 |cale(JCO|DE));.X |
|00001f70| 20 63 61 73 65 20 27 6b | 27 3a 20 69 66 20 28 6e | case 'k|': if (n|
|00001f80| 6c 61 79 65 72 73 20 3e | 3d 20 35 29 20 72 65 74 |layers >|= 5) ret|
|00001f90| 75 72 6e 28 75 6e 73 63 | 61 6c 65 28 4b 43 4f 44 |urn(unsc|ale(KCOD|
|00001fa0| 45 29 29 3b 0a 58 20 20 | 64 65 66 61 75 6c 74 3a |E));.X |default:|
|00001fb0| 20 20 74 65 78 74 65 72 | 72 6f 72 28 29 3b 0a 58 | texter|ror();.X|
|00001fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 72 65 61 64 | | read|
|00001fd0| 65 72 72 6f 72 20 3d 20 | 31 3b 0a 58 20 20 20 20 |error = |1;.X |
|00001fe0| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 28 30 | |return(0|
|00001ff0| 2e 30 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |.0);.X | |
|00002000| 7d 3b 20 2f 2a 20 65 6e | 64 20 73 77 69 74 63 68 |}; /* en|d switch|
|00002010| 20 2a 2f 0a 58 20 20 7d | 20 77 68 69 6c 65 20 28 | */.X }| while (|
|00002020| 30 20 3d 3d 20 30 29 3b | 0a 58 7d 0a 58 0a 58 76 |0 == 0);|.X}.X.Xv|
|00002030| 6f 69 64 20 70 72 69 6e | 74 6f 75 74 75 6e 69 74 |oid prin|toutunit|
|00002040| 73 28 6c 61 79 65 72 2c | 70 72 69 6e 74 65 72 72 |s(layer,|printerr|
|00002050| 29 20 20 2f 2a 20 70 72 | 69 6e 74 73 20 76 61 6c |) /* pr|ints val|
|00002060| 75 65 73 20 6f 66 20 75 | 6e 69 74 73 20 2a 2f 0a |ues of u|nits */.|
|00002070| 58 4c 41 59 45 52 20 2a | 6c 61 79 65 72 3b 0a 58 |XLAYER *|layer;.X|
|00002080| 69 6e 74 20 70 72 69 6e | 74 65 72 72 3b 0a 58 7b |int prin|terr;.X{|
|00002090| 0a 58 20 64 6f 75 62 6c | 65 20 65 72 72 6f 72 2c |.X doubl|e error,|
|000020a0| 20 65 3b 0a 58 20 69 6e | 74 20 63 6f 75 6e 74 65 | e;.X in|t counte|
|000020b0| 72 2c 20 69 3b 0a 58 20 | 55 4e 49 54 20 2a 75 3b |r, i;.X |UNIT *u;|
|000020c0| 0a 58 20 57 54 54 59 50 | 45 20 75 70 70 65 72 2c |.X WTTYP|E upper,|
|000020d0| 20 6d 69 64 64 6c 65 2c | 20 64 69 66 66 3b 0a 58 | middle,| diff;.X|
|000020e0| 20 50 41 54 4e 4f 44 45 | 20 2a 74 61 72 67 65 74 | PATNODE| *target|
|000020f0| 3b 0a 58 0a 58 20 75 70 | 70 65 72 20 3d 20 73 63 |;.X.X up|per = sc|
|00002100| 61 6c 65 28 31 2e 30 29 | 20 2d 20 74 6f 6c 65 72 |ale(1.0)| - toler|
|00002110| 3b 20 2f 2a 20 63 6f 6d | 70 75 74 65 20 77 68 65 |; /* com|pute whe|
|00002120| 74 68 65 72 20 6e 65 65 | 64 65 64 20 6f 72 20 6e |ther nee|ded or n|
|00002130| 6f 74 20 2a 2f 0a 58 20 | 6d 69 64 64 6c 65 20 3d |ot */.X |middle =|
|00002140| 20 73 63 61 6c 65 28 30 | 2e 35 29 3b 0a 58 0a 58 | scale(0|.5);.X.X|
|00002150| 20 75 20 3d 20 28 55 4e | 49 54 20 2a 29 20 6c 61 | u = (UN|IT *) la|
|00002160| 79 65 72 2d 3e 75 6e 69 | 74 73 3b 0a 58 20 69 66 |yer->uni|ts;.X if|
|00002170| 20 28 6c 61 79 65 72 20 | 3d 3d 20 6c 61 73 74 29 | (layer |== last)|
|00002180| 20 74 61 72 67 65 74 20 | 3d 20 28 50 41 54 4e 4f | target |= (PATNO|
|00002190| 44 45 20 2a 29 20 6c 61 | 73 74 2d 3e 63 75 72 72 |DE *) la|st->curr|
|000021a0| 65 6e 74 70 61 74 2d 3e | 70 61 74 73 3b 0a 58 20 |entpat->|pats;.X |
|000021b0| 63 6f 75 6e 74 65 72 20 | 3d 20 30 3b 0a 58 20 69 |counter |= 0;.X i|
|000021c0| 20 3d 20 31 3b 0a 58 20 | 69 66 20 28 70 72 69 6e | = 1;.X |if (prin|
|000021d0| 74 65 72 72 20 3d 3d 20 | 30 29 20 70 72 69 6e 74 |terr == |0) print|
|000021e0| 66 28 22 20 20 20 20 22 | 29 3b 0a 58 20 77 68 69 |f(" "|);.X whi|
|000021f0| 6c 65 20 28 75 20 21 3d | 20 4e 55 4c 4c 29 0a 58 |le (u !=| NULL).X|
|00002200| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 63 6f 75 | {.X | cou|
|00002210| 6e 74 65 72 20 3d 20 63 | 6f 75 6e 74 65 72 20 2b |nter = c|ounter +|
|00002220| 20 31 3b 0a 58 20 20 20 | 20 20 20 69 66 20 28 6f | 1;.X | if (o|
|00002230| 75 74 66 6f 72 6d 61 74 | 20 3d 3d 20 27 72 27 29 |utformat| == 'r')|
|00002240| 0a 58 20 20 20 20 20 20 | 20 20 7b 0a 58 20 20 20 |.X | {.X |
|00002250| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 25 | p|rintf("%|
|00002260| 35 2e 32 6c 66 20 22 2c | 75 6e 73 63 61 6c 65 28 |5.2lf ",|unscale(|
|00002270| 75 2d 3e 6f 6a 29 29 3b | 0a 58 20 20 20 20 20 20 |u->oj));|.X |
|00002280| 20 20 20 20 69 66 20 28 | 66 6f 72 6d 61 74 5b 69 | if (|format[i|
|00002290| 5d 20 3d 3d 20 63 6f 75 | 6e 74 65 72 29 0a 58 20 |] == cou|nter).X |
|000022a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7b 0a 58 20 | | {.X |
|000022b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 70 72 | | pr|
|000022c0| 69 6e 74 66 28 22 5c 6e | 20 20 20 20 22 29 3b 0a |intf("\n| ");.|
|000022d0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|000022e0| 69 66 20 28 69 20 3c 20 | 6d 61 78 66 6f 72 6d 61 |if (i < |maxforma|
|000022f0| 74 20 2d 20 31 29 20 69 | 20 3d 20 69 20 2b 20 31 |t - 1) i| = i + 1|
|00002300| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00002310| 7d 0a 58 20 20 20 20 20 | 20 20 20 20 7d 0a 58 20 |}.X | }.X |
|00002320| 20 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 6f 75 | els|e if (ou|
|00002330| 74 66 6f 72 6d 61 74 20 | 3d 3d 20 27 61 27 20 26 |tformat |== 'a' &|
|00002340| 26 20 6c 61 79 65 72 20 | 3d 3d 20 6c 61 73 74 29 |& layer |== last)|
|00002350| 0a 58 20 20 20 20 20 20 | 20 20 20 7b 0a 58 20 20 |.X | {.X |
|00002360| 20 20 20 20 20 20 20 20 | 20 64 69 66 66 20 3d 20 | | diff = |
|00002370| 74 61 72 67 65 74 2d 3e | 76 61 6c 20 2d 20 75 2d |target->|val - u-|
|00002380| 3e 6f 6a 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |>oj;.X | |
|00002390| 20 69 66 20 28 64 69 66 | 66 20 3c 20 30 29 20 64 | if (dif|f < 0) d|
|000023a0| 69 66 66 20 3d 20 2d 64 | 69 66 66 3b 0a 58 20 20 |iff = -d|iff;.X |
|000023b0| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 64 69 66 | | if (dif|
|000023c0| 66 20 3c 20 74 6f 6c 65 | 72 29 20 70 75 74 63 68 |f < tole|r) putch|
|000023d0| 61 72 28 27 63 27 29 3b | 0a 58 20 20 20 20 20 20 |ar('c');|.X |
|000023e0| 20 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 75 2d | els|e if (u-|
|000023f0| 3e 6f 6a 20 3e 20 75 70 | 70 65 72 29 20 70 75 74 |>oj > up|per) put|
|00002400| 63 68 61 72 28 27 31 27 | 29 3b 0a 58 20 20 20 20 |char('1'|);.X |
|00002410| 20 20 20 20 20 20 20 65 | 6c 73 65 20 69 66 20 28 | e|lse if (|
|00002420| 75 2d 3e 6f 6a 20 3c 20 | 74 6f 6c 65 72 29 20 70 |u->oj < |toler) p|
|00002430| 75 74 63 68 61 72 28 27 | 30 27 29 3b 0a 58 20 20 |utchar('|0');.X |
|00002440| 20 20 20 20 20 20 20 20 | 20 65 6c 73 65 20 69 66 | | else if|
|00002450| 20 28 75 2d 3e 6f 6a 20 | 3e 20 74 61 72 67 65 74 | (u->oj |> target|
|00002460| 2d 3e 76 61 6c 29 20 70 | 75 74 63 68 61 72 28 27 |->val) p|utchar('|
|00002470| 5e 27 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |^');.X | |
|00002480| 20 65 6c 73 65 20 70 75 | 74 63 68 61 72 28 27 76 | else pu|tchar('v|
|00002490| 27 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |');.X | |
|000024a0| 69 66 20 28 66 6f 72 6d | 61 74 5b 69 5d 20 3d 3d |if (form|at[i] ==|
|000024b0| 20 63 6f 75 6e 74 65 72 | 29 0a 58 20 20 20 20 20 | counter|).X |
|000024c0| 20 20 20 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 | | {.X |
|000024d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 70 75 74 63 | | putc|
|000024e0| 68 61 72 28 27 20 27 29 | 3b 0a 58 20 20 20 20 20 |har(' ')|;.X |
|000024f0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 69 | | if (i|
|00002500| 20 3c 20 6d 61 78 66 6f | 72 6d 61 74 20 2d 20 31 | < maxfo|rmat - 1|
|00002510| 29 20 69 20 3d 20 69 20 | 2b 20 31 3b 0a 58 20 20 |) i = i |+ 1;.X |
|00002520| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0a 58 20 | | }.X |
|00002530| 20 20 20 20 20 20 20 20 | 7d 0a 58 20 20 20 20 20 | |}.X |
|00002540| 20 65 6c 73 65 20 0a 58 | 20 20 20 20 20 20 20 20 | else .X| |
|00002550| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 69 | {.X | i|
|00002560| 66 20 28 75 2d 3e 6f 6a | 20 3e 20 75 70 70 65 72 |f (u->oj| > upper|
|00002570| 29 20 70 75 74 63 68 61 | 72 28 27 31 27 29 3b 0a |) putcha|r('1');.|
|00002580| 58 20 20 20 20 20 20 20 | 20 20 20 20 65 6c 73 65 |X | else|
|00002590| 20 69 66 20 28 75 2d 3e | 6f 6a 20 3e 20 6d 69 64 | if (u->|oj > mid|
|000025a0| 64 6c 65 29 20 70 75 74 | 63 68 61 72 28 27 5e 27 |dle) put|char('^'|
|000025b0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 65 |);.X | e|
|000025c0| 6c 73 65 20 69 66 20 28 | 75 2d 3e 6f 6a 20 3c 20 |lse if (|u->oj < |
|000025d0| 74 6f 6c 65 72 29 20 70 | 75 74 63 68 61 72 28 27 |toler) p|utchar('|
|000025e0| 30 27 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |0');.X | |
|000025f0| 20 65 6c 73 65 20 70 75 | 74 63 68 61 72 28 27 76 | else pu|tchar('v|
|00002600| 27 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |');.X | |
|00002610| 69 66 20 28 66 6f 72 6d | 61 74 5b 69 5d 20 3d 3d |if (form|at[i] ==|
|00002620| 20 63 6f 75 6e 74 65 72 | 29 0a 58 20 20 20 20 20 | counter|).X |
|00002630| 20 20 20 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 | | {.X |
|00002640| 20 20 20 20 20 20 20 20 | 20 20 20 20 70 75 74 63 | | putc|
|00002650| 68 61 72 28 27 20 27 29 | 3b 0a 58 20 20 20 20 20 |har(' ')|;.X |
|00002660| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 69 | | if (i|
|00002670| 20 3c 20 6d 61 78 66 6f | 72 6d 61 74 20 2d 20 31 | < maxfo|rmat - 1|
|00002680| 29 20 69 20 3d 20 69 20 | 2b 20 31 3b 0a 58 20 20 |) i = i |+ 1;.X |
|00002690| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0a 58 20 | | }.X |
|000026a0| 20 20 20 20 20 20 20 20 | 7d 0a 58 20 20 20 20 20 | |}.X |
|000026b0| 20 75 20 3d 20 75 2d 3e | 6e 65 78 74 3b 0a 58 20 | u = u->|next;.X |
|000026c0| 20 20 20 20 20 69 66 20 | 28 6c 61 79 65 72 20 3d | if |(layer =|
|000026d0| 3d 20 6c 61 73 74 29 20 | 74 61 72 67 65 74 20 3d |= last) |target =|
|000026e0| 20 74 61 72 67 65 74 2d | 3e 6e 65 78 74 3b 0a 58 | target-|>next;.X|
|000026f0| 20 20 20 20 7d 3b 0a 58 | 20 69 66 20 28 70 72 69 | };.X| if (pri|
|00002700| 6e 74 65 72 72 20 3d 3d | 20 31 29 0a 58 20 20 20 |nterr ==| 1).X |
|00002710| 20 7b 0a 58 20 20 20 20 | 20 20 65 72 72 6f 72 20 | {.X | error |
|00002720| 3d 20 30 2e 30 3b 0a 58 | 20 20 20 20 20 20 75 20 |= 0.0;.X| u |
|00002730| 3d 20 28 55 4e 49 54 20 | 2a 29 20 6c 61 79 65 72 |= (UNIT |*) layer|
|00002740| 2d 3e 75 6e 69 74 73 3b | 0a 58 20 20 20 20 20 20 |->units;|.X |
|00002750| 74 61 72 67 65 74 20 3d | 20 28 50 41 54 4e 4f 44 |target =| (PATNOD|
|00002760| 45 20 2a 29 20 6c 61 73 | 74 2d 3e 63 75 72 72 65 |E *) las|t->curre|
|00002770| 6e 74 70 61 74 2d 3e 70 | 61 74 73 3b 0a 58 20 20 |ntpat->p|ats;.X |
|00002780| 20 20 20 20 77 68 69 6c | 65 20 28 75 20 21 3d 20 | whil|e (u != |
|00002790| 4e 55 4c 4c 29 0a 58 20 | 20 20 20 20 20 20 20 20 |NULL).X | |
|000027a0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 65 20 |{.X | e |
|000027b0| 3d 20 75 6e 73 63 61 6c | 65 28 74 61 72 67 65 74 |= unscal|e(target|
|000027c0| 2d 3e 76 61 6c 20 2d 20 | 75 2d 3e 6f 6a 29 3b 0a |->val - |u->oj);.|
|000027d0| 58 20 20 20 20 20 20 20 | 20 20 20 20 65 72 72 6f |X | erro|
|000027e0| 72 20 3d 20 65 72 72 6f | 72 20 2b 20 65 20 2a 20 |r = erro|r + e * |
|000027f0| 65 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 75 |e;.X | u|
|00002800| 20 3d 20 75 2d 3e 6e 65 | 78 74 3b 0a 58 20 20 20 | = u->ne|xt;.X |
|00002810| 20 20 20 20 20 20 20 20 | 74 61 72 67 65 74 20 3d | |target =|
|00002820| 20 74 61 72 67 65 74 2d | 3e 6e 65 78 74 3b 0a 58 | target-|>next;.X|
|00002830| 20 20 20 20 20 20 20 20 | 20 7d 3b 0a 58 20 20 20 | | };.X |
|00002840| 20 20 20 20 70 72 69 6e | 74 66 28 22 20 28 25 37 | prin|tf(" (%7|
|00002850| 2e 35 6c 66 29 22 2c 65 | 72 72 6f 72 29 3b 0a 58 |.5lf)",e|rror);.X|
|00002860| 20 20 20 20 7d 3b 0a 58 | 20 70 72 69 6e 74 66 28 | };.X| printf(|
|00002870| 22 5c 6e 22 29 3b 0a 58 | 7d 0a 58 0a 58 76 6f 69 |"\n");.X|}.X.Xvoi|
|00002880| 64 20 77 72 62 28 77 74 | 66 69 6c 65 2c 76 61 6c |d wrb(wt|file,val|
|00002890| 75 65 2c 77 74 73 69 7a | 65 29 0a 58 46 49 4c 45 |ue,wtsiz|e).XFILE|
|000028a0| 20 2a 77 74 66 69 6c 65 | 3b 0a 58 57 54 54 59 50 | *wtfile|;.XWTTYP|
|000028b0| 45 20 76 61 6c 75 65 3b | 0a 58 69 6e 74 20 77 74 |E value;|.Xint wt|
|000028c0| 73 69 7a 65 3b 0a 58 7b | 0a 58 20 20 69 6e 74 20 |size;.X{|.X int |
|000028d0| 69 3b 0a 58 20 20 75 6e | 73 69 67 6e 65 64 20 63 |i;.X un|signed c|
|000028e0| 68 61 72 20 2a 63 68 61 | 72 70 74 72 2c 20 63 68 |har *cha|rptr, ch|
|000028f0| 32 3b 0a 58 0a 58 20 20 | 63 68 61 72 70 74 72 20 |2;.X.X |charptr |
|00002900| 3d 20 28 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |= (unsig|ned char|
|00002910| 20 2a 29 20 26 76 61 6c | 75 65 3b 0a 58 20 20 66 | *) &val|ue;.X f|
|00002920| 6f 72 20 28 69 3d 31 3b | 69 3c 3d 77 74 73 69 7a |or (i=1;|i<=wtsiz|
|00002930| 65 3b 69 2b 2b 29 0a 58 | 20 20 20 20 20 7b 0a 58 |e;i++).X| {.X|
|00002940| 20 20 20 20 20 20 20 63 | 68 32 20 3d 20 2a 63 68 | c|h2 = *ch|
|00002950| 61 72 70 74 72 3b 0a 58 | 20 20 20 20 20 20 20 70 |arptr;.X| p|
|00002960| 75 74 63 28 63 68 32 2c | 77 74 66 69 6c 65 29 3b |utc(ch2,|wtfile);|
|00002970| 0a 58 20 20 20 20 20 20 | 20 63 68 61 72 70 74 72 |.X | charptr|
|00002980| 2b 2b 3b 0a 58 20 20 20 | 20 20 7d 3b 0a 58 7d 0a |++;.X | };.X}.|
|00002990| 58 0a 58 76 6f 69 64 20 | 73 61 76 65 77 65 69 67 |X.Xvoid |saveweig|
|000029a0| 68 74 73 28 29 20 20 20 | 20 2f 2a 20 73 61 76 65 |hts() | /* save|
|000029b0| 73 20 77 65 69 67 68 74 | 73 20 6f 6e 20 74 68 65 |s weight|s on the|
|000029c0| 20 66 69 6c 65 20 77 65 | 69 67 68 74 73 20 2a 2f | file we|ights */|
|000029d0| 0a 58 7b 0a 58 20 20 46 | 49 4c 45 20 2a 77 65 69 |.X{.X F|ILE *wei|
|000029e0| 67 68 74 73 3b 0a 58 20 | 20 55 4e 49 54 20 2a 75 |ghts;.X | UNIT *u|
|000029f0| 3b 0a 58 20 20 4c 41 59 | 45 52 20 2a 6c 61 79 65 |;.X LAY|ER *laye|
|00002a00| 72 3b 0a 58 20 20 57 54 | 4e 4f 44 45 20 2a 77 3b |r;.X WT|NODE *w;|
|00002a10| 0a 58 20 20 57 54 54 59 | 50 45 20 77 76 61 6c 75 |.X WTTY|PE wvalu|
|00002a20| 65 2c 20 65 76 61 6c 75 | 65 2c 20 64 76 61 6c 75 |e, evalu|e, dvalu|
|00002a30| 65 3b 0a 58 0a 58 20 20 | 77 65 69 67 68 74 73 20 |e;.X.X |weights |
|00002a40| 3d 20 66 6f 70 65 6e 28 | 22 77 65 69 67 68 74 73 |= fopen(|"weights|
|00002a50| 22 2c 22 77 22 29 3b 0a | 58 20 20 66 70 72 69 6e |","w");.|X fprin|
|00002a60| 74 66 28 77 65 69 67 68 | 74 73 2c 22 25 64 25 63 |tf(weigh|ts,"%d%c|
|00002a70| 22 2c 74 6f 74 61 6c 69 | 74 65 72 2c 77 74 66 6f |",totali|ter,wtfo|
|00002a80| 72 6d 61 74 29 3b 0a 58 | 20 20 69 66 20 28 77 74 |rmat);.X| if (wt|
|00002a90| 66 6f 72 6d 61 74 20 3d | 3d 20 27 62 27 20 7c 7c |format =|= 'b' |||
|00002aa0| 20 77 74 66 6f 72 6d 61 | 74 20 3d 3d 20 27 42 27 | wtforma|t == 'B'|
|00002ab0| 29 20 66 70 72 69 6e 74 | 66 28 77 65 69 67 68 74 |) fprint|f(weight|
|00002ac0| 73 2c 22 25 31 64 22 2c | 57 54 53 49 5a 45 29 3b |s,"%1d",|WTSIZE);|
|00002ad0| 0a 58 20 20 66 70 72 69 | 6e 74 66 28 77 65 69 67 |.X fpri|ntf(weig|
|00002ae0| 68 74 73 2c 22 20 20 20 | 66 69 6c 65 20 3d 20 25 |hts," |file = %|
|00002af0| 73 5c 6e 22 2c 64 61 74 | 61 66 69 6c 65 6e 61 6d |s\n",dat|afilenam|
|00002b00| 65 29 3b 0a 58 20 20 6c | 61 79 65 72 20 3d 20 73 |e);.X l|ayer = s|
|00002b10| 74 61 72 74 2d 3e 6e 65 | 78 74 3b 0a 58 20 20 77 |tart->ne|xt;.X w|
|00002b20| 68 69 6c 65 20 28 6c 61 | 79 65 72 20 21 3d 20 4e |hile (la|yer != N|
|00002b30| 55 4c 4c 29 0a 58 20 20 | 20 20 20 7b 0a 58 20 20 |ULL).X | {.X |
|00002b40| 20 20 20 20 20 75 20 3d | 20 28 55 4e 49 54 20 2a | u =| (UNIT *|
|00002b50| 29 20 6c 61 79 65 72 2d | 3e 75 6e 69 74 73 3b 0a |) layer-|>units;.|
|00002b60| 58 20 20 20 20 20 20 20 | 77 68 69 6c 65 20 28 75 |X |while (u|
|00002b70| 20 21 3d 20 4e 55 4c 4c | 29 0a 58 20 20 20 20 20 | != NULL|).X |
|00002b80| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 20 20 | {.X| |
|00002b90| 20 20 20 20 77 20 3d 20 | 28 57 54 4e 4f 44 45 20 | w = |(WTNODE |
|00002ba0| 2a 29 20 75 2d 3e 77 74 | 6c 69 73 74 3b 0a 58 20 |*) u->wt|list;.X |
|00002bb0| 20 20 20 20 20 20 20 20 | 20 20 20 77 68 69 6c 65 | | while|
|00002bc0| 20 28 77 20 21 3d 20 4e | 55 4c 4c 29 0a 58 20 20 | (w != N|ULL).X |
|00002bd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 7b 0a 58 | | {.X|
|00002be0| 23 69 66 64 65 66 20 53 | 59 4d 4d 45 54 52 49 43 |#ifdef S|YMMETRIC|
|00002bf0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00002c00| 20 20 20 77 76 61 6c 75 | 65 20 3d 20 2a 28 77 2d | wvalu|e = *(w-|
|00002c10| 3e 77 65 69 67 68 74 29 | 3b 0a 58 20 20 20 20 20 |>weight)|;.X |
|00002c20| 20 20 20 20 20 20 20 20 | 20 20 20 20 65 76 61 6c | | eval|
|00002c30| 75 65 20 3d 20 2a 28 77 | 2d 3e 65 74 61 29 3b 0a |ue = *(w|->eta);.|
|00002c40| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00002c50| 20 20 64 76 61 6c 75 65 | 20 3d 20 2a 28 77 2d 3e | dvalue| = *(w->|
|00002c60| 6f 6c 64 64 77 29 3b 0a | 58 23 65 6c 73 65 0a 58 |olddw);.|X#else.X|
|00002c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002c80| 20 77 76 61 6c 75 65 20 | 3d 20 77 2d 3e 77 65 69 | wvalue |= w->wei|
|00002c90| 67 68 74 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ght;.X | |
|00002ca0| 20 20 20 20 20 20 20 65 | 76 61 6c 75 65 20 3d 20 | e|value = |
|00002cb0| 77 2d 3e 65 74 61 3b 0a | 58 20 20 20 20 20 20 20 |w->eta;.|X |
|00002cc0| 20 20 20 20 20 20 20 20 | 20 20 64 76 61 6c 75 65 | | dvalue|
|00002cd0| 20 3d 20 77 2d 3e 6f 6c | 64 64 77 3b 0a 58 23 65 | = w->ol|ddw;.X#e|
|00002ce0| 6e 64 69 66 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ndif.X | |
|00002cf0| 20 20 20 20 20 20 20 69 | 66 20 28 77 74 66 6f 72 | i|f (wtfor|
|00002d00| 6d 61 74 20 3d 3d 20 27 | 72 27 20 7c 7c 20 77 74 |mat == '|r' || wt|
|00002d10| 66 6f 72 6d 61 74 20 3d | 3d 20 27 52 27 29 0a 58 |format =|= 'R').X|
|00002d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002d30| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00002d40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 66 70 72 | | fpr|
|00002d50| 69 6e 74 66 28 77 65 69 | 67 68 74 73 2c 22 25 31 |intf(wei|ghts,"%1|
|00002d60| 36 2e 31 30 6c 66 22 2c | 75 6e 73 63 61 6c 65 28 |6.10lf",|unscale(|
|00002d70| 77 76 61 6c 75 65 29 29 | 3b 0a 58 20 20 20 20 20 |wvalue))|;.X |
|00002d80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002d90| 20 69 66 20 28 77 74 66 | 6f 72 6d 61 74 20 3d 3d | if (wtf|ormat ==|
|00002da0| 20 27 52 27 29 0a 58 20 | 20 20 20 20 20 20 20 20 | 'R').X | |
|00002db0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002dc0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{.X | |
|00002dd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 66 70 | | fp|
|00002de0| 72 69 6e 74 66 28 77 65 | 69 67 68 74 73 2c 22 20 |rintf(we|ights," |
|00002df0| 25 31 36 2e 31 30 6c 66 | 22 2c 75 6e 73 63 61 6c |%16.10lf|",unscal|
|00002e00| 65 28 65 76 61 6c 75 65 | 29 29 3b 0a 58 20 20 20 |e(evalue|));.X |
|00002e10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e20| 20 20 20 20 20 20 20 20 | 66 70 72 69 6e 74 66 28 | |fprintf(|
|00002e30| 77 65 69 67 68 74 73 2c | 22 20 25 31 36 2e 31 30 |weights,|" %16.10|
|00002e40| 6c 66 22 2c 75 6e 73 63 | 61 6c 65 28 64 76 61 6c |lf",unsc|ale(dval|
|00002e50| 75 65 29 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |ue));.X | |
|00002e60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e70| 7d 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |};.X | |
|00002e80| 20 20 20 20 20 20 20 20 | 20 20 70 75 74 63 28 27 | | putc('|
|00002e90| 5c 6e 27 2c 77 65 69 67 | 68 74 73 29 3b 0a 58 20 |\n',weig|hts);.X |
|00002ea0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002eb0| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 20 20 20 20 | }.X | |
|00002ec0| 20 20 20 20 20 20 20 65 | 6c 73 65 20 20 2f 2a 20 | e|lse /* |
|00002ed0| 62 69 6e 61 72 79 20 66 | 6f 72 6d 61 74 3b 20 75 |binary f|ormat; u|
|00002ee0| 73 65 73 20 74 68 65 20 | 6c 65 61 73 74 20 73 70 |ses the |least sp|
|00002ef0| 61 63 65 20 2a 2f 0a 58 | 20 20 20 20 20 20 20 20 |ace */.X| |
|00002f00| 20 20 20 20 20 20 20 20 | 20 20 20 20 7b 0a 58 20 | | {.X |
|00002f10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002f20| 20 20 20 20 20 77 72 62 | 28 77 65 69 67 68 74 73 | wrb|(weights|
|00002f30| 2c 77 76 61 6c 75 65 2c | 57 54 53 49 5a 45 29 3b |,wvalue,|WTSIZE);|
|00002f40| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00002f50| 20 20 20 20 20 20 20 20 | 69 66 20 28 77 74 66 6f | |if (wtfo|
|00002f60| 72 6d 61 74 20 3d 3d 20 | 27 42 27 29 0a 58 20 20 |rmat == |'B').X |
|00002f70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002f80| 20 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 | {|.X |
|00002f90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002fa0| 20 20 20 20 20 77 72 62 | 28 77 65 69 67 68 74 73 | wrb|(weights|
|00002fb0| 2c 65 76 61 6c 75 65 2c | 57 54 53 49 5a 45 29 3b |,evalue,|WTSIZE);|
|00002fc0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00002fd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 77 72 62 | | wrb|
|00002fe0| 28 77 65 69 67 68 74 73 | 2c 64 76 61 6c 75 65 2c |(weights|,dvalue,|
|00002ff0| 57 54 53 49 5a 45 29 3b | 0a 58 20 20 20 20 20 20 |WTSIZE);|.X |
|00003000| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003010| 20 20 20 7d 3b 0a 58 20 | 20 20 20 20 20 20 20 20 | };.X | |
|00003020| 20 20 20 20 20 20 20 20 | 20 20 20 7d 3b 0a 58 20 | | };.X |
|00003030| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003040| 77 20 3d 20 77 2d 3e 6e | 65 78 74 3b 0a 58 20 20 |w = w->n|ext;.X |
|00003050| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 3b 0a | | };.|
|00003060| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 75 20 3d |X | u =|
|00003070| 20 75 2d 3e 6e 65 78 74 | 3b 0a 58 20 20 20 20 20 | u->next|;.X |
|00003080| 20 20 20 20 20 7d 3b 0a | 58 20 20 20 20 20 20 20 | };.|X |
|00003090| 20 6c 61 79 65 72 20 3d | 20 6c 61 79 65 72 2d 3e | layer =| layer->|
|000030a0| 6e 65 78 74 3b 0a 58 20 | 20 20 20 20 20 7d 3b 0a |next;.X | };.|
|000030b0| 58 20 20 66 66 6c 75 73 | 68 28 77 65 69 67 68 74 |X fflus|h(weight|
|000030c0| 73 29 3b 0a 58 20 20 63 | 6c 6f 73 65 28 77 65 69 |s);.X c|lose(wei|
|000030d0| 67 68 74 73 29 3b 0a 58 | 20 20 6c 61 73 74 73 61 |ghts);.X| lastsa|
|000030e0| 76 65 20 3d 20 74 6f 74 | 61 6c 69 74 65 72 3b 0a |ve = tot|aliter;.|
|000030f0| 58 7d 0a 58 0a 58 57 54 | 54 59 50 45 20 72 64 62 |X}.X.XWT|TYPE rdb|
|00003100| 28 77 74 66 69 6c 65 2c | 77 74 73 69 7a 65 29 20 |(wtfile,|wtsize) |
|00003110| 2f 2a 20 72 65 61 64 20 | 62 69 6e 61 72 79 20 61 |/* read |binary a|
|00003120| 6e 64 20 63 6f 6e 76 65 | 72 74 20 62 65 74 77 65 |nd conve|rt betwe|
|00003130| 65 6e 20 73 69 7a 65 73 | 20 2a 2f 0a 58 46 49 4c |en sizes| */.XFIL|
|00003140| 45 20 2a 77 74 66 69 6c | 65 3b 0a 58 69 6e 74 20 |E *wtfil|e;.Xint |
|00003150| 77 74 73 69 7a 65 3b 0a | 58 7b 0a 58 20 20 69 6e |wtsize;.|X{.X in|
|00003160| 74 20 69 3b 0a 58 20 20 | 64 6f 75 62 6c 65 20 76 |t i;.X |double v|
|00003170| 61 6c 75 65 3b 0a 58 20 | 20 73 68 6f 72 74 20 69 |alue;.X | short i|
|00003180| 76 61 6c 75 65 3b 0a 58 | 20 20 75 6e 73 69 67 6e |value;.X| unsign|
|00003190| 65 64 20 63 68 61 72 20 | 2a 63 68 61 72 70 74 72 |ed char |*charptr|
|000031a0| 3b 0a 58 0a 58 20 20 69 | 66 20 28 77 74 73 69 7a |;.X.X i|f (wtsiz|
|000031b0| 65 20 3d 3d 20 32 29 20 | 63 68 61 72 70 74 72 20 |e == 2) |charptr |
|000031c0| 3d 20 28 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |= (unsig|ned char|
|000031d0| 20 2a 29 20 26 69 76 61 | 6c 75 65 3b 0a 58 20 20 | *) &iva|lue;.X |
|000031e0| 65 6c 73 65 20 63 68 61 | 72 70 74 72 20 3d 20 28 |else cha|rptr = (|
|000031f0| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 20 2a 29 |unsigned| char *)|
|00003200| 20 26 76 61 6c 75 65 3b | 0a 58 20 20 66 6f 72 20 | &value;|.X for |
|00003210| 28 69 3d 31 3b 69 3c 3d | 77 74 73 69 7a 65 3b 69 |(i=1;i<=|wtsize;i|
|00003220| 2b 2b 29 0a 58 20 20 20 | 20 20 7b 0a 58 20 20 20 |++).X | {.X |
|00003230| 20 20 20 20 2a 63 68 61 | 72 70 74 72 20 3d 20 28 | *cha|rptr = (|
|00003240| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 29 20 67 |unsigned| char) g|
|00003250| 65 74 63 28 77 74 66 69 | 6c 65 29 3b 0a 58 20 20 |etc(wtfi|le);.X |
|00003260| 20 20 20 20 20 63 68 61 | 72 70 74 72 2b 2b 3b 0a | cha|rptr++;.|
|00003270| 58 20 20 20 20 20 7d 3b | 0a 58 20 20 69 66 20 28 |X };|.X if (|
|00003280| 57 54 53 49 5a 45 20 3d | 3d 20 32 20 26 26 20 77 |WTSIZE =|= 2 && w|
|00003290| 74 73 69 7a 65 20 3d 3d | 20 32 29 20 72 65 74 75 |tsize ==| 2) retu|
|000032a0| 72 6e 28 69 76 61 6c 75 | 65 29 3b 0a 58 20 20 65 |rn(ivalu|e);.X e|
|000032b0| 6c 73 65 20 69 66 20 28 | 57 54 53 49 5a 45 20 3d |lse if (|WTSIZE =|
|000032c0| 3d 20 32 20 26 26 20 77 | 74 73 69 7a 65 20 3d 3d |= 2 && w|tsize ==|
|000032d0| 20 38 29 20 72 65 74 75 | 72 6e 28 73 63 61 6c 65 | 8) retu|rn(scale|
|000032e0| 28 76 61 6c 75 65 29 29 | 3b 0a 58 20 20 65 6c 73 |(value))|;.X els|
|000032f0| 65 20 69 66 20 28 57 54 | 53 49 5a 45 20 3d 3d 20 |e if (WT|SIZE == |
|00003300| 38 20 26 26 20 77 74 73 | 69 7a 65 20 3d 3d 20 38 |8 && wts|ize == 8|
|00003310| 29 20 72 65 74 75 72 6e | 28 76 61 6c 75 65 29 3b |) return|(value);|
|00003320| 0a 58 20 20 65 6c 73 65 | 20 69 66 20 28 57 54 53 |.X else| if (WTS|
|00003330| 49 5a 45 20 3d 3d 20 38 | 20 26 26 20 77 74 73 69 |IZE == 8| && wtsi|
|00003340| 7a 65 20 3d 3d 20 32 29 | 20 72 65 74 75 72 6e 28 |ze == 2)| return(|
|00003350| 69 76 61 6c 75 65 20 2f | 20 31 30 32 34 2e 30 29 |ivalue /| 1024.0)|
|00003360| 3b 0a 58 7d 0a 58 0a 58 | 76 6f 69 64 20 72 65 73 |;.X}.X.X|void res|
|00003370| 74 6f 72 65 77 65 69 67 | 68 74 73 28 29 20 20 20 |toreweig|hts() |
|00003380| 20 2f 2a 20 72 65 73 74 | 6f 72 65 20 77 65 69 67 | /* rest|ore weig|
|00003390| 68 74 73 20 66 72 6f 6d | 20 74 68 65 20 66 69 6c |hts from| the fil|
|000033a0| 65 20 77 65 69 67 68 74 | 73 20 2a 2f 0a 58 7b 0a |e weight|s */.X{.|
|000033b0| 58 20 20 46 49 4c 45 20 | 2a 77 65 69 67 68 74 73 |X FILE |*weights|
|000033c0| 3b 0a 58 20 20 55 4e 49 | 54 20 2a 75 3b 0a 58 20 |;.X UNI|T *u;.X |
|000033d0| 20 4c 41 59 45 52 20 2a | 6c 61 79 65 72 3b 0a 58 | LAYER *|layer;.X|
|000033e0| 20 20 57 54 4e 4f 44 45 | 20 2a 77 3b 0a 58 20 20 | WTNODE| *w;.X |
|000033f0| 69 6e 74 20 63 68 32 2c | 20 66 69 6c 65 66 6f 72 |int ch2,| filefor|
|00003400| 6d 61 74 3b 0a 58 20 20 | 57 54 54 59 50 45 20 77 |mat;.X |WTTYPE w|
|00003410| 76 61 6c 75 65 2c 20 65 | 76 61 6c 75 65 2c 20 64 |value, e|value, d|
|00003420| 76 61 6c 75 65 3b 0a 58 | 20 20 64 6f 75 62 6c 65 |value;.X| double|
|00003430| 20 74 65 6d 70 3b 0a 58 | 20 20 69 6e 74 20 77 74 | temp;.X| int wt|
|00003440| 73 69 7a 65 3b 0a 58 0a | 58 20 20 77 65 69 67 68 |size;.X.|X weigh|
|00003450| 74 73 20 3d 20 66 6f 70 | 65 6e 28 22 77 65 69 67 |ts = fop|en("weig|
|00003460| 68 74 73 22 2c 22 72 22 | 29 3b 0a 58 20 20 69 66 |hts","r"|);.X if|
|00003470| 20 28 77 65 69 67 68 74 | 73 20 3d 3d 20 4e 55 4c | (weight|s == NUL|
|00003480| 4c 29 0a 58 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |L).X | {.X |
|00003490| 20 20 20 70 72 69 6e 74 | 66 28 22 63 61 6e 6e 6f | print|f("canno|
|000034a0| 74 20 6f 70 65 6e 20 66 | 69 6c 65 20 77 65 69 67 |t open f|ile weig|
|000034b0| 68 74 73 5c 6e 22 29 3b | 0a 58 20 20 20 20 20 20 |hts\n");|.X |
|000034c0| 20 72 65 74 75 72 6e 3b | 0a 58 20 20 20 20 20 7d | return;|.X }|
|000034d0| 3b 0a 58 20 20 66 73 63 | 61 6e 66 28 77 65 69 67 |;.X fsc|anf(weig|
|000034e0| 68 74 73 2c 22 25 64 22 | 2c 26 74 6f 74 61 6c 69 |hts,"%d"|,&totali|
|000034f0| 74 65 72 29 3b 0a 58 20 | 20 66 69 6c 65 66 6f 72 |ter);.X | filefor|
|00003500| 6d 61 74 20 3d 20 67 65 | 74 63 28 77 65 69 67 68 |mat = ge|tc(weigh|
|00003510| 74 73 29 3b 0a 58 20 20 | 69 66 20 28 66 69 6c 65 |ts);.X |if (file|
|00003520| 66 6f 72 6d 61 74 20 21 | 3d 20 77 74 66 6f 72 6d |format !|= wtform|
|00003530| 61 74 29 0a 58 20 20 20 | 20 20 70 72 69 6e 74 66 |at).X | printf|
|00003540| 28 22 63 61 75 74 69 6f | 6e 3a 20 77 65 69 67 68 |("cautio|n: weigh|
|00003550| 74 20 66 6f 72 6d 61 74 | 20 6d 69 73 6d 61 74 63 |t format| mismatc|
|00003560| 68 5c 6e 22 29 3b 0a 58 | 20 20 69 66 20 28 66 69 |h\n");.X| if (fi|
|00003570| 6c 65 66 6f 72 6d 61 74 | 20 3d 3d 20 27 62 27 20 |leformat| == 'b' |
|00003580| 7c 7c 20 66 69 6c 65 66 | 6f 72 6d 61 74 20 3d 3d ||| filef|ormat ==|
|00003590| 20 27 42 27 29 0a 58 20 | 20 20 20 20 7b 0a 58 20 | 'B').X | {.X |
|000035a0| 20 20 20 20 20 20 77 74 | 73 69 7a 65 20 3d 20 67 | wt|size = g|
|000035b0| 65 74 63 28 77 65 69 67 | 68 74 73 29 20 2d 20 27 |etc(weig|hts) - '|
|000035c0| 30 27 3b 0a 58 20 20 20 | 20 20 20 20 69 66 20 28 |0';.X | if (|
|000035d0| 57 54 53 49 5a 45 20 21 | 3d 20 77 74 73 69 7a 65 |WTSIZE !|= wtsize|
|000035e0| 29 0a 58 20 20 20 20 20 | 20 20 20 20 20 70 72 69 |).X | pri|
|000035f0| 6e 74 66 28 22 63 61 75 | 74 69 6f 6e 3a 20 77 65 |ntf("cau|tion: we|
|00003600| 69 67 68 74 20 73 69 7a | 65 73 20 6d 69 73 6d 61 |ight siz|es misma|
|00003610| 74 63 68 65 64 5c 6e 22 | 29 3b 0a 58 20 20 20 20 |tched\n"|);.X |
|00003620| 20 7d 0a 58 20 20 65 6c | 73 65 20 77 74 73 69 7a | }.X el|se wtsiz|
|00003630| 65 20 3d 20 57 54 53 49 | 5a 45 3b 0a 58 20 20 63 |e = WTSI|ZE;.X c|
|00003640| 68 32 20 3d 20 67 65 74 | 63 28 77 65 69 67 68 74 |h2 = get|c(weight|
|00003650| 73 29 3b 20 20 2f 2a 20 | 73 6b 69 70 20 6f 76 65 |s); /* |skip ove|
|00003660| 72 20 74 68 65 20 66 69 | 6c 65 20 6e 61 6d 65 20 |r the fi|le name |
|00003670| 2a 2f 0a 58 20 20 77 68 | 69 6c 65 20 28 63 68 32 |*/.X wh|ile (ch2|
|00003680| 20 21 3d 20 27 5c 6e 27 | 29 20 63 68 32 20 3d 20 | != '\n'|) ch2 = |
|00003690| 67 65 74 63 28 77 65 69 | 67 68 74 73 29 3b 0a 58 |getc(wei|ghts);.X|
|000036a0| 20 20 6c 61 79 65 72 20 | 3d 20 73 74 61 72 74 2d | layer |= start-|
|000036b0| 3e 6e 65 78 74 3b 0a 58 | 20 20 77 68 69 6c 65 20 |>next;.X| while |
|000036c0| 28 6c 61 79 65 72 20 21 | 3d 20 4e 55 4c 4c 29 0a |(layer !|= NULL).|
|000036d0| 58 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 20 |X {.|X |
|000036e0| 75 20 3d 20 28 55 4e 49 | 54 20 2a 29 20 6c 61 79 |u = (UNI|T *) lay|
|000036f0| 65 72 2d 3e 75 6e 69 74 | 73 3b 0a 58 20 20 20 20 |er->unit|s;.X |
|00003700| 20 20 20 77 68 69 6c 65 | 20 28 75 20 21 3d 20 4e | while| (u != N|
|00003710| 55 4c 4c 29 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ULL).X | |
|00003720| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 77 |{.X | w|
|00003730| 20 3d 20 28 57 54 4e 4f | 44 45 20 2a 29 20 75 2d | = (WTNO|DE *) u-|
|00003740| 3e 77 74 6c 69 73 74 3b | 0a 58 20 20 20 20 20 20 |>wtlist;|.X |
|00003750| 20 20 20 20 20 20 77 68 | 69 6c 65 20 28 77 20 21 | wh|ile (w !|
|00003760| 3d 20 4e 55 4c 4c 29 0a | 58 20 20 20 20 20 20 20 |= NULL).|X |
|00003770| 20 20 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 | |{.X |
|00003780| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|00003790| 66 69 6c 65 66 6f 72 6d | 61 74 20 3d 3d 20 27 72 |fileform|at == 'r|
|000037a0| 27 20 7c 7c 20 66 69 6c | 65 66 6f 72 6d 61 74 20 |' || fil|eformat |
|000037b0| 3d 3d 20 27 52 27 29 0a | 58 20 20 20 20 20 20 20 |== 'R').|X |
|000037c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 7b 0a 58 | | {.X|
|000037d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000037e0| 20 20 20 20 20 20 66 73 | 63 61 6e 66 28 77 65 69 | fs|canf(wei|
|000037f0| 67 68 74 73 2c 22 25 6c | 66 22 2c 26 74 65 6d 70 |ghts,"%l|f",&temp|
|00003800| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |);.X | |
|00003810| 20 20 20 20 20 20 20 20 | 20 20 77 76 61 6c 75 65 | | wvalue|
|00003820| 20 3d 20 73 63 61 6c 65 | 28 74 65 6d 70 29 3b 0a | = scale|(temp);.|
|00003830| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00003840| 20 20 20 20 20 20 20 69 | 66 20 28 66 69 6c 65 66 | i|f (filef|
|00003850| 6f 72 6d 61 74 20 3d 3d | 20 27 52 27 29 0a 58 20 |ormat ==| 'R').X |
|00003860| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003870| 20 20 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 | |{.X |
|00003880| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003890| 20 20 20 20 20 20 66 73 | 63 61 6e 66 28 77 65 69 | fs|canf(wei|
|000038a0| 67 68 74 73 2c 22 25 6c | 66 22 2c 26 74 65 6d 70 |ghts,"%l|f",&temp|
|000038b0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |);.X | |
|000038c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 65 | | e|
|000038d0| 76 61 6c 75 65 20 3d 20 | 73 63 61 6c 65 28 74 65 |value = |scale(te|
|000038e0| 6d 70 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |mp);.X | |
|000038f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003900| 20 66 73 63 61 6e 66 28 | 77 65 69 67 68 74 73 2c | fscanf(|weights,|
|00003910| 22 25 6c 66 22 2c 26 74 | 65 6d 70 29 3b 0a 58 20 |"%lf",&t|emp);.X |
|00003920| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003930| 20 20 20 20 20 20 20 20 | 20 20 64 76 61 6c 75 65 | | dvalue|
|00003940| 20 3d 20 73 63 61 6c 65 | 28 74 65 6d 70 29 3b 0a | = scale|(temp);.|
|00003950| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00003960| 20 20 20 20 20 20 20 20 | 20 20 7d 3b 0a 58 20 20 | | };.X |
|00003970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003980| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 20 20 20 20 | }.X | |
|00003990| 20 20 20 20 20 20 20 65 | 6c 73 65 0a 58 20 20 20 | e|lse.X |
|000039a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000039b0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|000039c0| 20 20 20 20 20 20 20 20 | 20 20 77 76 61 6c 75 65 | | wvalue|
|000039d0| 20 3d 20 72 64 62 28 77 | 65 69 67 68 74 73 2c 77 | = rdb(w|eights,w|
|000039e0| 74 73 69 7a 65 29 3b 0a | 58 20 20 20 20 20 20 20 |tsize);.|X |
|000039f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 69 | | i|
|00003a00| 66 20 28 66 69 6c 65 66 | 6f 72 6d 61 74 20 3d 3d |f (filef|ormat ==|
|00003a10| 20 27 42 27 29 0a 58 20 | 20 20 20 20 20 20 20 20 | 'B').X | |
|00003a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a30| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{.X | |
|00003a40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 65 76 | | ev|
|00003a50| 61 6c 75 65 20 3d 20 72 | 64 62 28 77 65 69 67 68 |alue = r|db(weigh|
|00003a60| 74 73 2c 77 74 73 69 7a | 65 29 3b 0a 58 20 20 20 |ts,wtsiz|e);.X |
|00003a70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a80| 20 20 20 20 20 20 20 20 | 64 76 61 6c 75 65 20 3d | |dvalue =|
|00003a90| 20 72 64 62 28 77 65 69 | 67 68 74 73 2c 77 74 73 | rdb(wei|ghts,wts|
|00003aa0| 69 7a 65 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |ize);.X | |
|00003ab0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ac0| 7d 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |};.X | |
|00003ad0| 20 20 20 20 20 20 20 20 | 7d 3b 0a 58 23 69 66 64 | |};.X#ifd|
|00003ae0| 65 66 20 53 59 4d 4d 45 | 54 52 49 43 0a 58 20 20 |ef SYMME|TRIC.X |
|00003af0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|00003b00| 28 77 2d 3e 77 65 69 67 | 68 74 29 20 3d 20 77 76 |(w->weig|ht) = wv|
|00003b10| 61 6c 75 65 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |alue;.X | |
|00003b20| 20 20 20 20 20 20 20 20 | 69 66 20 28 66 69 6c 65 | |if (file|
|00003b30| 66 6f 72 6d 61 74 20 3d | 3d 20 27 52 27 20 7c 7c |format =|= 'R' |||
|00003b40| 20 66 69 6c 65 66 6f 72 | 6d 61 74 20 3d 3d 20 27 | filefor|mat == '|
|00003b50| 42 27 29 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |B').X | |
|00003b60| 20 20 20 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 | | {.X |
|00003b70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003b80| 20 20 2a 28 77 2d 3e 6f | 6c 64 64 77 29 20 3d 20 | *(w->o|lddw) = |
|00003b90| 64 76 61 6c 75 65 3b 0a | 58 20 20 20 20 20 20 20 |dvalue;.|X |
|00003ba0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|00003bb0| 28 77 2d 3e 65 74 61 29 | 20 3d 20 65 76 61 6c 75 |(w->eta)| = evalu|
|00003bc0| 65 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |e;.X | |
|00003bd0| 20 20 20 20 20 20 20 20 | 7d 0a 58 20 20 20 20 20 | |}.X |
|00003be0| 20 20 20 20 20 20 20 20 | 20 20 20 20 65 6c 73 65 | | else|
|00003bf0| 20 2a 28 77 2d 3e 6f 6c | 64 64 77 29 20 3d 20 30 | *(w->ol|ddw) = 0|
|00003c00| 3b 0a 58 23 65 6c 73 65 | 0a 58 20 20 20 20 20 20 |;.X#else|.X |
|00003c10| 20 20 20 20 20 20 20 20 | 20 20 20 77 2d 3e 77 65 | | w->we|
|00003c20| 69 67 68 74 20 3d 20 77 | 76 61 6c 75 65 3b 0a 58 |ight = w|value;.X|
|00003c30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003c40| 20 69 66 20 28 66 69 6c | 65 66 6f 72 6d 61 74 20 | if (fil|eformat |
|00003c50| 3d 3d 20 27 52 27 20 7c | 7c 20 66 69 6c 65 66 6f |== 'R' ||| filefo|
|00003c60| 72 6d 61 74 20 3d 3d 20 | 27 42 27 29 0a 58 20 20 |rmat == |'B').X |
|00003c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003c80| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00003c90| 20 20 20 20 20 20 20 20 | 20 20 20 77 2d 3e 6f 6c | | w->ol|
|00003ca0| 64 64 77 20 3d 20 64 76 | 61 6c 75 65 3b 0a 58 20 |ddw = dv|alue;.X |
|00003cb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003cc0| 20 20 20 20 20 77 2d 3e | 65 74 61 20 3d 20 65 76 | w->|eta = ev|
|00003cd0| 61 6c 75 65 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |alue;.X | |
|00003ce0| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0a 58 20 20 | | }.X |
|00003cf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 65 | | e|
|00003d00| 6c 73 65 20 77 2d 3e 6f | 6c 64 64 77 20 3d 20 30 |lse w->o|lddw = 0|
|00003d10| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 20 20 20 20 20 |;.X#endi|f.X |
|00003d20| 20 20 20 20 20 20 20 20 | 20 20 20 20 77 20 3d 20 | | w = |
|00003d30| 77 2d 3e 6e 65 78 74 3b | 0a 58 20 20 20 20 20 20 |w->next;|.X |
|00003d40| 20 20 20 20 20 20 20 20 | 20 7d 3b 0a 58 20 20 20 | | };.X |
|00003d50| 20 20 20 20 20 20 20 20 | 20 75 20 3d 20 75 2d 3e | | u = u->|
|00003d60| 6e 65 78 74 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |next;.X | |
|00003d70| 20 7d 3b 0a 58 20 20 20 | 20 20 20 20 20 6c 61 79 | };.X | lay|
|00003d80| 65 72 20 3d 20 6c 61 79 | 65 72 2d 3e 6e 65 78 74 |er = lay|er->next|
|00003d90| 3b 0a 58 20 20 20 20 20 | 20 7d 3b 0a 58 20 20 20 |;.X | };.X |
|00003da0| 63 6c 6f 73 65 28 77 65 | 69 67 68 74 73 29 3b 0a |close(we|ights);.|
|00003db0| 58 7d 0a 58 0a 58 76 6f | 69 64 20 70 72 69 6e 74 |X}.X.Xvo|id print|
|00003dc0| 77 65 69 67 68 74 73 28 | 75 29 20 20 20 2f 2a 20 |weights(|u) /* |
|00003dd0| 70 72 69 6e 74 20 74 68 | 65 20 77 65 69 67 68 74 |print th|e weight|
|00003de0| 73 20 6c 65 61 64 69 6e | 67 20 69 6e 74 6f 20 75 |s leadin|g into u|
|00003df0| 6e 69 74 20 75 20 2a 2f | 0a 58 55 4e 49 54 20 2a |nit u */|.XUNIT *|
|00003e00| 75 3b 0a 58 0a 58 7b 57 | 54 4e 4f 44 45 20 2a 77 |u;.X.X{W|TNODE *w|
|00003e10| 3b 0a 58 20 55 4e 49 54 | 20 2a 62 75 6e 69 74 3b |;.X UNIT| *bunit;|
|00003e20| 0a 58 20 57 54 54 59 50 | 45 20 76 61 6c 75 65 3b |.X WTTYP|E value;|
|00003e30| 0a 58 23 69 66 64 65 66 | 20 49 4e 54 45 47 45 52 |.X#ifdef| INTEGER|
|00003e40| 0a 58 20 69 6e 74 20 73 | 75 6d 2c 20 69 6e 70 75 |.X int s|um, inpu|
|00003e50| 74 3b 0a 58 23 65 6c 73 | 65 0a 58 20 64 6f 75 62 |t;.X#els|e.X doub|
|00003e60| 6c 65 20 73 75 6d 2c 20 | 69 6e 70 75 74 3b 0a 58 |le sum, |input;.X|
|00003e70| 23 65 6e 64 69 66 0a 58 | 20 77 20 3d 20 28 57 54 |#endif.X| w = (WT|
|00003e80| 4e 4f 44 45 20 2a 29 20 | 75 2d 3e 77 74 6c 69 73 |NODE *) |u->wtlis|
|00003e90| 74 3b 0a 58 20 73 75 6d | 20 3d 20 30 3b 0a 58 20 |t;.X sum| = 0;.X |
|00003ea0| 70 72 69 6e 74 66 28 22 | 6c 61 79 65 72 20 75 6e |printf("|layer un|
|00003eb0| 69 74 20 20 75 6e 69 74 | 20 76 61 6c 75 65 20 20 |it unit| value |
|00003ec0| 20 20 20 77 65 69 67 68 | 74 20 20 20 20 20 20 20 | weigh|t |
|00003ed0| 20 20 69 6e 70 75 74 20 | 66 72 6f 6d 20 75 6e 69 | input |from uni|
|00003ee0| 74 5c 6e 22 29 3b 0a 58 | 20 77 68 69 6c 65 20 28 |t\n");.X| while (|
|00003ef0| 77 20 21 3d 20 4e 55 4c | 4c 29 0a 58 20 20 20 20 |w != NUL|L).X |
|00003f00| 7b 0a 58 20 20 20 20 20 | 20 62 75 6e 69 74 20 3d |{.X | bunit =|
|00003f10| 20 28 55 4e 49 54 20 2a | 29 20 77 2d 3e 62 61 63 | (UNIT *|) w->bac|
|00003f20| 6b 75 6e 69 74 3b 0a 58 | 23 69 66 64 65 66 20 53 |kunit;.X|#ifdef S|
|00003f30| 59 4d 4d 45 54 52 49 43 | 0a 58 20 20 20 20 20 20 |YMMETRIC|.X |
|00003f40| 76 61 6c 75 65 20 3d 20 | 2a 28 77 2d 3e 77 65 69 |value = |*(w->wei|
|00003f50| 67 68 74 29 3b 0a 58 23 | 65 6c 73 65 0a 58 20 20 |ght);.X#|else.X |
|00003f60| 20 20 20 20 76 61 6c 75 | 65 20 3d 20 77 2d 3e 77 | valu|e = w->w|
|00003f70| 65 69 67 68 74 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |eight;.X|#endif.X|
|00003f80| 20 20 20 20 20 20 69 6e | 70 75 74 20 3d 20 76 61 | in|put = va|
|00003f90| 6c 75 65 20 2a 20 62 75 | 6e 69 74 2d 3e 6f 6a 3b |lue * bu|nit->oj;|
|00003fa0| 0a 58 23 69 66 64 65 66 | 20 49 4e 54 45 47 45 52 |.X#ifdef| INTEGER|
|00003fb0| 0a 58 20 20 20 20 20 20 | 69 6e 70 75 74 20 3d 20 |.X |input = |
|00003fc0| 69 6e 70 75 74 20 2f 20 | 31 30 32 34 3b 0a 58 23 |input / |1024;.X#|
|00003fd0| 65 6e 64 69 66 0a 58 20 | 20 20 20 20 20 73 75 6d |endif.X | sum|
|00003fe0| 20 3d 20 73 75 6d 20 2b | 20 69 6e 70 75 74 3b 0a | = sum +| input;.|
|00003ff0| 58 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 25 |X p|rintf("%|
|00004000| 33 64 20 20 20 22 2c 62 | 75 6e 69 74 2d 3e 6c 61 |3d ",b|unit->la|
|00004010| 79 65 72 6e 75 6d 62 65 | 72 29 3b 0a 58 20 20 20 |yernumbe|r);.X |
|00004020| 20 20 20 69 66 20 28 62 | 75 6e 69 74 2d 3e 75 6e | if (b|unit->un|
|00004030| 69 74 6e 75 6d 62 65 72 | 20 3d 3d 20 33 32 37 36 |itnumber| == 3276|
|00004040| 37 29 20 70 72 69 6e 74 | 66 28 22 20 20 20 74 20 |7) print|f(" t |
|00004050| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 65 6c |");.X | el|
|00004060| 73 65 20 70 72 69 6e 74 | 66 28 22 25 34 64 20 22 |se print|f("%4d "|
|00004070| 2c 62 75 6e 69 74 2d 3e | 75 6e 69 74 6e 75 6d 62 |,bunit->|unitnumb|
|00004080| 65 72 29 3b 0a 58 20 20 | 20 20 20 20 70 72 69 6e |er);.X | prin|
|00004090| 74 66 28 22 25 31 30 2e | 35 6c 66 20 20 25 31 30 |tf("%10.|5lf %10|
|000040a0| 2e 35 6c 66 20 20 22 2c | 75 6e 73 63 61 6c 65 28 |.5lf ",|unscale(|
|000040b0| 62 75 6e 69 74 2d 3e 6f | 6a 29 2c 75 6e 73 63 61 |bunit->o|j),unsca|
|000040c0| 6c 65 69 6e 74 28 76 61 | 6c 75 65 29 29 3b 0a 58 |leint(va|lue));.X|
|000040d0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 25 31 | pr|intf("%1|
|000040e0| 38 2e 35 6c 66 5c 6e 22 | 2c 75 6e 73 63 61 6c 65 |8.5lf\n"|,unscale|
|000040f0| 69 6e 74 28 69 6e 70 75 | 74 29 29 3b 0a 58 20 20 |int(inpu|t));.X |
|00004100| 20 20 20 20 77 20 3d 20 | 77 2d 3e 6e 65 78 74 3b | w = |w->next;|
|00004110| 0a 58 20 20 20 20 7d 3b | 0a 58 20 70 72 69 6e 74 |.X };|.X print|
|00004120| 66 28 22 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |f(" | |
|00004130| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004140| 20 20 20 20 20 20 20 20 | 20 22 29 3b 0a 58 20 70 | | ");.X p|
|00004150| 72 69 6e 74 66 28 22 73 | 75 6d 20 3d 20 25 39 2e |rintf("s|um = %9.|
|00004160| 35 6c 66 5c 6e 5c 6e 22 | 2c 75 6e 73 63 61 6c 65 |5lf\n\n"|,unscale|
|00004170| 69 6e 74 28 73 75 6d 29 | 29 3b 0a 58 7d 0a 58 0a |int(sum)|);.X}.X.|
|00004180| 58 76 6f 69 64 20 68 65 | 6c 70 28 29 0a 58 7b 0a |Xvoid he|lp().X{.|
|00004190| 58 20 20 70 72 69 6e 74 | 66 28 22 5c 6e 22 29 3b |X print|f("\n");|
|000041a0| 0a 58 20 20 63 68 20 3d | 20 72 65 61 64 63 68 28 |.X ch =| readch(|
|000041b0| 29 3b 0a 58 20 20 77 68 | 69 6c 65 20 28 63 68 20 |);.X wh|ile (ch |
|000041c0| 3d 3d 20 27 20 27 20 26 | 26 20 63 68 20 21 3d 20 |== ' ' &|& ch != |
|000041d0| 27 5c 6e 27 29 20 63 68 | 20 3d 20 72 65 61 64 63 |'\n') ch| = readc|
|000041e0| 68 28 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |h();.X | |
|000041f0| 73 77 69 74 63 68 28 63 | 68 29 20 7b 0a 58 64 65 |switch(c|h) {.Xde|
|00004200| 66 61 75 6c 74 20 3a 20 | 70 72 69 6e 74 66 28 22 |fault : |printf("|
|00004210| 66 6f 72 20 68 65 6c 70 | 20 74 79 70 65 20 68 20 |for help| type h |
|00004220| 66 6f 6c 6c 6f 77 65 64 | 20 62 79 20 6c 65 74 74 |followed| by lett|
|00004230| 65 72 20 6f 66 20 63 6f | 6d 6d 61 6e 64 5c 6e 22 |er of co|mmand\n"|
|00004240| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 62 72 |);.X | br|
|00004250| 65 61 6b 3b 0a 58 63 61 | 73 65 20 27 3f 27 3a 20 |eak;.Xca|se '?': |
|00004260| 70 72 69 6e 74 66 28 22 | 3f 20 70 72 69 6e 74 73 |printf("|? prints|
|00004270| 20 70 72 6f 67 72 61 6d | 20 73 74 61 74 75 73 20 | program| status |
|00004280| 61 6e 64 20 70 61 72 61 | 6d 65 74 65 72 73 2e 5c |and para|meters.\|
|00004290| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |n");.X | |
|000042a0| 62 72 65 61 6b 3b 0a 58 | 63 61 73 65 20 27 2a 27 |break;.X|case '*'|
|000042b0| 3a 20 70 72 69 6e 74 66 | 28 22 2a 20 61 74 20 74 |: printf|("* at t|
|000042c0| 68 65 20 62 65 67 69 6e | 6e 69 6e 67 20 6f 66 20 |he begin|ning of |
|000042d0| 61 20 6c 69 6e 65 20 6d | 61 6b 65 73 20 74 68 65 |a line m|akes the|
|000042e0| 20 6c 69 6e 65 20 61 22 | 29 3b 0a 58 20 20 20 20 | line a"|);.X |
|000042f0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 20 63 | pr|intf(" c|
|00004300| 6f 6d 6d 65 6e 74 2e 5c | 6e 22 29 3b 0a 58 20 20 |omment.\|n");.X |
|00004310| 20 20 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 | |break;.X|
|00004320| 63 61 73 65 20 27 21 27 | 3a 20 70 72 69 6e 74 66 |case '!'|: printf|
|00004330| 28 22 45 6e 74 65 72 20 | 55 4e 49 58 20 63 6f 6d |("Enter |UNIX com|
|00004340| 6d 61 6e 64 73 20 61 66 | 74 65 72 20 74 68 65 20 |mands af|ter the |
|00004350| 21 2e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |!.\n");.|X |
|00004360| 20 20 20 62 72 65 61 6b | 3b 0a 58 63 61 73 65 20 | break|;.Xcase |
|00004370| 27 41 27 3a 20 70 72 69 | 6e 74 66 28 22 41 20 69 |'A': pri|ntf("A i|
|00004380| 73 20 75 73 65 64 20 74 | 6f 20 73 65 74 20 74 68 |s used t|o set th|
|00004390| 65 20 64 65 74 61 69 6c | 73 20 6f 66 20 74 68 65 |e detail|s of the|
|000043a0| 20 61 6c 67 6f 72 69 74 | 68 6d 2e 20 22 29 3b 0a | algorit|hm. ");.|
|000043b0| 58 20 20 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |X | print|
|000043c0| 66 28 22 4f 6e 65 20 6f | 72 20 6d 6f 72 65 5c 6e |f("One o|r more\n|
|000043d0| 6f 66 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |of the f|ollowing|
|000043e0| 20 63 6f 6d 6d 61 6e 64 | 73 20 63 61 6e 20 67 6f | command|s can go|
|000043f0| 20 6f 6e 20 22 29 3b 0a | 58 20 20 20 20 20 20 20 | on ");.|X |
|00004400| 20 20 20 70 72 69 6e 74 | 66 28 22 74 68 65 20 73 | print|f("the s|
|00004410| 61 6d 65 20 6c 69 6e 65 | 20 61 73 20 74 68 65 20 |ame line| as the |
|00004420| 27 41 27 3a 5c 6e 5c 6e | 22 29 3b 0a 58 20 20 20 |'A':\n\n|");.X |
|00004430| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 61 | p|rintf("a|
|00004440| 20 70 20 73 65 74 73 20 | 74 68 65 20 70 69 65 63 | p sets |the piec|
|00004450| 65 77 69 73 65 20 6c 69 | 6e 65 61 72 20 61 63 74 |ewise li|near act|
|00004460| 69 76 61 74 69 6f 6e 20 | 66 75 6e 63 74 69 6f 6e |ivation |function|
|00004470| 5c 6e 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |\n");.X | |
|00004480| 20 70 72 69 6e 74 66 28 | 22 61 20 73 20 73 65 74 | printf(|"a s set|
|00004490| 73 20 74 68 65 20 73 6d | 6f 6f 74 68 20 61 63 74 |s the sm|ooth act|
|000044a0| 69 76 61 74 69 6f 6e 20 | 66 75 6e 63 74 69 6f 6e |ivation |function|
|000044b0| 20 28 72 62 70 20 6f 6e | 6c 79 29 2e 22 29 3b 0a | (rbp on|ly).");.|
|000044c0| 58 20 20 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |X | print|
|000044d0| 66 28 22 5c 6e 5c 6e 62 | 20 2b 20 77 69 6c 6c 20 |f("\n\nb| + will |
|000044e0| 62 61 63 6b 70 72 6f 70 | 61 67 61 74 65 20 65 72 |backprop|agate er|
|000044f0| 72 6f 72 73 22 29 3b 0a | 58 20 20 20 20 20 20 20 |rors");.|X |
|00004500| 20 20 20 70 72 69 6e 74 | 66 28 22 20 65 76 65 6e | print|f(" even|
|00004510| 20 77 68 65 6e 20 61 20 | 75 6e 69 74 20 69 73 20 | when a |unit is |
|00004520| 63 6c 6f 73 65 20 74 6f | 20 69 74 27 73 20 74 61 |close to| it's ta|
|00004530| 72 67 65 74 2e 5c 6e 22 | 29 3b 0a 58 20 20 20 20 |rget.\n"|);.X |
|00004540| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 62 20 | pr|intf("b |
|00004550| 2d 20 77 69 6c 6c 20 6e | 6f 74 20 62 61 63 6b 70 |- will n|ot backp|
|00004560| 72 6f 70 61 67 61 74 65 | 20 65 72 72 6f 72 73 20 |ropagate| errors |
|00004570| 77 68 65 6e 20 61 22 29 | 3b 0a 58 20 20 20 20 20 |when a")|;.X |
|00004580| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 20 75 6e | pri|ntf(" un|
|00004590| 69 74 20 69 73 20 63 6c | 6f 73 65 20 74 6f 20 69 |it is cl|ose to i|
|000045a0| 74 27 73 20 74 61 72 67 | 65 74 2e 5c 6e 5c 6e 22 |t's targ|et.\n\n"|
|000045b0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|000045c0| 69 6e 74 66 28 22 44 20 | 3c 72 65 61 6c 3e 20 77 |intf("D |<real> w|
|000045d0| 69 6c 6c 20 73 65 74 20 | 74 68 65 20 73 68 61 72 |ill set |the shar|
|000045e0| 70 6e 65 73 73 20 6f 66 | 20 74 68 65 20 73 69 67 |pness of| the sig|
|000045f0| 6d 6f 69 64 20 74 6f 22 | 29 3b 0a 58 20 20 20 20 |moid to"|);.X |
|00004600| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 20 3c | pr|intf(" <|
|00004610| 72 65 61 6c 3e 2e 5c 6e | 5c 6e 22 29 3b 0a 58 20 |real>.\n|\n");.X |
|00004620| 20 20 20 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 | | printf(|
|00004630| 22 64 20 64 20 77 69 6c | 6c 20 75 73 65 20 74 68 |"d d wil|l use th|
|00004640| 65 20 64 65 72 69 76 61 | 74 69 76 65 20 66 72 6f |e deriva|tive fro|
|00004650| 6d 20 74 68 65 20 22 29 | 3b 0a 58 20 20 20 20 20 |m the ")|;.X |
|00004660| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 64 69 66 | pri|ntf("dif|
|00004670| 66 65 72 65 6e 74 69 61 | 6c 20 73 74 65 70 20 73 |ferentia|l step s|
|00004680| 69 7a 65 20 61 6c 67 6f | 72 69 74 68 6d 2e 5c 6e |ize algo|rithm.\n|
|00004690| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 70 |");.X | p|
|000046a0| 72 69 6e 74 66 28 22 64 | 20 66 20 75 73 65 73 20 |rintf("d| f uses |
|000046b0| 46 61 68 6c 6d 61 6e 27 | 73 20 64 65 72 69 76 61 |Fahlman'|s deriva|
|000046c0| 74 69 76 65 2e 5c 6e 22 | 29 3b 0a 58 20 20 20 20 |tive.\n"|);.X |
|000046d0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 64 20 | pr|intf("d |
|000046e0| 6f 20 75 73 65 73 20 74 | 68 65 20 6f 72 69 67 69 |o uses t|he origi|
|000046f0| 6e 61 6c 20 64 65 72 69 | 76 61 74 69 76 65 2e 5c |nal deri|vative.\|
|00004700| 6e 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |n\n");.X| |
|00004710| 20 20 70 72 69 6e 74 66 | 28 22 6c 20 3c 72 65 61 | printf|("l <rea|
|00004720| 6c 3e 20 6c 69 6d 69 74 | 73 20 74 68 65 20 77 65 |l> limit|s the we|
|00004730| 69 67 68 74 73 20 74 6f | 20 62 65 74 77 65 65 6e |ights to| between|
|00004740| 20 2b 3c 72 65 61 6c 3e | 20 22 29 3b 0a 58 20 20 | +<real>| ");.X |
|00004750| 20 20 20 20 20 20 20 20 | 70 72 69 6e 74 66 28 22 | |printf("|
|00004760| 61 6e 64 20 2d 3c 72 65 | 61 6c 3e 2e 20 20 54 68 |and -<re|al>. Th|
|00004770| 65 20 64 65 66 61 75 6c | 74 5c 6e 20 20 20 20 20 |e defaul|t\n |
|00004780| 20 20 20 20 69 73 20 74 | 6f 20 6e 6f 74 20 63 68 | is t|o not ch|
|00004790| 65 63 6b 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |eck");.X| |
|000047a0| 20 20 70 72 69 6e 74 66 | 28 22 2e 20 20 54 6f 20 | printf|(". To |
|000047b0| 72 65 73 65 74 20 74 6f | 20 6e 6f 74 20 63 68 65 |reset to| not che|
|000047c0| 63 6b 2c 20 75 73 65 20 | 6c 20 30 2e 5c 6e 5c 6e |ck, use |l 0.\n\n|
|000047d0| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 70 |");.X | p|
|000047e0| 72 69 6e 74 66 28 22 73 | 20 3c 69 6e 74 3e 20 77 |rintf("s| <int> w|
|000047f0| 69 6c 6c 20 73 6b 69 70 | 20 70 61 74 74 65 72 6e |ill skip| pattern|
|00004800| 73 20 74 68 61 74 20 68 | 61 76 65 20 62 65 65 6e |s that h|ave been|
|00004810| 20 6c 65 61 72 6e 65 64 | 22 29 3b 0a 58 20 20 20 | learned|");.X |
|00004820| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 20 | p|rintf(" |
|00004830| 66 6f 72 20 3c 69 6e 74 | 3e 20 69 74 65 72 61 74 |for <int|> iterat|
|00004840| 69 6f 6e 73 2e 5c 6e 5c | 6e 22 29 3b 0a 58 20 20 |ions.\n\|n");.X |
|00004850| 20 20 20 20 20 20 20 20 | 70 72 69 6e 74 66 28 22 | |printf("|
|00004860| 75 20 63 20 77 69 6c 6c | 20 75 73 65 20 74 68 65 |u c will| use the|
|00004870| 20 63 6f 6e 74 69 6e 75 | 6f 75 73 20 75 70 64 61 | continu|ous upda|
|00004880| 74 65 20 6d 65 74 68 6f | 64 2e 5c 6e 22 29 3b 0a |te metho|d.\n");.|
|00004890| 58 20 20 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |X | print|
|000048a0| 66 28 22 75 20 43 20 77 | 69 6c 6c 20 75 73 65 20 |f("u C w|ill use |
|000048b0| 74 68 65 20 63 6f 6e 74 | 69 6e 75 6f 75 73 20 75 |the cont|inuous u|
|000048c0| 70 64 61 74 65 20 6d 65 | 74 68 6f 64 20 77 69 74 |pdate me|thod wit|
|000048d0| 68 20 74 68 65 22 29 3b | 0a 58 20 20 20 20 20 20 |h the");|.X |
|000048e0| 20 20 20 20 70 72 69 6e | 74 66 28 22 20 64 69 66 | prin|tf(" dif|
|000048f0| 66 65 72 65 6e 74 69 61 | 6c 20 73 74 65 70 20 73 |ferentia|l step s|
|00004900| 69 7a 65 20 65 74 61 73 | 2e 5c 6e 22 29 3b 0a 58 |ize etas|.\n");.X|
|00004910| 20 20 20 20 20 20 20 20 | 20 20 70 72 69 6e 74 66 | | printf|
|00004920| 28 22 75 20 64 20 77 69 | 6c 6c 20 75 73 65 20 74 |("u d wi|ll use t|
|00004930| 68 65 20 64 69 66 66 65 | 72 65 6e 74 69 61 6c 20 |he diffe|rential |
|00004940| 73 74 65 70 20 73 69 7a | 65 20 75 70 64 61 74 65 |step siz|e update|
|00004950| 2e 5c 6e 75 20 22 29 3b | 0a 58 20 20 20 20 20 20 |.\nu ");|.X |
|00004960| 20 20 20 20 70 72 69 6e | 74 66 28 22 6a 20 77 69 | prin|tf("j wi|
|00004970| 6c 6c 20 75 73 65 20 4a | 61 63 6f 62 27 73 20 64 |ll use J|acob's d|
|00004980| 65 6c 74 61 2d 62 61 72 | 20 64 65 6c 74 61 20 75 |elta-bar| delta u|
|00004990| 70 64 61 74 65 20 6d 65 | 74 68 6f 64 2e 5c 6e 22 |pdate me|thod.\n"|
|000049a0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|000049b0| 69 6e 74 66 28 22 75 20 | 6f 20 77 69 6c 6c 20 75 |intf("u |o will u|
|000049c0| 73 65 20 74 68 65 20 6f | 72 69 67 69 6e 61 6c 20 |se the o|riginal |
|000049d0| 77 65 69 67 68 74 20 75 | 70 64 61 74 65 20 6d 65 |weight u|pdate me|
|000049e0| 74 68 6f 64 2e 5c 6e 22 | 29 3b 0a 58 20 20 20 20 |thod.\n"|);.X |
|000049f0| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 63 61 | br|eak;.Xca|
|00004a00| 73 65 20 27 61 27 3a 20 | 70 72 69 6e 74 66 28 22 |se 'a': |printf("|
|00004a10| 61 20 3c 72 65 61 6c 3e | 20 73 65 74 73 20 74 68 |a <real>| sets th|
|00004a20| 65 20 6d 6f 6d 65 6e 74 | 75 6d 20 70 61 72 61 6d |e moment|um param|
|00004a30| 65 74 65 72 2c 20 61 6c | 70 68 61 2c 20 74 6f 22 |eter, al|pha, to"|
|00004a40| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00004a50| 69 6e 74 66 28 22 20 3c | 72 65 61 6c 3e 2e 5c 6e |intf(" <|real>.\n|
|00004a60| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 62 |");.X | b|
|00004a70| 72 65 61 6b 3b 0a 58 63 | 61 73 65 20 27 62 27 3a |reak;.Xc|ase 'b':|
|00004a80| 20 70 72 69 6e 74 66 28 | 22 62 20 3c 69 6e 74 31 | printf(|"b <int1|
|00004a90| 3e 20 3c 69 6e 74 32 3e | 20 2e 2e 2e 20 3c 69 6e |> <int2>| ... <in|
|00004aa0| 74 31 30 3e 20 70 75 74 | 73 20 61 20 63 61 72 72 |t10> put|s a carr|
|00004ab0| 69 61 67 65 20 72 65 74 | 75 72 6e 22 29 3b 0a 58 |iage ret|urn");.X|
|00004ac0| 20 20 20 20 20 20 20 20 | 20 20 70 72 69 6e 74 66 | | printf|
|00004ad0| 28 22 20 61 66 74 65 72 | 20 65 61 63 68 20 3c 69 |(" after| each <i|
|00004ae0| 6e 74 69 3e 5c 6e 76 61 | 6c 75 65 73 20 77 68 65 |nti>\nva|lues whe|
|00004af0| 6e 20 74 68 65 20 6f 75 | 74 70 75 74 20 66 6f 72 |n the ou|tput for|
|00004b00| 6d 61 74 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |mat");.X| |
|00004b10| 20 20 70 72 69 6e 74 66 | 28 22 20 69 73 20 72 65 | printf|(" is re|
|00004b20| 61 6c 20 61 6e 64 20 69 | 6e 73 65 72 74 73 20 61 |al and i|nserts a|
|00004b30| 20 62 6c 61 6e 6b 20 61 | 66 74 65 72 20 65 61 63 | blank a|fter eac|
|00004b40| 68 20 3c 69 6e 74 69 3e | 5c 6e 22 29 3b 0a 58 20 |h <inti>|\n");.X |
|00004b50| 20 20 20 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 | | printf(|
|00004b60| 22 76 61 6c 75 65 20 69 | 66 20 74 68 65 20 66 6f |"value i|f the fo|
|00004b70| 72 6d 61 74 20 69 73 20 | 63 6f 6e 64 65 6e 73 65 |rmat is |condense|
|00004b80| 64 2e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |d.\n");.|X |
|00004b90| 20 20 20 62 72 65 61 6b | 3b 0a 58 63 61 73 65 20 | break|;.Xcase |
|00004ba0| 27 43 27 3a 20 70 72 69 | 6e 74 66 28 22 43 20 63 |'C': pri|ntf("C c|
|00004bb0| 6c 65 61 72 73 20 74 68 | 65 20 6e 65 74 77 6f 72 |lears th|e networ|
|00004bc0| 6b 20 61 6e 64 20 6f 74 | 68 65 72 20 72 65 6c 65 |k and ot|her rele|
|00004bd0| 76 61 6e 74 20 70 61 72 | 61 6d 65 74 65 72 73 22 |vant par|ameters"|
|00004be0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00004bf0| 69 6e 74 66 28 22 20 73 | 6f 20 74 68 65 20 70 72 |intf(" s|o the pr|
|00004c00| 6f 62 6c 65 6d 20 63 61 | 6e 20 62 65 20 72 65 2d |oblem ca|n be re-|
|00004c10| 72 75 6e 5c 6e 77 69 74 | 68 20 64 69 66 66 65 72 |run\nwit|h differ|
|00004c20| 65 6e 74 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |ent");.X| |
|00004c30| 20 20 70 72 69 6e 74 66 | 28 22 20 69 6e 69 74 69 | printf|(" initi|
|00004c40| 61 6c 20 77 65 69 67 68 | 74 73 2e 20 20 41 64 64 |al weigh|ts. Add|
|00004c50| 65 64 20 68 69 64 64 65 | 6e 20 75 6e 69 74 73 20 |ed hidde|n units |
|00004c60| 61 72 65 20 6e 6f 74 22 | 29 3b 0a 58 20 20 20 20 |are not"|);.X |
|00004c70| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 20 72 | pr|intf(" r|
|00004c80| 65 6d 6f 76 65 64 2e 5c | 6e 22 29 3b 0a 58 20 20 |emoved.\|n");.X |
|00004c90| 20 20 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 | |break;.X|
|00004ca0| 0a 58 23 69 66 6e 64 65 | 66 20 53 59 4d 4d 45 54 |.X#ifnde|f SYMMET|
|00004cb0| 52 49 43 0a 58 63 61 73 | 65 20 27 63 27 3a 20 70 |RIC.Xcas|e 'c': p|
|00004cc0| 72 69 6e 74 66 28 22 63 | 20 3c 69 6e 74 31 3e 20 |rintf("c| <int1> |
|00004cd0| 3c 69 6e 74 32 3e 20 3c | 69 6e 74 33 3e 20 3c 69 |<int2> <|int3> <i|
|00004ce0| 6e 74 34 3e 5c 6e 22 29 | 3b 0a 58 20 20 20 20 20 |nt4>\n")|;.X |
|00004cf0| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 41 64 64 | pri|ntf("Add|
|00004d00| 73 20 61 20 63 6f 6e 6e | 65 63 74 69 6f 6e 20 66 |s a conn|ection f|
|00004d10| 72 6f 6d 20 6c 61 79 65 | 72 20 3c 69 6e 74 31 3e |rom laye|r <int1>|
|00004d20| 20 75 6e 69 74 20 3c 69 | 6e 74 32 3e 5c 6e 22 29 | unit <i|nt2>\n")|
|00004d30| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 70 72 69 |;.X | pri|
|00004d40| 6e 74 66 28 22 74 6f 20 | 6c 61 79 65 72 20 3c 69 |ntf("to |layer <i|
|00004d50| 6e 74 33 3e 20 75 6e 69 | 74 20 3c 69 6e 74 34 3e |nt3> uni|t <int4>|
|00004d60| 2e 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |.\n");.X| |
|00004d70| 20 20 62 72 65 61 6b 3b | 0a 58 23 65 6e 64 69 66 | break;|.X#endif|
|00004d80| 0a 58 0a 58 63 61 73 65 | 20 27 45 27 3a 20 70 72 |.X.Xcase| 'E': pr|
|00004d90| 69 6e 74 66 28 22 45 31 | 20 65 63 68 6f 73 20 69 |intf("E1| echos i|
|00004da0| 6e 70 75 74 3b 20 45 30 | 20 74 75 72 6e 73 20 6f |nput; E0| turns o|
|00004db0| 66 66 20 65 63 68 6f 20 | 6f 66 20 69 6e 70 75 74 |ff echo |of input|
|00004dc0| 2e 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |.\n");.X| |
|00004dd0| 20 20 62 72 65 61 6b 3b | 0a 58 63 61 73 65 20 27 | break;|.Xcase '|
|00004de0| 65 27 3a 20 70 72 69 6e | 74 66 28 22 65 20 3c 72 |e': prin|tf("e <r|
|00004df0| 65 61 6c 31 3e 20 3c 72 | 65 61 6c 32 3e 20 73 65 |eal1> <r|eal2> se|
|00004e00| 74 73 20 65 74 61 2c 20 | 74 68 65 20 6c 65 61 72 |ts eta, |the lear|
|00004e10| 6e 69 6e 67 20 72 61 74 | 65 2c 20 74 6f 22 29 3b |ning rat|e, to");|
|00004e20| 0a 58 20 20 20 20 20 20 | 20 20 20 20 70 72 69 6e |.X | prin|
|00004e30| 74 66 28 22 20 3c 72 65 | 61 6c 31 3e 20 61 6e 64 |tf(" <re|al1> and|
|00004e40| 20 69 66 5c 6e 22 29 3b | 0a 58 20 20 20 20 20 20 | if\n");|.X |
|00004e50| 20 20 20 20 70 72 69 6e | 74 66 28 22 3c 72 65 61 | prin|tf("<rea|
|00004e60| 6c 32 3e 20 69 73 20 70 | 72 65 73 65 6e 74 2c 20 |l2> is p|resent, |
|00004e70| 65 74 61 32 20 6f 66 20 | 74 68 65 20 64 69 66 66 |eta2 of |the diff|
|00004e80| 65 72 65 6e 74 69 61 6c | 22 29 3b 0a 58 20 20 20 |erential|");.X |
|00004e90| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 20 | p|rintf(" |
|00004ea0| 73 74 65 70 20 73 69 7a | 65 20 61 6c 67 6f 72 69 |step siz|e algori|
|00004eb0| 74 68 6d 5c 6e 69 73 20 | 73 65 74 20 74 6f 20 3c |thm\nis |set to <|
|00004ec0| 72 65 61 6c 32 3e 2e 20 | 20 49 66 20 22 29 3b 0a |real2>. | If ");.|
|00004ed0| 58 20 20 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |X | print|
|00004ee0| 66 28 22 3c 72 65 61 6c | 32 3e 20 69 73 20 6e 6f |f("<real|2> is no|
|00004ef0| 74 20 70 72 65 73 65 6e | 74 2c 20 65 74 61 32 20 |t presen|t, eta2 |
|00004f00| 3d 20 65 74 61 20 2f 20 | 31 30 2e 5c 6e 22 29 3b |= eta / |10.\n");|
|00004f10| 0a 58 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 |.X | brea|
|00004f20| 6b 3b 0a 58 63 61 73 65 | 20 27 66 27 3a 20 70 72 |k;.Xcase| 'f': pr|
|00004f30| 69 6e 74 66 28 22 66 20 | 69 73 20 75 73 65 64 20 |intf("f |is used |
|00004f40| 74 6f 20 73 65 74 20 74 | 68 65 20 69 6e 70 75 74 |to set t|he input|
|00004f50| 20 61 6e 64 20 6f 75 74 | 70 75 74 20 66 6f 72 6d | and out|put form|
|00004f60| 61 74 73 20 66 6f 72 22 | 29 3b 0a 58 20 20 20 20 |ats for"|);.X |
|00004f70| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 20 64 | pr|intf(" d|
|00004f80| 61 74 61 2e 5c 6e 4f 6e | 65 20 6f 72 20 6d 6f 72 |ata.\nOn|e or mor|
|00004f90| 65 20 6f 66 20 74 68 65 | 20 66 6f 6c 6c 6f 77 69 |e of the| followi|
|00004fa0| 6e 67 20 63 6f 6d 6d 61 | 6e 64 73 20 63 61 6e 22 |ng comma|nds can"|
|00004fb0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00004fc0| 69 6e 74 66 28 22 20 67 | 6f 20 6f 6e 20 74 68 65 |intf(" g|o on the|
|00004fd0| 20 6c 69 6e 65 3a 5c 6e | 5c 6e 22 29 3b 0a 58 20 | line:\n|\n");.X |
|00004fe0| 20 20 20 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 | | printf(|
|00004ff0| 22 69 20 63 20 77 69 6c | 6c 20 72 65 61 64 20 76 |"i c wil|l read v|
|00005000| 61 6c 75 65 73 20 69 6e | 20 70 61 74 74 65 72 6e |alues in| pattern|
|00005010| 73 20 61 73 20 63 6f 6d | 70 72 65 73 73 65 64 2e |s as com|pressed.|
|00005020| 5c 6e 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |\n");.X | |
|00005030| 20 70 72 69 6e 74 66 28 | 22 69 20 72 20 77 69 6c | printf(|"i r wil|
|00005040| 6c 20 72 65 61 64 20 76 | 61 6c 75 65 73 20 69 6e |l read v|alues in|
|00005050| 20 70 61 74 74 65 72 6e | 73 20 61 72 65 20 72 65 | pattern|s are re|
|00005060| 61 6c 73 2e 5c 6e 5c 6e | 22 29 3b 0a 58 20 20 20 |als.\n\n|");.X |
|00005070| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 6f | p|rintf("o|
|00005080| 20 61 20 77 69 6c 6c 20 | 77 72 69 74 65 20 6e 6f | a will |write no|
|00005090| 64 65 20 76 61 6c 75 65 | 73 20 61 73 20 61 6e 61 |de value|s as ana|
|000050a0| 6c 6f 67 20 63 6f 6d 70 | 72 65 73 73 65 64 2e 5c |log comp|ressed.\|
|000050b0| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |n");.X | |
|000050c0| 70 72 69 6e 74 66 28 22 | 6f 20 63 20 77 69 6c 6c |printf("|o c will|
|000050d0| 20 77 72 69 74 65 20 6e | 6f 64 65 20 76 61 6c 75 | write n|ode valu|
|000050e0| 65 73 20 61 73 20 63 6f | 6d 70 72 65 73 73 65 64 |es as co|mpressed|
|000050f0| 2e 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |.\n");.X| |
|00005100| 20 20 70 72 69 6e 74 66 | 28 22 6f 20 72 20 77 69 | printf|("o r wi|
|00005110| 6c 6c 20 77 72 69 74 65 | 20 6e 6f 64 65 20 76 61 |ll write| node va|
|00005120| 6c 75 65 73 20 61 73 20 | 72 65 61 6c 2e 5c 6e 5c |lues as |real.\n\|
|00005130| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |n");.X | |
|00005140| 70 72 69 6e 74 66 28 22 | 73 20 2b 20 77 69 6c 6c |printf("|s + will|
|00005150| 20 73 75 6d 6d 61 72 69 | 7a 65 20 6c 65 61 72 6e | summari|ze learn|
|00005160| 69 6e 67 20 73 74 61 74 | 75 73 20 69 6e 73 74 65 |ing stat|us inste|
|00005170| 61 64 20 6f 66 22 29 3b | 0a 58 20 20 20 20 20 20 |ad of");|.X |
|00005180| 20 20 20 20 70 72 69 6e | 74 66 28 22 20 6c 69 73 | prin|tf(" lis|
|00005190| 74 69 6e 67 20 65 61 63 | 68 20 70 61 74 74 65 72 |ting eac|h patter|
|000051a0| 6e 2e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |n.\n");.|X |
|000051b0| 20 20 20 70 72 69 6e 74 | 66 28 22 73 20 2d 20 77 | print|f("s - w|
|000051c0| 69 6c 6c 20 6e 6f 74 20 | 73 75 6d 6d 61 72 69 7a |ill not |summariz|
|000051d0| 65 20 6c 65 61 72 6e 69 | 6e 67 20 73 74 61 74 75 |e learni|ng statu|
|000051e0| 73 20 61 6e 64 20 77 69 | 6c 6c 22 29 3b 0a 58 20 |s and wi|ll");.X |
|000051f0| 20 20 20 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 | | printf(|
|00005200| 22 20 6c 69 73 74 20 65 | 61 63 68 20 70 61 74 74 |" list e|ach patt|
|00005210| 65 72 6e 2e 5c 6e 5c 6e | 22 29 3b 0a 58 20 20 20 |ern.\n\n|");.X |
|00005220| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 77 | p|rintf("w|
|00005230| 20 62 20 77 69 6c 6c 20 | 77 72 69 74 65 20 74 68 | b will |write th|
|00005240| 65 20 77 65 69 67 68 74 | 73 20 74 6f 20 74 68 65 |e weight|s to the|
|00005250| 20 66 69 6c 65 20 77 65 | 69 67 68 74 73 20 61 73 | file we|ights as|
|00005260| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 70 |");.X | p|
|00005270| 72 69 6e 74 66 28 22 20 | 62 69 6e 61 72 79 20 76 |rintf(" |binary v|
|00005280| 61 6c 75 65 73 2e 5c 6e | 22 29 3b 0a 58 20 20 20 |alues.\n|");.X |
|00005290| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 77 | p|rintf("w|
|000052a0| 20 42 20 77 69 6c 6c 20 | 77 72 69 74 65 20 74 68 | B will |write th|
|000052b0| 65 20 77 65 69 67 68 74 | 73 20 61 6e 64 20 77 65 |e weight|s and we|
|000052c0| 69 67 68 74 20 63 68 61 | 6e 67 65 73 20 61 6e 64 |ight cha|nges and|
|000052d0| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 70 |");.X | p|
|000052e0| 72 69 6e 74 66 28 22 20 | 65 74 61 73 20 61 73 20 |rintf(" |etas as |
|000052f0| 62 69 6e 61 72 79 2e 5c | 6e 22 29 3b 0a 58 20 20 |binary.\|n");.X |
|00005300| 20 20 20 20 20 20 20 20 | 70 72 69 6e 74 66 28 22 | |printf("|
|00005310| 77 20 72 20 77 69 6c 6c | 20 77 72 69 74 65 20 74 |w r will| write t|
|00005320| 68 65 20 77 65 69 67 68 | 74 73 20 74 6f 20 74 68 |he weigh|ts to th|
|00005330| 65 20 66 69 6c 65 20 77 | 65 69 67 68 74 73 20 61 |e file w|eights a|
|00005340| 73 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |s");.X | |
|00005350| 70 72 69 6e 74 66 28 22 | 20 72 65 61 6c 20 76 61 |printf("| real va|
|00005360| 6c 75 65 73 2e 5c 6e 22 | 29 3b 0a 58 20 20 20 20 |lues.\n"|);.X |
|00005370| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 77 20 | pr|intf("w |
|00005380| 52 20 77 69 6c 6c 20 77 | 72 69 74 65 20 74 68 65 |R will w|rite the|
|00005390| 20 77 65 69 67 68 74 73 | 20 61 6e 64 20 77 65 69 | weights| and wei|
|000053a0| 67 68 74 20 63 68 61 6e | 67 65 73 20 61 6e 64 22 |ght chan|ges and"|
|000053b0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|000053c0| 69 6e 74 66 28 22 20 65 | 74 61 73 20 61 73 20 72 |intf(" e|tas as r|
|000053d0| 65 61 6c 20 76 61 6c 75 | 65 73 2e 5c 6e 22 29 3b |eal valu|es.\n");|
|000053e0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 |.X | brea|
|000053f0| 6b 3b 0a 58 0a 58 23 69 | 66 6e 64 65 66 20 53 59 |k;.X.X#i|fndef SY|
|00005400| 4d 4d 45 54 52 49 43 0a | 58 63 61 73 65 20 27 48 |MMETRIC.|Xcase 'H|
|00005410| 27 3a 20 70 72 69 6e 74 | 66 28 22 48 20 3c 69 6e |': print|f("H <in|
|00005420| 74 3e 20 3c 72 65 61 6c | 3e 20 61 64 64 73 20 61 |t> <real|> adds a|
|00005430| 20 68 69 64 64 65 6e 20 | 75 6e 69 74 20 74 6f 20 | hidden |unit to |
|00005440| 6c 61 79 65 72 20 3c 69 | 6e 74 3e 5c 6e 22 29 3b |layer <i|nt>\n");|
|00005450| 0a 58 20 20 20 20 20 20 | 20 20 20 20 70 72 69 6e |.X | prin|
|00005460| 74 66 28 22 57 65 69 67 | 68 74 73 20 61 72 65 20 |tf("Weig|hts are |
|00005470| 69 6e 69 74 69 61 6c 69 | 7a 65 64 20 74 6f 20 62 |initiali|zed to b|
|00005480| 65 74 77 65 65 6e 20 2d | 3c 72 65 61 6c 3e 20 61 |etween -|<real> a|
|00005490| 6e 64 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |nd");.X | |
|000054a0| 20 70 72 69 6e 74 66 28 | 22 20 3c 72 65 61 6c 3e | printf(|" <real>|
|000054b0| 2e 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |.\n");.X| |
|000054c0| 20 20 62 72 65 61 6b 3b | 0a 58 23 65 6e 64 69 66 | break;|.X#endif|
|000054d0| 0a 58 0a 58 63 61 73 65 | 20 27 68 27 3a 20 70 72 |.X.Xcase| 'h': pr|
|000054e0| 69 6e 74 66 28 22 68 20 | 3c 6c 65 74 74 65 72 3e |intf("h |<letter>|
|000054f0| 20 67 69 76 65 73 20 68 | 65 6c 70 20 66 6f 72 20 | gives h|elp for |
|00005500| 63 6f 6d 6d 61 6e 64 20 | 3c 6c 65 74 74 65 72 3e |command |<letter>|
|00005510| 2e 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |.\n");.X| |
|00005520| 20 20 62 72 65 61 6b 3b | 0a 58 63 61 73 65 20 27 | break;|.Xcase '|
|00005530| 69 27 3a 20 70 72 69 6e | 74 66 28 22 69 20 3c 66 |i': prin|tf("i <f|
|00005540| 69 6c 65 6e 61 6d 65 3e | 20 74 61 6b 65 73 20 63 |ilename>| takes c|
|00005550| 6f 6d 6d 61 6e 64 73 20 | 66 72 6f 6d 20 3c 66 69 |ommands |from <fi|
|00005560| 6c 65 6e 61 6d 65 3e 2e | 5c 6e 22 29 3b 0a 58 20 |lename>.|\n");.X |
|00005570| 20 20 20 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0a | | break;.|
|00005580| 58 63 61 73 65 20 27 6a | 27 3a 20 70 72 69 6e 74 |Xcase 'j|': print|
|00005590| 66 28 22 6a 20 69 73 20 | 75 73 65 64 20 74 6f 20 |f("j is |used to |
|000055a0| 73 65 74 20 70 61 72 61 | 6d 65 74 65 72 73 20 66 |set para|meters f|
|000055b0| 6f 72 20 4a 61 63 6f 62 | 27 73 22 29 3b 0a 58 20 |or Jacob|'s");.X |
|000055c0| 20 20 20 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 | | printf(|
|000055d0| 22 20 64 65 6c 74 61 2d | 62 61 72 2d 64 65 6c 74 |" delta-|bar-delt|
|000055e0| 61 20 6d 65 74 68 6f 64 | 2e 5c 6e 4f 6e 65 20 6f |a method|.\nOne o|
|000055f0| 72 20 6d 6f 72 65 20 6f | 66 20 74 68 65 22 29 3b |r more o|f the");|
|00005600| 0a 58 20 20 20 20 20 20 | 20 20 20 20 70 72 69 6e |.X | prin|
|00005610| 74 66 28 22 20 66 6f 6c | 6c 6f 77 69 6e 67 20 63 |tf(" fol|lowing c|
|00005620| 6f 6d 6d 61 6e 64 73 20 | 63 61 6e 20 67 6f 20 6f |ommands |can go o|
|00005630| 6e 20 74 68 65 20 6c 69 | 6e 65 3a 5c 6e 5c 6e 22 |n the li|ne:\n\n"|
|00005640| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00005650| 69 6e 74 66 28 22 64 20 | 3c 72 65 61 6c 3e 20 73 |intf("d |<real> s|
|00005660| 65 74 73 20 74 68 65 20 | 64 65 63 61 79 20 66 61 |ets the |decay fa|
|00005670| 63 74 6f 72 20 74 6f 20 | 3c 72 65 61 6c 3e 2e 5c |ctor to |<real>.\|
|00005680| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |n");.X | |
|00005690| 70 72 69 6e 74 66 28 22 | 65 20 3c 72 65 61 6c 3e |printf("|e <real>|
|000056a0| 20 73 65 74 73 20 74 68 | 65 20 69 6e 69 74 69 61 | sets th|e initia|
|000056b0| 6c 20 65 74 61 20 76 61 | 6c 75 65 20 74 6f 20 3c |l eta va|lue to <|
|000056c0| 72 65 61 6c 3e 2e 5c 6e | 22 29 3b 0a 58 20 20 20 |real>.\n|");.X |
|000056d0| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 6b | p|rintf("k|
|000056e0| 20 3c 72 65 61 6c 3e 20 | 73 65 74 73 20 6b 61 70 | <real> |sets kap|
|000056f0| 70 61 20 74 6f 20 3c 72 | 65 61 6c 3e 2e 5c 6e 22 |pa to <r|eal>.\n"|
|00005700| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00005710| 69 6e 74 66 28 22 6d 20 | 3c 72 65 61 6c 3e 20 6c |intf("m |<real> l|
|00005720| 69 6d 69 74 73 20 74 68 | 65 20 6d 61 78 69 6d 75 |imits th|e maximu|
|00005730| 6d 20 76 61 6c 75 65 20 | 6f 66 20 65 61 63 68 20 |m value |of each |
|00005740| 65 74 61 20 74 6f 22 29 | 3b 0a 58 20 20 20 20 20 |eta to")|;.X |
|00005750| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 20 3c 72 | pri|ntf(" <r|
|00005760| 65 61 6c 3e 2e 5c 6e 74 | 20 3c 72 65 61 6c 3e 20 |eal>.\nt| <real> |
|00005770| 73 65 74 73 20 74 68 65 | 74 61 20 74 6f 20 3c 72 |sets the|ta to <r|
|00005780| 65 61 6c 3e 2e 5c 6e 22 | 29 3b 0a 58 20 20 20 20 |eal>.\n"|);.X |
|00005790| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 63 61 | br|eak;.Xca|
|000057a0| 73 65 20 27 6b 27 3a 20 | 70 72 69 6e 74 66 28 22 |se 'k': |printf("|
|000057b0| 6b 20 3c 72 65 61 6c 31 | 3e 20 3c 72 65 61 6c 32 |k <real1|> <real2|
|000057c0| 3e 20 64 65 63 72 65 61 | 73 65 73 20 61 6c 6c 20 |> decrea|ses all |
|000057d0| 74 68 65 20 77 65 69 67 | 68 74 73 20 69 6e 20 74 |the weig|hts in t|
|000057e0| 68 65 20 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |he ");.X| |
|000057f0| 20 20 70 72 69 6e 74 66 | 28 22 6e 65 74 77 6f 72 | printf|("networ|
|00005800| 6b 20 77 68 6f 73 65 20 | 76 61 6c 75 65 73 5c 6e |k whose |values\n|
|00005810| 61 72 65 20 67 72 65 61 | 74 65 72 20 74 68 61 6e |are grea|ter than|
|00005820| 20 3c 72 65 61 6c 31 3e | 20 62 79 20 61 22 29 3b | <real1>| by a");|
|00005830| 0a 58 20 20 20 20 20 20 | 20 20 20 20 70 72 69 6e |.X | prin|
|00005840| 74 66 28 22 20 72 61 6e | 64 6f 6d 20 61 6d 6f 75 |tf(" ran|dom amou|
|00005850| 6e 74 20 62 65 74 77 65 | 65 6e 20 30 20 61 6e 64 |nt betwe|en 0 and|
|00005860| 20 3c 72 65 61 6c 32 3e | 2e 5c 6e 57 65 69 67 68 | <real2>|.\nWeigh|
|00005870| 74 73 20 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |ts ");.X| |
|00005880| 20 20 70 72 69 6e 74 66 | 28 22 6c 65 73 73 20 74 | printf|("less t|
|00005890| 68 61 6e 20 2d 3c 72 65 | 61 6c 31 3e 20 61 72 65 |han -<re|al1> are|
|000058a0| 20 69 6e 63 72 65 61 73 | 65 64 20 62 79 20 61 6e | increas|ed by an|
|000058b0| 20 61 6d 6f 75 6e 74 20 | 22 29 3b 0a 58 20 20 20 | amount |");.X |
|000058c0| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 62 | p|rintf("b|
|000058d0| 65 74 77 65 65 6e 20 30 | 20 61 6e 64 20 3c 72 65 |etween 0| and <re|
|000058e0| 61 6c 32 3e 2e 5c 6e 49 | 66 20 3c 72 65 61 6c 31 |al2>.\nI|f <real1|
|000058f0| 3e 20 3d 20 30 2e 30 2c | 20 61 6e 64 20 61 20 22 |> = 0.0,| and a "|
|00005900| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00005910| 69 6e 74 66 28 22 77 65 | 69 67 68 74 20 3d 20 30 |intf("we|ight = 0|
|00005920| 2e 30 20 74 68 65 6e 20 | 74 68 65 20 77 65 69 67 |.0 then |the weig|
|00005930| 68 74 20 69 73 20 63 68 | 61 6e 67 65 64 20 74 6f |ht is ch|anged to|
|00005940| 5c 6e 61 20 22 29 3b 0a | 58 20 20 20 20 20 20 20 |\na ");.|X |
|00005950| 20 20 20 70 72 69 6e 74 | 66 28 22 76 61 6c 75 65 | print|f("value|
|00005960| 20 62 65 74 77 65 65 6e | 20 2d 3c 72 65 61 6c 32 | between| -<real2|
|00005970| 3e 20 61 6e 64 20 2b 3c | 72 65 61 6c 32 3e 2e 5c |> and +<|real2>.\|
|00005980| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |n");.X | |
|00005990| 62 72 65 61 6b 3b 0a 58 | 63 61 73 65 20 27 6c 27 |break;.X|case 'l'|
|000059a0| 3a 20 70 72 69 6e 74 66 | 28 22 6c 20 3c 69 6e 74 |: printf|("l <int|
|000059b0| 3e 20 70 72 69 6e 74 73 | 20 76 61 6c 75 65 73 20 |> prints| values |
|000059c0| 6f 66 20 6e 6f 64 65 73 | 20 6f 6e 20 6c 61 79 65 |of nodes| on laye|
|000059d0| 72 20 3c 69 6e 74 3e 2e | 5c 6e 22 29 3b 0a 58 20 |r <int>.|\n");.X |
|000059e0| 20 20 20 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0a | | break;.|
|000059f0| 58 63 61 73 65 20 27 6d | 27 3a 20 70 72 69 6e 74 |Xcase 'm|': print|
|00005a00| 66 28 22 6d 20 3c 69 6e | 74 31 3e 20 3c 69 6e 74 |f("m <in|t1> <int|
|00005a10| 32 3e 20 2e 2e 2e 20 3c | 69 6e 74 6e 3e 20 6d 61 |2> ... <|intn> ma|
|00005a20| 6b 65 73 20 61 20 6e 65 | 74 77 6f 72 6b 20 77 69 |kes a ne|twork wi|
|00005a30| 74 68 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |th\n");.|X |
|00005a40| 20 20 20 70 72 69 6e 74 | 66 28 22 3c 69 6e 74 31 | print|f("<int1|
|00005a50| 3e 20 75 6e 69 74 73 20 | 69 6e 20 74 68 65 20 66 |> units |in the f|
|00005a60| 69 72 73 74 20 6c 61 79 | 65 72 2c 20 3c 69 6e 74 |irst lay|er, <int|
|00005a70| 32 3e 20 75 6e 69 74 73 | 20 69 6e 5c 6e 22 29 3b |2> units| in\n");|
|00005a80| 0a 58 20 20 20 20 20 20 | 20 20 20 20 70 72 69 6e |.X | prin|
|00005a90| 74 66 28 22 74 68 65 20 | 73 65 63 6f 6e 64 20 6c |tf("the |second l|
|00005aa0| 61 79 65 72 2c 20 2e 2e | 2e 20 2c 20 3c 69 6e 74 |ayer, ..|. , <int|
|00005ab0| 6e 3e 20 75 6e 69 74 73 | 20 69 6e 20 74 68 65 20 |n> units| in the |
|00005ac0| 6e 74 68 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |nth");.X| |
|00005ad0| 20 20 70 72 69 6e 74 66 | 28 22 20 6c 61 79 65 72 | printf|(" layer|
|00005ae0| 5c 6e 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |\n");.X | |
|00005af0| 20 62 72 65 61 6b 3b 0a | 58 63 61 73 65 20 27 6e | break;.|Xcase 'n|
|00005b00| 27 3a 20 70 72 69 6e 74 | 66 28 22 6e 20 3c 69 6e |': print|f("n <in|
|00005b10| 74 3e 20 3c 69 6e 31 3e | 20 3c 6f 75 74 31 3e 20 |t> <in1>| <out1> |
|00005b20| 2e 2e 2e 20 3c 69 6e 69 | 3e 20 3c 6f 75 74 69 3e |... <ini|> <outi>|
|00005b30| 20 2e 2e 2e 20 3c 69 6e | 4e 3e 20 22 29 3b 0a 58 | ... <in|N> ");.X|
|00005b40| 20 20 20 20 20 20 20 20 | 20 20 70 72 69 6e 74 66 | | printf|
|00005b50| 28 22 3c 6f 75 74 4e 3e | 5c 6e 72 65 70 6c 61 63 |("<outN>|\nreplac|
|00005b60| 65 73 20 61 6c 6c 20 70 | 61 74 74 65 72 6e 73 20 |es all p|atterns |
|00005b70| 77 69 74 68 20 3c 69 6e | 74 3e 20 6e 65 77 20 6f |with <in|t> new o|
|00005b80| 6e 65 73 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |nes");.X| |
|00005b90| 20 20 70 72 69 6e 74 66 | 28 22 2e 5c 6e 3c 69 6e | printf|(".\n<in|
|00005ba0| 69 3e 20 70 61 74 74 65 | 72 6e 73 20 67 6f 20 6f |i> patte|rns go o|
|00005bb0| 6e 20 74 68 65 20 69 6e | 70 75 74 20 75 6e 69 74 |n the in|put unit|
|00005bc0| 73 2e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |s.\n");.|X |
|00005bd0| 20 20 20 70 72 69 6e 74 | 66 28 22 3c 6f 75 74 69 | print|f("<outi|
|00005be0| 3e 20 70 61 74 74 65 72 | 6e 73 20 67 6f 20 6f 6e |> patter|ns go on|
|00005bf0| 20 74 68 65 20 6f 75 74 | 70 75 74 20 75 6e 69 74 | the out|put unit|
|00005c00| 73 2e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |s.\n");.|X |
|00005c10| 20 20 20 62 72 65 61 6b | 3b 0a 58 63 61 73 65 20 | break|;.Xcase |
|00005c20| 27 6f 27 3a 20 70 72 69 | 6e 74 66 28 22 6f 20 61 |'o': pri|ntf("o a|
|00005c30| 20 6f 75 74 70 75 74 73 | 20 6e 6f 64 65 20 76 61 | outputs| node va|
|00005c40| 6c 75 65 73 20 69 6e 20 | 61 6e 61 6c 6f 67 20 63 |lues in |analog c|
|00005c50| 6f 6d 70 72 65 73 73 65 | 64 20 66 6f 72 6d 2e 22 |ompresse|d form."|
|00005c60| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|00005c70| 69 6e 74 66 28 22 5c 6e | 6f 20 63 20 6f 75 74 70 |intf("\n|o c outp|
|00005c80| 75 74 73 20 6e 6f 64 65 | 20 76 61 6c 75 65 73 20 |uts node| values |
|00005c90| 69 6e 20 63 6f 6d 70 72 | 65 73 73 65 64 20 66 6f |in compr|essed fo|
|00005ca0| 72 6d 2e 5c 6e 22 29 3b | 0a 58 20 20 20 20 20 20 |rm.\n");|.X |
|00005cb0| 20 20 20 20 70 72 69 6e | 74 66 28 22 6f 20 72 20 | prin|tf("o r |
|00005cc0| 6f 75 74 70 75 74 73 20 | 6e 6f 64 65 20 76 61 6c |outputs |node val|
|00005cd0| 75 65 73 20 61 73 20 64 | 6f 75 62 6c 65 2e 5c 6e |ues as d|ouble.\n|
|00005ce0| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 62 |");.X | b|
|00005cf0| 72 65 61 6b 3b 0a 58 63 | 61 73 65 20 27 50 27 3a |reak;.Xc|ase 'P':|
|00005d00| 20 70 72 69 6e 74 66 28 | 22 50 20 6c 69 73 74 73 | printf(|"P lists|
|00005d10| 20 74 68 65 20 6f 75 74 | 70 75 74 73 20 66 6f 72 | the out|puts for|
|00005d20| 20 61 6c 6c 20 70 61 74 | 74 65 72 6e 73 2e 5c 6e | all pat|terns.\n|
|00005d30| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 70 |");.X | p|
|00005d40| 72 69 6e 74 66 28 22 50 | 20 3c 69 6e 74 3e 20 67 |rintf("P| <int> g|
|00005d50| 69 76 65 73 20 74 68 65 | 20 6f 75 74 70 75 74 20 |ives the| output |
|00005d60| 66 6f 72 20 70 61 74 74 | 65 72 6e 20 3c 69 6e 74 |for patt|ern <int|
|00005d70| 3e 2e 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 |>.\n");.|X |
|00005d80| 20 20 20 62 72 65 61 6b | 3b 0a 58 63 61 73 65 20 | break|;.Xcase |
|00005d90| 27 70 27 3a 20 70 72 69 | 6e 74 66 28 22 70 20 3c |'p': pri|ntf("p <|
|00005da0| 70 61 74 3e 20 73 75 62 | 6d 69 74 73 20 74 68 65 |pat> sub|mits the|
|00005db0| 20 70 61 74 74 65 72 6e | 2c 20 3c 70 61 74 3e 2c | pattern|, <pat>,|
|00005dc0| 20 74 6f 20 74 68 65 20 | 69 6e 70 75 74 22 29 3b | to the |input");|
|00005dd0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 70 72 69 6e |.X | prin|
|00005de0| 74 66 28 22 20 75 6e 69 | 74 73 2e 5c 6e 22 29 3b |tf(" uni|ts.\n");|
|00005df0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 |.X | brea|
|00005e00| 6b 3b 0a 58 63 61 73 65 | 20 27 51 27 3a 20 70 72 |k;.Xcase| 'Q': pr|
|00005e10| 69 6e 74 66 28 22 51 20 | 3c 72 65 61 6c 3e 20 73 |intf("Q |<real> s|
|00005e20| 65 74 73 20 74 68 65 20 | 76 61 6c 75 65 20 6f 66 |ets the |value of|
|00005e30| 20 3f 20 69 6e 20 63 6f | 6d 70 72 65 73 73 65 64 | ? in co|mpressed|
|00005e40| 20 69 6e 70 75 74 22 29 | 3b 0a 58 20 20 20 20 20 | input")|;.X |
|00005e50| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 20 74 6f | pri|ntf(" to|
|00005e60| 20 62 65 20 74 68 65 20 | 76 61 6c 75 65 2c 20 3c | be the |value, <|
|00005e70| 72 65 61 6c 3e 2e 5c 6e | 22 29 3b 0a 58 20 20 20 |real>.\n|");.X |
|00005e80| 20 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 63 | b|reak;.Xc|
|00005e90| 61 73 65 20 27 71 27 3a | 20 70 72 69 6e 74 66 28 |ase 'q':| printf(|
|00005ea0| 22 71 20 65 6e 64 73 20 | 74 68 65 20 70 72 6f 67 |"q ends |the prog|
|00005eb0| 72 61 6d 2e 5c 6e 22 29 | 3b 0a 58 20 20 20 20 20 |ram.\n")|;.X |
|00005ec0| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 63 61 73 | bre|ak;.Xcas|
|00005ed0| 65 20 27 52 27 3a 20 70 | 72 69 6e 74 66 28 22 52 |e 'R': p|rintf("R|
|00005ee0| 20 72 65 6c 6f 61 64 73 | 20 77 65 69 67 68 74 73 | reloads| weights|
|00005ef0| 20 66 72 6f 6d 20 74 68 | 65 20 66 69 6c 65 20 77 | from th|e file w|
|00005f00| 65 69 67 68 74 73 2e 5c | 6e 22 29 3b 0a 58 20 20 |eights.\|n");.X |
|00005f10| 20 20 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 | |break;.X|
|00005f20| 63 61 73 65 20 27 72 27 | 3a 20 70 72 69 6e 74 66 |case 'r'|: printf|
|00005f30| 28 22 72 20 3c 69 6e 74 | 31 3e 20 3c 69 6e 74 32 |("r <int|1> <int2|
|00005f40| 3e 20 72 75 6e 73 20 3c | 69 6e 74 31 3e 20 69 74 |> runs <|int1> it|
|00005f50| 65 72 61 74 69 6f 6e 73 | 20 74 68 72 75 20 74 68 |erations| thru th|
|00005f60| 65 20 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |e ");.X | |
|00005f70| 20 70 72 69 6e 74 66 28 | 22 70 61 74 74 65 72 6e | printf(|"pattern|
|00005f80| 73 2e 20 20 49 66 20 3c | 69 6e 74 32 3e 20 69 73 |s. If <|int2> is|
|00005f90| 5c 6e 70 72 65 73 65 6e | 74 2c 20 74 68 65 20 70 |\npresen|t, the p|
|00005fa0| 61 74 74 65 72 6e 73 20 | 61 72 65 20 22 29 3b 0a |atterns |are ");.|
|00005fb0| 58 20 20 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |X | print|
|00005fc0| 66 28 22 70 72 69 6e 74 | 65 64 20 28 6f 72 20 73 |f("print|ed (or s|
|00005fd0| 75 6d 6d 61 72 69 7a 65 | 64 29 20 65 76 65 72 79 |ummarize|d) every|
|00005fe0| 20 3c 69 6e 74 32 3e 20 | 69 74 65 72 61 74 69 6f | <int2> |iteratio|
|00005ff0| 6e 73 2e 5c 6e 22 29 3b | 0a 58 20 20 20 20 20 20 |ns.\n");|.X |
|00006000| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 63 61 73 65 | brea|k;.Xcase|
|00006010| 20 27 53 27 3a 20 70 72 | 69 6e 74 66 28 22 53 20 | 'S': pr|intf("S |
|00006020| 3c 69 6e 74 3e 20 73 61 | 76 65 73 20 74 68 65 20 |<int> sa|ves the |
|00006030| 77 65 69 67 68 74 73 20 | 6f 6e 20 74 68 65 20 66 |weights |on the f|
|00006040| 69 6c 65 20 22 29 3b 0a | 58 20 20 20 20 20 20 20 |ile ");.|X |
|00006050| 20 20 20 70 72 69 6e 74 | 66 28 22 77 65 69 67 68 | print|f("weigh|
|00006060| 74 73 20 65 76 65 72 79 | 20 3c 69 6e 74 3e 20 69 |ts every| <int> i|
|00006070| 74 65 72 61 74 69 6f 6e | 73 2e 5c 6e 53 20 73 61 |teration|s.\nS sa|
|00006080| 76 65 73 20 74 68 65 20 | 22 29 3b 0a 58 20 20 20 |ves the |");.X |
|00006090| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 77 | p|rintf("w|
|000060a0| 65 69 67 68 74 73 20 69 | 6d 6d 65 64 69 61 74 65 |eights i|mmediate|
|000060b0| 6c 79 2e 5c 6e 22 29 3b | 0a 58 20 20 20 20 20 20 |ly.\n");|.X |
|000060c0| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 63 61 73 65 | brea|k;.Xcase|
|000060d0| 20 27 73 27 3a 20 70 72 | 69 6e 74 66 28 22 73 20 | 's': pr|intf("s |
|000060e0| 3c 69 6e 74 3e 20 73 65 | 74 73 20 74 68 65 20 72 |<int> se|ts the r|
|000060f0| 61 6e 64 6f 6d 20 6e 75 | 6d 62 65 72 20 73 65 65 |andom nu|mber see|
|00006100| 64 20 74 6f 20 3c 69 6e | 74 3e 2e 5c 6e 22 29 3b |d to <in|t>.\n");|
|00006110| 0a 58 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 |.X | brea|
|00006120| 6b 3b 0a 58 0a 58 23 69 | 66 64 65 66 20 53 59 4d |k;.X.X#i|fdef SYM|
|00006130| 4d 45 54 52 49 43 0a 58 | 63 61 73 65 20 27 54 27 |METRIC.X|case 'T'|
|00006140| 3a 20 70 72 69 6e 74 66 | 28 22 54 20 3c 72 65 61 |: printf|("T <rea|
|00006150| 6c 3e 20 66 72 65 65 7a | 65 73 20 61 6c 6c 20 74 |l> freez|es all t|
|00006160| 68 72 65 73 68 6f 6c 64 | 20 77 65 69 67 68 74 73 |hreshold| weights|
|00006170| 20 61 74 20 3c 72 65 61 | 6c 3e 2e 5c 6e 22 29 3b | at <rea|l>.\n");|
|00006180| 0a 58 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 |.X | brea|
|00006190| 6b 3b 0a 58 23 65 6e 64 | 69 66 0a 58 0a 58 63 61 |k;.X#end|if.X.Xca|
|000061a0| 73 65 20 27 74 27 3a 20 | 70 72 69 6e 74 66 28 22 |se 't': |printf("|
|000061b0| 74 20 3c 72 65 61 6c 3e | 20 73 65 74 73 20 3c 72 |t <real>| sets <r|
|000061c0| 65 61 6c 3e 20 61 73 20 | 74 68 65 20 74 6f 6c 65 |eal> as |the tole|
|000061d0| 72 61 6e 63 65 20 75 73 | 65 64 20 69 6e 20 22 29 |rance us|ed in ")|
|000061e0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 70 72 69 |;.X | pri|
|000061f0| 6e 74 66 28 22 70 72 69 | 6e 74 69 6e 67 20 63 6f |ntf("pri|nting co|
|00006200| 6d 70 72 65 73 73 65 64 | 20 76 61 6c 75 65 73 5c |mpressed| values\|
|00006210| 6e 61 6e 64 20 69 6e 20 | 63 68 65 63 6b 69 6e 67 |nand in |checking|
|00006220| 20 66 6f 72 22 29 3b 0a | 58 20 20 20 20 20 20 20 | for");.|X |
|00006230| 20 20 20 70 72 69 6e 74 | 66 28 22 20 63 6f 6d 70 | print|f(" comp|
|00006240| 6c 65 74 65 20 6c 65 61 | 72 6e 69 6e 67 2e 5c 6e |lete lea|rning.\n|
|00006250| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 62 |");.X | b|
|00006260| 72 65 61 6b 3b 0a 58 23 | 69 66 6e 64 65 66 20 53 |reak;.X#|ifndef S|
|00006270| 59 4d 4d 45 54 52 49 43 | 0a 58 63 61 73 65 20 27 |YMMETRIC|.Xcase '|
|00006280| 57 27 3a 20 70 72 69 6e | 74 66 28 22 57 20 3c 72 |W': prin|tf("W <r|
|00006290| 65 61 6c 3e 20 72 65 6d | 6f 76 65 73 20 6c 69 6e |eal> rem|oves lin|
|000062a0| 6b 73 20 77 68 6f 73 65 | 20 77 65 69 67 68 74 73 |ks whose| weights|
|000062b0| 20 61 72 65 20 6c 65 73 | 73 20 74 68 61 6e 20 22 | are les|s than "|
|000062c0| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 70 72 |);.X | pr|
|000062d0| 69 6e 74 66 28 22 74 68 | 65 20 61 62 73 6f 6c 75 |intf("th|e absolu|
|000062e0| 74 65 20 76 61 6c 75 65 | 5c 6e 6f 66 20 3c 72 65 |te value|\nof <re|
|000062f0| 61 6c 3e 2c 20 65 78 63 | 65 70 74 20 6c 69 6e 6b |al>, exc|ept link|
|00006300| 73 20 74 6f 20 22 29 3b | 0a 58 20 20 20 20 20 20 |s to ");|.X |
|00006310| 20 20 20 20 70 72 69 6e | 74 66 28 22 74 68 72 65 | prin|tf("thre|
|00006320| 73 68 6f 6c 64 20 75 6e | 69 74 73 20 61 72 65 20 |shold un|its are |
|00006330| 6e 6f 74 20 72 65 6d 6f | 76 65 64 2e 5c 6e 22 29 |not remo|ved.\n")|
|00006340| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 62 72 65 |;.X | bre|
|00006350| 61 6b 3b 0a 58 23 65 6e | 64 69 66 0a 58 0a 58 63 |ak;.X#en|dif.X.Xc|
|00006360| 61 73 65 20 27 77 27 3a | 20 70 72 69 6e 74 66 28 |ase 'w':| printf(|
|00006370| 22 77 20 3c 69 6e 74 31 | 3e 20 3c 69 6e 74 32 3e |"w <int1|> <int2>|
|00006380| 20 20 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 | ");.X | |
|00006390| 20 70 72 69 6e 74 66 28 | 22 70 72 69 6e 74 73 20 | printf(|"prints |
|000063a0| 77 65 69 67 68 74 73 20 | 69 6e 74 6f 20 75 6e 69 |weights |into uni|
|000063b0| 74 20 3c 69 6e 74 32 3e | 20 69 6e 20 6c 61 79 65 |t <int2>| in laye|
|000063c0| 72 20 3c 69 6e 74 31 3e | 2e 5c 6e 22 29 3b 0a 58 |r <int1>|.\n");.X|
|000063d0| 20 20 20 20 20 20 20 20 | 20 20 62 72 65 61 6b 3b | | break;|
|000063e0| 0a 58 63 61 73 65 20 27 | 78 27 3a 20 70 72 69 6e |.Xcase '|x': prin|
|000063f0| 74 66 28 22 78 20 3c 69 | 6e 74 31 3e 20 3c 69 6e |tf("x <i|nt1> <in|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.