home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume21 / lyap / part03 < prev    next >
Encoding:
Text File  |  1993-10-07  |  45.2 KB  |  1,328 lines

  1. Newsgroups: comp.sources.x
  2. From: rr@sco.com (Ronald Joe Record)
  3. Subject: v21i006:  lyap - Calculate Lyapunov fractals, Part03/03
  4. Message-ID: <1993Oct7.174723.3784@sparky.sterling.com>
  5. X-Md4-Signature: 645f6c1fd7082b9c7e68ee78b3e6e994
  6. Sender: chris@sparky.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Thu, 7 Oct 1993 17:47:23 GMT
  9. Approved: chris@sterling.com
  10.  
  11. Submitted-by: rr@sco.com (Ronald Joe Record)
  12. Posting-number: Volume 21, Issue 6
  13. Archive-name: lyap/part03
  14. Environment: X11
  15. Supersedes: lyapunov-xlib: Volume 17, Issue 48-49
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then feed it
  19. # into a shell via "sh file" or similar.  To overwrite existing files,
  20. # type "sh file -c".
  21. # Contents:  lyap/Imakefile lyap/Makefile.std lyap/Package lyap/README
  22. #   lyap/TAGS lyap/lib/Imakefile lyap/lib/Makefile.std
  23. #   lyap/lib/Package lyap/lib/TAGS lyap/lib/hls2rgb.c
  24. #   lyap/lib/libXrr.h lyap/lib/tags lyap/lyap.map
  25. #   lyap/params/asharpe.1 lyap/params/asharpe.2 lyap/params/asharpe.3
  26. #   lyap/params/asharpe.4 lyap/params/asharpe.5 lyap/params/asharpe.6
  27. #   lyap/params/asharpe.7 lyap/params/asharpe.8 lyap/params/asharpe.9
  28. #   lyap/params/bigbug lyap/params/catsup lyap/params/circle-12
  29. #   lyap/params/circle-12test lyap/params/circle-2
  30. #   lyap/params/circle-8 lyap/params/manray lyap/params/period-12
  31. #   lyap/params/period-2 lyap/params/period-4 lyap/params/period-8
  32. #   lyap/params/skewed-12 lyap/params/skewed-2 lyap/params/skewed-4
  33. #   lyap/params/skewed-8 lyap/params/tbug lyap/params/zity
  34. #   lyap/patchlevel.h lyap/tags
  35. # Wrapped by chris@sparky on Thu Oct  7 12:38:40 1993
  36. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  37. echo If this archive is complete, you will see the following message:
  38. echo '          "shar: End of archive 3 (of 3)."'
  39. if test -f 'lyap/Imakefile' -a "${1}" != "-c" ; then 
  40.   echo shar: Will not clobber existing file \"'lyap/Imakefile'\"
  41. else
  42.   echo shar: Extracting \"'lyap/Imakefile'\" \(1868 characters\)
  43.   sed "s/^X//" >'lyap/Imakefile' <<'END_OF_FILE'
  44. X#
  45. X#   @(#) Imakefile 9.3 93/08/03
  46. X#
  47. X#*************************************************************************
  48. X#*                                                                       *
  49. X#*     Copyright (c) 1992-1993                  Ronald Joe Record        *
  50. X#*                                                                       *
  51. X#*  All rights reserved. No part of this program or publication may be   *
  52. X#*  reproduced, transmitted, transcribed, stored in a retrieval system,  *
  53. X#*  or translated into any language or computer language, in any form or *
  54. X#*  by any means, electronic, mechanical, magnetic, optical, chemical,   *
  55. X#*  biological, or otherwise, without the prior written permission of:   *
  56. X#*                                                                       *
  57. X#*              Ronald Joe Record                        (408) 458-3718  *
  58. X#*              212 Owen St., Santa Cruz, California 95062 USA           *
  59. X#*                                                                       *
  60. X#*************************************************************************
  61. X
  62. X#
  63. X#        Imakefile for lyap, by Ron Record
  64. X#
  65. X
  66. X#define IHaveSubdirs
  67. X#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
  68. X
  69. X        SUBDIRS = lib
  70. X
  71. X        DEPLIBS = $(DEPXLIB)
  72. X#    Uncomment the following line if your system doesn't support prototypes 
  73. X#    PROTODEFINE = -D_NO_PROTO
  74. X#    -DMAPS includes code to support "Function forcing". See lyap.man (-F)
  75. X      MAPDEFINE = -DMAPS
  76. X        DEFINES = $(MAPDEFINE) $(PROTODEFINE)
  77. X       INCLUDES = -I. -Ilib
  78. X         CFLAGS = -O $(DEFINES) $(INCLUDES) $(CDEBUGFLAGS)
  79. XLOCAL_LIBRARIES = lib/libXrr.a $(XLIB) 
  80. X  SYS_LIBRARIES = -lm $(NAPLIB)
  81. X           SRCS = lyap.c
  82. X           OBJS = lyap.o
  83. X
  84. XMakeSubdirs($(SUBDIRS))
  85. XDependSubdirs($(SUBDIRS))
  86. XComplexProgramTarget(lyap)
  87. X
  88. XInstallProgram(lyap, $(BINDIR))
  89. XInstallManPage(lyap, $(MANDIR))
  90. END_OF_FILE
  91.   if test 1868 -ne `wc -c <'lyap/Imakefile'`; then
  92.     echo shar: \"'lyap/Imakefile'\" unpacked with wrong size!
  93.   fi
  94.   # end of 'lyap/Imakefile'
  95. fi
  96. if test -f 'lyap/Makefile.std' -a "${1}" != "-c" ; then 
  97.   echo shar: Will not clobber existing file \"'lyap/Makefile.std'\"
  98. else
  99.   echo shar: Extracting \"'lyap/Makefile.std'\" \(787 characters\)
  100.   sed "s/^X//" >'lyap/Makefile.std' <<'END_OF_FILE'
  101. XCC = cc 
  102. X#DEBUG =  -g
  103. X##
  104. X## Compiler Defines
  105. X## 
  106. XDEFINES = -DMAPS
  107. X
  108. XCFLAGS = -O $(DEBUG) $(DEFINES) -I. -Ilib
  109. X##
  110. X## Libraries
  111. X## X11     X11 graphics library
  112. X##
  113. X##
  114. XLIBS     = lib/libXrr.a -lX11 -lm -lsocket
  115. X
  116. X.o:.c
  117. X
  118. Xall: lyap
  119. X
  120. Xcp install:    all
  121. X    -mkdir -p $(ROOT)/usr/local/bin
  122. X    cp lyap $(ROOT)/usr/local/bin/lyap
  123. X    -mkdir -p $(ROOT)/usr/man/cat.LOCAL
  124. X    cp lyap.LOCAL $(ROOT)/usr/man/cat.LOCAL
  125. X    -mkdir -p $(ROOT)/usr/local/lib/lyap
  126. X    cp params/* $(ROOT)/usr/local/lib/lyap
  127. X    -mkdir -p $(ROOT)/usr/local/lib/lyap/pics
  128. X    cp pics/* $(ROOT)/usr/local/lib/lyap/pics
  129. X
  130. Xclean:
  131. X    rm -f *.o
  132. X
  133. Xclobber:    clean
  134. X    rm -f lyap
  135. X
  136. Xlyap : lib/libXrr.a lyap.o
  137. X    $(CC) $(CFLAGS) -o $@ $@.o $(LIBS)
  138. X
  139. Xlyap.o: lyap.c lyap.h
  140. X
  141. Xlib/libXrr.a: lib
  142. X    (cd lib; make -f Makefile.std)
  143. X
  144. Xlyap.LOCAL:    lyap.man
  145. X    nroff -man lyap.man > lyap.LOCAL
  146. END_OF_FILE
  147.   if test 787 -ne `wc -c <'lyap/Makefile.std'`; then
  148.     echo shar: \"'lyap/Makefile.std'\" unpacked with wrong size!
  149.   fi
  150.   # end of 'lyap/Makefile.std'
  151. fi
  152. if test -f 'lyap/Package' -a "${1}" != "-c" ; then 
  153.   echo shar: Will not clobber existing file \"'lyap/Package'\"
  154. else
  155.   echo shar: Extracting \"'lyap/Package'\" \(279 characters\)
  156.   sed "s/^X//" >'lyap/Package' <<'END_OF_FILE'
  157. Xecho "Making tags files"
  158. Xmake tags
  159. Xecho "Backing up previous shar file, if any"
  160. X[ -f lyap.shar ] && mv lyap.shar lyap.shar-
  161. Xecho "Creating new shar file"
  162. Xshar README Imakefile Makefile.std Package *.c *.h lib/* lyap.man lyap.map tags TAGS params/* testit > lyap.shar
  163. Xecho "Done"
  164. END_OF_FILE
  165.   if test 279 -ne `wc -c <'lyap/Package'`; then
  166.     echo shar: \"'lyap/Package'\" unpacked with wrong size!
  167.   fi
  168.   chmod +x 'lyap/Package'
  169.   # end of 'lyap/Package'
  170. fi
  171. if test -f 'lyap/README' -a "${1}" != "-c" ; then 
  172.   echo shar: Will not clobber existing file \"'lyap/README'\"
  173. else
  174.   echo shar: Extracting \"'lyap/README'\" \(3330 characters\)
  175.   sed "s/^X//" >'lyap/README' <<'END_OF_FILE'
  176. X
  177. X
  178. XWritten by Ronald Joe Record (rr@sco) 03 Sep 1991
  179. X
  180. XINTRO
  181. X-----
  182. X
  183. XThe idea here is to calculate the Lyapunov exponent for a periodically
  184. Xforced logistic map (later i added several other nonlinear maps of the unit
  185. Xinterval). In order to turn the 1-dimensional parameter space of the
  186. Xlogistic map into a 2-dimensional parameter space, select two parameter
  187. Xvalues (a and b) then alternate the iterations of the logistic map using
  188. Xfirst a then b as the parameter. This program accepts an argument to 
  189. Xspecify a forcing function, so instead of just alternating a and b, you
  190. Xcan use a as the parameter for say 6 iterations, then b for 6 iterations
  191. Xand so on. An interesting forcing function to look at is abbabaab (the
  192. XMorse-Thue sequence, an aperiodic self-similar, self-generating sequence).
  193. XAnyway, you step through all the values of a and b in the ranges you want,
  194. Xcalculating the Lyapunov exponent for each pair of values. The exponent
  195. Xis calculated by iterating out a ways (specified by the variable "settle")
  196. Xthen on subsequent iterations calculating an average of the logarithm of
  197. Xthe absolute value of the derivative at that point. Points in parameter
  198. Xspace with a negative Lyapunov exponent are colored one way (using the
  199. Xvalue of the exponent to index into a color map) while points with a
  200. Xnon-negative exponent are colored differently. 
  201. X
  202. XACKNOWLEDGEMENTS
  203. X----------------
  204. X
  205. XThe algorithm was taken from the September 1991 Scientific American article
  206. Xby A. K. Dewdney who gives credit to Mario Markus of the Max Planck Institute
  207. Xfor its creation. Additional information and ideas were gleaned from the
  208. Xdiscussion on alt.fractals involving Stephen Hall, Ed Kubaitis, Dave Platt
  209. Xand Baback Moghaddam. Assistance with colormaps and spinning color wheels
  210. Xand X was gleaned from Hiram Clawson. Rubber band code was adapted from 
  211. XStacey Campbell's xmandel source.
  212. X
  213. XBUILD
  214. X-----
  215. X
  216. XTo build the lyap binary, either use the Imakefile or the sample 
  217. Xmakefile - Makefile.std. It is recommended that you use the Imakefile
  218. Xif possible as that is what is most conscientiously maintained as well
  219. Xas being the more portable of the two. You may need to alter the file
  220. Xlib/Imakefile if your system doesn't have itimers or the Imakefile if
  221. Xyour system does not support prototypes. 
  222. X
  223. XTo build using the Imakefile, type :
  224. X
  225. X$ xmkmf
  226. X$ make Makefiles
  227. X$ make
  228. X
  229. XTo build using the Makefile.std, type "make -f Makefile.std".
  230. X
  231. XThe manual page can be formatted by typing "nroff -man lyap.man > lyap.doc".
  232. X
  233. XINSTALL
  234. X-------
  235. X
  236. XTo install lyap, copy the lyap binary to the desired location (the sample
  237. Xmakefile puts it in /usr/local/bin, while the Imakefile will put it in
  238. X/usr/bin/X11). A sample colormap file has been provided for you. I can't
  239. Xrecall where i got this. I think it was part of the fractint distribution.
  240. XAnyway, you can copy the file lyap.map to $HOME/.lyapmap and it will act
  241. Xas an additional colormap (several colormaps are provided internal to lyap).
  242. XCopy the formatted man page to wherever you keep your local doc (i use
  243. X/usr/man/cat.LOCAL for imaging software), then add that location
  244. Xto your MANPATH.
  245. X
  246. XSome "interesting" runs of lyap are included as simple shell scripts in the
  247. X"params" subdirectory.
  248. X
  249. X
  250. XIdeas, comments, additions, deletions, suggestions, bug reports, code review,...
  251. Xe-mail Ronald Record at rr@sco.com or ...uunet!sco!rr.
  252. X
  253. END_OF_FILE
  254.   if test 3330 -ne `wc -c <'lyap/README'`; then
  255.     echo shar: \"'lyap/README'\" unpacked with wrong size!
  256.   fi
  257.   # end of 'lyap/README'
  258. fi
  259. if test -f 'lyap/TAGS' -a "${1}" != "-c" ; then 
  260.   echo shar: Will not clobber existing file \"'lyap/TAGS'\"
  261. else
  262.   echo shar: Extracting \"'lyap/TAGS'\" \(3239 characters\)
  263.   sed "s/^X//" >'lyap/TAGS' <<'END_OF_FILE'
  264. XABS               41 lyap.h           #define ABS(a)    (((a)<0) ? (0-(a)) : (a) )
  265. XCleanup           59 lyap.c           Cleanup() {
  266. XClear           1181 lyap.c           Clear() 
  267. XCreateXorGC     1202 lyap.c           CreateXorGC()
  268. XCycle_frames     623 lyap.c           Cycle_frames()
  269. XDestroy_frame   1390 lyap.c           Destroy_frame()
  270. XEndRubberBand   1276 lyap.c           void 
  271. XGetkey           632 lyap.c           Getkey(event)
  272. XMax               43 lyap.h           #define Max(x,y) ((x > y)?x:y)
  273. XMin               42 lyap.h           #define Min(x,y) ((x < y)?x:y)
  274. XRedraw           944 lyap.c           Redraw() 
  275. XSetupCorners    1231 lyap.c           SetupCorners(corners, data)
  276. XStartRubberBand 1214 lyap.c           void 
  277. XTrackRubberBand 1247 lyap.c           void 
  278. Xcheck_params     558 lyap.c           check_params(mapnum, parnum)
  279. Xcircle           312 lyap.c           circle(x, r)            /* sin() hump or sorta like the circle map */
  280. Xcomplyap         175 lyap.c           complyap()
  281. Xdcircle          321 lyap.c           dcircle(x, r)            /* derivative of the "sin() hump" */
  282. Xddoublelog       371 lyap.c           ddoublelog(x, r)        /* derivative of the double logistic */
  283. Xdleftlog         340 lyap.c           dleftlog(x, r)            /* derivative of the left skewed logistic */
  284. Xdlogistic        305 lyap.c           dlogistic(x, r)            /* the derivative of logistic map */
  285. Xdoublelog        361 lyap.c           doublelog(x, r)            /* double logistic */
  286. Xdrightlog        354 lyap.c           drightlog(x, r)            /* derivative of the right skewed logistic */
  287. Xfreemem         1463 lyap.c           freemem()
  288. Xgo_back         1350 lyap.c           go_back() 
  289. Xgo_down         1339 lyap.c           go_down() 
  290. Xgo_init         1382 lyap.c           go_init() 
  291. Xinit_canvas      412 lyap.c           init_canvas()
  292. Xinit_data        381 lyap.c           init_data()
  293. Xjumpwin         1360 lyap.c           jumpwin()
  294. Xleftlog          330 lyap.c           leftlog(x, r)            /* left skewed logistic */
  295. Xlogistic         298 lyap.c           logistic(x, r)            /* the familiar logistic map */
  296. Xmain              63 lyap.c           main(ac, av)
  297. Xmain_event       145 lyap.c           main_event()
  298. Xparseargs        434 lyap.c           parseargs(ac, av)
  299. Xprint_help      1407 lyap.c           print_help() 
  300. Xprint_values    1435 lyap.c           print_values() 
  301. Xrecalc          1166 lyap.c           recalc() 
  302. Xredisplay        864 lyap.c           void 
  303. Xredraw           914 lyap.c           redraw(exparray, index, cont)
  304. Xresize           878 lyap.c           resize()
  305. Xrestor_params   1086 lyap.c           restor_params() 
  306. Xrestor_picture  1128 lyap.c           restor_picture() {
  307. Xrightlog         347 lyap.c           rightlog(x, r)            /* right skewed logistic */
  308. Xsave_to_file    1010 lyap.c           save_to_file() 
  309. Xsendpoint        819 lyap.c           sendpoint(expo)
  310. Xset_new_params  1312 lyap.c           set_new_params(w, data)
  311. Xsetforcing      1483 lyap.c           setforcing()
  312. Xsetupmem        1470 lyap.c           setupmem()
  313. Xshow_defaults   1190 lyap.c           show_defaults() 
  314. Xstore_to_file    958 lyap.c           store_to_file() 
  315. Xusage            584 lyap.c           usage()
  316. END_OF_FILE
  317.   if test 3239 -ne `wc -c <'lyap/TAGS'`; then
  318.     echo shar: \"'lyap/TAGS'\" unpacked with wrong size!
  319.   fi
  320.   # end of 'lyap/TAGS'
  321. fi
  322. if test -f 'lyap/lib/Imakefile' -a "${1}" != "-c" ; then 
  323.   echo shar: Will not clobber existing file \"'lyap/lib/Imakefile'\"
  324. else
  325.   echo shar: Extracting \"'lyap/lib/Imakefile'\" \(580 characters\)
  326.   sed "s/^X//" >'lyap/lib/Imakefile' <<'END_OF_FILE'
  327. X
  328. X#    Uncomment the following line if you want to delay when color spinning
  329. X          DELAY = -DUSE_DELAY
  330. X# If you are using the delay functionality (above line uncommented), then
  331. X# comment out the next line if you want to use nap() rather than itimers
  332. X          SLEEP = -DHAS_ITIMER
  333. X# and uncomment the next line if you're using nap() on an SCO system
  334. X#        NAPLIB = -lx
  335. X
  336. X DEFINES = $(DELAY) $(SLEEP)
  337. XINCLUDES = -I.
  338. X
  339. X    SRCS = buffer.c hls2rgb.c init_color.c spin.c
  340. X
  341. X    OBJS = buffer.o hls2rgb.o init_color.o spin.o
  342. X
  343. XNormalLibraryObjectRule()
  344. XNormalLibraryTarget(Xrr, $(OBJS))
  345. END_OF_FILE
  346.   if test 580 -ne `wc -c <'lyap/lib/Imakefile'`; then
  347.     echo shar: \"'lyap/lib/Imakefile'\" unpacked with wrong size!
  348.   fi
  349.   # end of 'lyap/lib/Imakefile'
  350. fi
  351. if test -f 'lyap/lib/Makefile.std' -a "${1}" != "-c" ; then 
  352.   echo shar: Will not clobber existing file \"'lyap/lib/Makefile.std'\"
  353. else
  354.   echo shar: Extracting \"'lyap/lib/Makefile.std'\" \(325 characters\)
  355.   sed "s/^X//" >'lyap/lib/Makefile.std' <<'END_OF_FILE'
  356. XCC = cc 
  357. X#DEBUG =  -g
  358. X##
  359. X## Compiler Defines
  360. X## 
  361. XDEFINES = -DUSE_DELAY -DHAS_ITIMER
  362. X
  363. XCFLAGS = -O $(DEBUG) $(DEFINES)
  364. X
  365. XOBJS = bezier.o bspline.o buffer.o clip.o hls2rgb.o init_color.o spin.o
  366. X
  367. X.o:.c
  368. X
  369. Xall: libXrr.a
  370. X
  371. Xcp install:    all
  372. X
  373. Xclean:
  374. X    rm -f *.o
  375. X
  376. Xclobber:    clean
  377. X    rm -f libXrr.a
  378. X
  379. XlibXrr.a : $(OBJS)
  380. X    ar rv libXrr.a $(OBJS)
  381. X
  382. END_OF_FILE
  383.   if test 325 -ne `wc -c <'lyap/lib/Makefile.std'`; then
  384.     echo shar: \"'lyap/lib/Makefile.std'\" unpacked with wrong size!
  385.   fi
  386.   # end of 'lyap/lib/Makefile.std'
  387. fi
  388. if test -f 'lyap/lib/Package' -a "${1}" != "-c" ; then 
  389.   echo shar: Will not clobber existing file \"'lyap/lib/Package'\"
  390. else
  391.   echo shar: Extracting \"'lyap/lib/Package'\" \(227 characters\)
  392.   sed "s/^X//" >'lyap/lib/Package' <<'END_OF_FILE'
  393. Xecho "Making tags files"
  394. Xmake tags
  395. Xecho "Backing up previous shar file, if any"
  396. X[ -f lib.shar ] && mv lib.shar lib.shar-
  397. Xecho "Creating new shar file"
  398. Xshar Imakefile Package *.c *.h tags TAGS colormaps/* > lib.shar
  399. Xecho "Done"
  400. END_OF_FILE
  401.   if test 227 -ne `wc -c <'lyap/lib/Package'`; then
  402.     echo shar: \"'lyap/lib/Package'\" unpacked with wrong size!
  403.   fi
  404.   # end of 'lyap/lib/Package'
  405. fi
  406. if test -f 'lyap/lib/TAGS' -a "${1}" != "-c" ; then 
  407.   echo shar: Will not clobber existing file \"'lyap/lib/TAGS'\"
  408. else
  409.   echo shar: Extracting \"'lyap/lib/TAGS'\" \(1148 characters\)
  410.   sed "s/^X//" >'lyap/lib/TAGS' <<'END_OF_FILE'
  411. XBufferInPixmap    19 buffer.c         BufferInPixmap(display, pixmap, contexts, points, col, x, y)
  412. XBufferPoint       38 buffer.c         BufferPoint(display, window, pixmap, contexts, points, col, x, y)
  413. XDemoSpin         103 spin.c           DemoSpin(display, colormap, colors, start_color, num_colors, delay, factor)
  414. XFlushBuffer       89 buffer.c         FlushBuffer(display, window, pixmap, contexts, points, mincolor, maxcolor)
  415. XFlushPixmap       71 buffer.c         FlushPixmap(display, pixmap, contexts, points, mincolor, maxcolor)
  416. XInitBuffer        60 buffer.c         InitBuffer(points, maxcolor)
  417. XSpin              72 spin.c           Spin(display, colormap, colors, start_color, num_colors, delay, dir)
  418. XTimer             30 spin.c           void Timer(n)   /* waits for 'n' milliseconds (from xv-2.21 source) */
  419. Xhls2rgb           39 hls2rgb.c        void hls2rgb( hue_light_sat, rgb )
  420. Xhue_value         97 hls2rgb.c        static double hue_value( n1, n2, hue )
  421. Xinit_color        26 init_color.c     init_color(display, win, cmap, Colors, s_col, min, n_cols, wheel, prog, res, n)
  422. Xonalarm           25 spin.c           static void onalarm() {
  423. END_OF_FILE
  424.   if test 1148 -ne `wc -c <'lyap/lib/TAGS'`; then
  425.     echo shar: \"'lyap/lib/TAGS'\" unpacked with wrong size!
  426.   fi
  427.   # end of 'lyap/lib/TAGS'
  428. fi
  429. if test -f 'lyap/lib/hls2rgb.c' -a "${1}" != "-c" ; then 
  430.   echo shar: Will not clobber existing file \"'lyap/lib/hls2rgb.c'\"
  431. else
  432.   echo shar: Extracting \"'lyap/lib/hls2rgb.c'\" \(3436 characters\)
  433.   sed "s/^X//" >'lyap/lib/hls2rgb.c' <<'END_OF_FILE'
  434. X/*************************************************************************
  435. X *                                                                       *
  436. X *  Copyright (c) 1992, 1993 Ronald Joe Record                           *
  437. X *                                                                       *
  438. X *  All rights reserved. No part of this program or publication may be   *
  439. X *  reproduced, transmitted, transcribed, stored in a retrieval system,  *
  440. X *  or translated into any language or computer language, in any form or *
  441. X *  by any means, electronic, mechanical, magnetic, optical, chemical,   *
  442. X *  biological, or otherwise, without the prior written permission of:   *
  443. X *                                                                       *
  444. X *      Ronald Joe Record (408) 458-3718                                 *
  445. X *      212 Owen St., Santa Cruz, California 95062 USA                   *
  446. X *                                                                       *
  447. X *************************************************************************/
  448. X
  449. X/* From colorwheel.c which is part of color3 by Hiram Clawson (hiramc@sco.com)*/
  450. X
  451. X#include    <X11/Xlib.h>
  452. X#include    <X11/Xutil.h>
  453. X
  454. X#ifdef _NO_PROTO
  455. Xstatic double hue_value();
  456. X#else
  457. Xstatic double hue_value( double, double, double );
  458. X#endif
  459. X
  460. X/***********************************************************************
  461. X * NAME: hls2rgb() from foley and van dam, fundamentals of interactive ...
  462. X *        page 619
  463. X *
  464. X * PURPOSE: Convert hls[0..3600][0..1000][0..1000] space to rgb space
  465. X *    That is the Hue, Lightness, Saturation color model.
  466. X *    Which is two cones, base to base, the bottom tip is black, the
  467. X *    top tip is white, the middle (bases) around the outside is a color
  468. X *    wheel.  The axis of this solid is Lightness.  Hue is the angular
  469. X *    measure around the cones, and the saturation is the radius from the
  470. X *    axis towards the surface of the cones.
  471. X ***********************************************************************/
  472. Xvoid hls2rgb( hue_light_sat, rgb )
  473. Xint hue_light_sat[3];
  474. Xint rgb[3];        /*    Each in range [0..65535]    */
  475. X{
  476. X    double r, g, b, h, l, s;
  477. X    double m1, m2;
  478. X
  479. X    h = (double) hue_light_sat[0] / 10.0;
  480. X    l = (double) hue_light_sat[1] / 1000.0;
  481. X    s = (double) hue_light_sat[2] / 1000.0;
  482. X
  483. X    if ( l < 0.5 )
  484. X    {
  485. X        m2 = l * ( 1.0 + s );
  486. X    }
  487. X    else
  488. X    {
  489. X        m2 = l + s - (l * s);
  490. X    }
  491. X    m1 = (2.0 * l) - m2;
  492. X    if ( (s + 1.0) == 1.0 )
  493. X    {
  494. X        if ( (h + 1.0) < 1.0 )
  495. X        {
  496. X            r = g = b = l;
  497. X        }
  498. X        else
  499. X        {
  500. X            r = g = b = 0.0;
  501. X        }
  502. X    }
  503. X    else
  504. X    {
  505. X        r = hue_value( m1, m2, h - 120.0 );    /* changed this so that 0 is blue */
  506. X        g = hue_value( m1, m2, h );            /* 120 is green, and -120 is red */
  507. X        b = hue_value( m1, m2, h + 120.0 );    /* rr@sco.com 15-Feb-93 */
  508. X    }
  509. X    rgb[0] = 65535.0 * r;
  510. X    rgb[1] = 65535.0 * g;
  511. X    rgb[2] = 65535.0 * b;
  512. X    if ( rgb[0] > 65535 )
  513. X        rgb[0] = 65535;
  514. X    else if ( rgb[0] < 0 )
  515. X        rgb[0] = 0;
  516. X
  517. X    if ( rgb[1] > 65535 )
  518. X        rgb[1] = 65535;
  519. X    else if ( rgb[1] < 0 )
  520. X        rgb[1] = 0;
  521. X
  522. X    if ( rgb[2] > 65535 )
  523. X        rgb[2] = 65535;
  524. X    else if ( rgb[2] < 0 )
  525. X        rgb[2] = 0;
  526. X
  527. X    return;
  528. X}    /* end of void hls2rgb( hue_light_sat, rgb )    */
  529. X
  530. Xstatic double hue_value( n1, n2, hue )
  531. Xdouble n1;
  532. Xdouble n2;
  533. Xdouble hue;
  534. X{
  535. X    if ( hue > 360.0 )
  536. X        hue -= 360.0;
  537. X    if ( hue < 0.0 )
  538. X        hue += 360.0;
  539. X    if ( hue < 60.0 )
  540. X        return  ( n1 + ((n2 - n1)*hue/60.0));
  541. X    else if ( hue < 180.0 )
  542. X        return ( n2 );
  543. X    else if ( hue < 240.0 )
  544. X        return ( n1 + ((n2 - n1)*(240.0 - hue)/60.0));
  545. X    else
  546. X        return( n1 );
  547. X}    /* end of double hue_value( n1, n2, hue )    */
  548. END_OF_FILE
  549.   if test 3436 -ne `wc -c <'lyap/lib/hls2rgb.c'`; then
  550.     echo shar: \"'lyap/lib/hls2rgb.c'\" unpacked with wrong size!
  551.   fi
  552.   # end of 'lyap/lib/hls2rgb.c'
  553. fi
  554. if test -f 'lyap/lib/libXrr.h' -a "${1}" != "-c" ; then 
  555.   echo shar: Will not clobber existing file \"'lyap/lib/libXrr.h'\"
  556. else
  557.   echo shar: Extracting \"'lyap/lib/libXrr.h'\" \(1305 characters\)
  558.   sed "s/^X//" >'lyap/lib/libXrr.h' <<'END_OF_FILE'
  559. X/*************************************************************************
  560. X *                                                                       *
  561. X *  Copyright (c) 1992, 1993 Ronald Joe Record                           *
  562. X *                                                                       *
  563. X *  All rights reserved. No part of this program or publication may be   *
  564. X *  reproduced, transmitted, transcribed, stored in a retrieval system,  *
  565. X *  or translated into any language or computer language, in any form or *
  566. X *  by any means, electronic, mechanical, magnetic, optical, chemical,   *
  567. X *  biological, or otherwise, without the prior written permission of:   *
  568. X *                                                                       *
  569. X *      Ronald Joe Record (408) 458-3718                                 *
  570. X *      212 Owen St., Santa Cruz, California 95062 USA                   *
  571. X *                                                                       *
  572. X *************************************************************************/
  573. X
  574. X#ifndef LIBXRR_H
  575. X
  576. X#include <X11/Xlib.h>
  577. X
  578. X#define MAXWHEELS 15
  579. X#define RGB_MAX 65000
  580. X#define MAXPOINTS  1024
  581. X#define MAXCOLOR 256
  582. X
  583. Xtypedef struct points_t {
  584. X    XPoint data[MAXCOLOR][MAXPOINTS];
  585. X    int npoints[MAXCOLOR];
  586. X    } points_t;
  587. X
  588. X#define LIBXRR_H
  589. X#endif
  590. END_OF_FILE
  591.   if test 1305 -ne `wc -c <'lyap/lib/libXrr.h'`; then
  592.     echo shar: \"'lyap/lib/libXrr.h'\" unpacked with wrong size!
  593.   fi
  594.   # end of 'lyap/lib/libXrr.h'
  595. fi
  596. if test -f 'lyap/lib/tags' -a "${1}" != "-c" ; then 
  597.   echo shar: Will not clobber existing file \"'lyap/lib/tags'\"
  598. else
  599.   echo shar: Extracting \"'lyap/lib/tags'\" \(800 characters\)
  600.   sed "s/^X//" >'lyap/lib/tags' <<'END_OF_FILE'
  601. XBufferInPixmap    buffer.c    ?^BufferInPixmap(display, pixmap, contexts, points, ?
  602. XBufferPoint    buffer.c    ?^BufferPoint(display, window, pixmap, contexts, poi?
  603. XDemoSpin    spin.c    ?^DemoSpin(display, colormap, colors, start_color, n?
  604. XFlushBuffer    buffer.c    ?^FlushBuffer(display, window, pixmap, contexts, poi?
  605. XFlushPixmap    buffer.c    ?^FlushPixmap(display, pixmap, contexts, points, min?
  606. XInitBuffer    buffer.c    ?^InitBuffer(points, maxcolor)$?
  607. XSpin    spin.c    ?^Spin(display, colormap, colors, start_color, num_c?
  608. XTimer    spin.c    ?^void Timer(n)   /* waits for 'n' milliseconds (fro?
  609. Xhls2rgb    hls2rgb.c    ?^void hls2rgb( hue_light_sat, rgb )$?
  610. Xhue_value    hls2rgb.c    ?^static double hue_value( n1, n2, hue )$?
  611. Xinit_color    init_color.c    ?^init_color(display, win, cmap, Colors, s_col, min,?
  612. Xonalarm    spin.c    ?^static void onalarm() {$?
  613. END_OF_FILE
  614.   if test 800 -ne `wc -c <'lyap/lib/tags'`; then
  615.     echo shar: \"'lyap/lib/tags'\" unpacked with wrong size!
  616.   fi
  617.   # end of 'lyap/lib/tags'
  618. fi
  619. if test -f 'lyap/lyap.map' -a "${1}" != "-c" ; then 
  620.   echo shar: Will not clobber existing file \"'lyap/lyap.map'\"
  621. else
  622.   echo shar: Extracting \"'lyap/lyap.map'\" \(3072 characters\)
  623.   sed "s/^X//" >'lyap/lyap.map' <<'END_OF_FILE'
  624. X  0   0   0
  625. X  0   0 120
  626. X  0  80 152
  627. X  0 108 184
  628. X 60 144 180
  629. X124 180 176
  630. X188 216 172
  631. X252 252 168
  632. X252 252   0
  633. X252 168   0
  634. X252  84   0
  635. X252   0   0
  636. X168   0   0
  637. X 84   0   0
  638. X252 252  84
  639. X252  84   0
  640. X240  40  20
  641. X244 108  16
  642. X248 180   8
  643. X252 252   0
  644. X252 248  40
  645. X252 244  84
  646. X252 240 124
  647. X252 236 168
  648. X252 232 212
  649. X236 216 196
  650. X216 200 180
  651. X196 180 164
  652. X176 164 148
  653. X156 144 132
  654. X136 128 116
  655. X120 108 100
  656. X100  92  84
  657. X 80  72  68
  658. X 60  56  52
  659. X 40  36  36
  660. X 20  20  20
  661. X  0   0   0
  662. X 48   0   0
  663. X100   0   0
  664. X148   0   0
  665. X200   0   0
  666. X252   0   0
  667. X192   0   0
  668. X128   0   0
  669. X 64   0   0
  670. X  0   0   0
  671. X 16  12  16
  672. X 48  44  28
  673. X 80  80  40
  674. X116 112  52
  675. X148 148  68
  676. X184 180  80
  677. X216 216  92
  678. X252 252 108
  679. X248 244 120
  680. X244 236 132
  681. X236 228 144
  682. X232 220 156
  683. X228 208 172
  684. X220 200 184
  685. X216 192 196
  686. X228 212 208
  687. X240 232 224
  688. X252 252 240
  689. X168 168 160
  690. X 84  84  80
  691. X  0   0   0
  692. X  0   4  12
  693. X  4   8  28
  694. X  8  16  44
  695. X  8  16  52
  696. X 12  16  60
  697. X 12  16  68
  698. X 16  16  76
  699. X 20  20  88
  700. X 20  64 108
  701. X 20 112 128
  702. X 24 156 148
  703. X 24 204 168
  704. X 28 252 192
  705. X 28 216 152
  706. X 28 180 156
  707. X 28 144 156
  708. X 28 108 160
  709. X 28  72 160
  710. X 24  32 164
  711. X 12  16 148
  712. X  0   0 132
  713. X 40  40 152
  714. X 84  84 172
  715. X124 124 192
  716. X168 168 212
  717. X208 208 232
  718. X252 252 252
  719. X252 228 232
  720. X252 204 212
  721. X252 180 188
  722. X252 156 168
  723. X252 132 144
  724. X252 108 124
  725. X252  84 100
  726. X216  72  88
  727. X180  60  72
  728. X144  48  60
  729. X108  36  44
  730. X 72  24  32
  731. X 36  12  16
  732. X  0   0   0
  733. X 20  20  20
  734. X 44  44  44
  735. X 68  68  68
  736. X 88  88  88
  737. X112 112 112
  738. X136 136 136
  739. X160 160 160
  740. X180 180 180
  741. X204 204 204
  742. X228 228 228
  743. X252 252 252
  744. X252 252 216
  745. X252 252 180
  746. X252 252 144
  747. X252 252 108
  748. X252 252  72
  749. X252 252  36
  750. X252 252   0
  751. X252 232  40
  752. X252 208  80
  753. X252 188 120
  754. X252 164 164
  755. X252 140 140
  756. X252 116 116
  757. X252  92  92
  758. X252  72  72
  759. X252  48  48
  760. X252  24  24
  761. X252  76  24
  762. X252 128  28
  763. X252 180  32
  764. X252 232  36
  765. X252 236  88
  766. X252 240 144
  767. X252 244 196
  768. X252 252 252
  769. X248 236 228
  770. X244 220 204
  771. X240 204 180
  772. X236 184 152
  773. X232 168 128
  774. X228 152 104
  775. X224 132  76
  776. X220 116  52
  777. X216 100  28
  778. X212  80   0
  779. X192  76  28
  780. X172  72  56
  781. X148  68  84
  782. X128  60 116
  783. X108  56 144
  784. X 84  52 172
  785. X 64  48 200
  786. X 40  40 232
  787. X 84  80 232
  788. X124 120 236
  789. X168 160 236
  790. X208 200 236
  791. X252 240 240
  792. X228 216 216
  793. X200 188 192
  794. X172 164 164
  795. X148 136 140
  796. X120 112 112
  797. X 92  84  88
  798. X 68  60  60
  799. X 40  32  36
  800. X 12   4   8
  801. X 28   8  20
  802. X 44  12  32
  803. X 60  16  40
  804. X 72  20  52
  805. X 88  24  64
  806. X104  28  72
  807. X120  32  84
  808. X252 252  96
  809. X252 236 108
  810. X252 216 124
  811. X252 196 136
  812. X252 180 152
  813. X252 160 164
  814. X252 140 180
  815. X252 152 172
  816. X252 168 164
  817. X252 184 156
  818. X252 200 148
  819. X252 216 140
  820. X252 232 132
  821. X252 240 192
  822. X252 252 252
  823. X 24  28 248
  824. X 52  56 244
  825. X 80  84 236
  826. X104 112 232
  827. X132 140 228
  828. X160 168 220
  829. X172 180 224
  830. X188 196 228
  831. X204 208 236
  832. X220 224 240
  833. X236 236 244
  834. X252 252 252
  835. X252 252 232
  836. X252 252 208
  837. X252 252 188
  838. X252 252 164
  839. X252 252 144
  840. X252 252 120
  841. X252 224 108
  842. X248 192  92
  843. X244 160  76
  844. X240 128  60
  845. X236  96  48
  846. X232  64  32
  847. X228  32  16
  848. X224   0   0
  849. X200   0   0
  850. X176   0   0
  851. X152   0   0
  852. X128   0   0
  853. X100   0   0
  854. X 76   0   0
  855. X 52   0   0
  856. X 28   0   0
  857. X  0   0   0
  858. X240 220 112
  859. X240 224 136
  860. X240 228 156
  861. X240 236 180
  862. X240 240 200
  863. X252 252 212
  864. X232 192 180
  865. X204 144 152
  866. X176  96 120
  867. X148  48  92
  868. X120   0  60
  869. X152  40  84
  870. X184  80 112
  871. X216 120 136
  872. X252 160 164
  873. X  0   0   0
  874. X240 240 240
  875. X  0   0   0
  876. X120 120 120
  877. X140  80  52
  878. X212 120  80
  879. X252 224 140
  880. END_OF_FILE
  881.   if test 3072 -ne `wc -c <'lyap/lyap.map'`; then
  882.     echo shar: \"'lyap/lyap.map'\" unpacked with wrong size!
  883.   fi
  884.   # end of 'lyap/lyap.map'
  885. fi
  886. if test -f 'lyap/params/asharpe.1' -a "${1}" != "-c" ; then 
  887.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.1'\"
  888. else
  889.   echo shar: Extracting \"'lyap/params/asharpe.1'\" \(76 characters\)
  890.   sed "s/^X//" >'lyap/params/asharpe.1' <<'END_OF_FILE'
  891. Xlyap -a3.75 -b3.299999 -w0.05 -h0.05 -D200 -S100 -fabaabbaaabbb -H480 -W640
  892. END_OF_FILE
  893.   if test 76 -ne `wc -c <'lyap/params/asharpe.1'`; then
  894.     echo shar: \"'lyap/params/asharpe.1'\" unpacked with wrong size!
  895.   fi
  896.   # end of 'lyap/params/asharpe.1'
  897. fi
  898. if test -f 'lyap/params/asharpe.2' -a "${1}" != "-c" ; then 
  899.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.2'\"
  900. else
  901.   echo shar: Extracting \"'lyap/params/asharpe.2'\" \(42 characters\)
  902.   sed "s/^X//" >'lyap/params/asharpe.2' <<'END_OF_FILE'
  903. Xlyap -a3.8 -b3.2 -h.05 -w.05 -fbbbbbaaaaa
  904. END_OF_FILE
  905.   if test 42 -ne `wc -c <'lyap/params/asharpe.2'`; then
  906.     echo shar: \"'lyap/params/asharpe.2'\" unpacked with wrong size!
  907.   fi
  908.   # end of 'lyap/params/asharpe.2'
  909. fi
  910. if test -f 'lyap/params/asharpe.3' -a "${1}" != "-c" ; then 
  911.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.3'\"
  912. else
  913.   echo shar: Extracting \"'lyap/params/asharpe.3'\" \(71 characters\)
  914.   sed "s/^X//" >'lyap/params/asharpe.3' <<'END_OF_FILE'
  915. Xlyap -a 3.4 -b 3.04 -w .5 -h .5 -f abbbbbbbbb -W640 -H480 -S500 -D1000
  916. END_OF_FILE
  917.   if test 71 -ne `wc -c <'lyap/params/asharpe.3'`; then
  918.     echo shar: \"'lyap/params/asharpe.3'\" unpacked with wrong size!
  919.   fi
  920.   # end of 'lyap/params/asharpe.3'
  921. fi
  922. if test -f 'lyap/params/asharpe.4' -a "${1}" != "-c" ; then 
  923.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.4'\"
  924. else
  925.   echo shar: Extracting \"'lyap/params/asharpe.4'\" \(64 characters\)
  926.   sed "s/^X//" >'lyap/params/asharpe.4' <<'END_OF_FILE'
  927. Xlyap -a3.5 -b3.0 -w0.2 -h0.2 -D600 -S300 -faaabbbab -H480 -W640
  928. END_OF_FILE
  929.   if test 64 -ne `wc -c <'lyap/params/asharpe.4'`; then
  930.     echo shar: \"'lyap/params/asharpe.4'\" unpacked with wrong size!
  931.   fi
  932.   # end of 'lyap/params/asharpe.4'
  933. fi
  934. if test -f 'lyap/params/asharpe.5' -a "${1}" != "-c" ; then 
  935.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.5'\"
  936. else
  937.   echo shar: Extracting \"'lyap/params/asharpe.5'\" \(58 characters\)
  938.   sed "s/^X//" >'lyap/params/asharpe.5' <<'END_OF_FILE'
  939. Xlyap -a3.55667 -b3.2 -h.05 -w.05 -fbbbbbaaaaa -H480 -W640
  940. END_OF_FILE
  941.   if test 58 -ne `wc -c <'lyap/params/asharpe.5'`; then
  942.     echo shar: \"'lyap/params/asharpe.5'\" unpacked with wrong size!
  943.   fi
  944.   # end of 'lyap/params/asharpe.5'
  945. fi
  946. if test -f 'lyap/params/asharpe.6' -a "${1}" != "-c" ; then 
  947.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.6'\"
  948. else
  949.   echo shar: Extracting \"'lyap/params/asharpe.6'\" \(62 characters\)
  950.   sed "s/^X//" >'lyap/params/asharpe.6' <<'END_OF_FILE'
  951. Xlyap -a3.79 -b3.22 -h.02999 -w.02999 -fbbbbbaaaaa -H480 -W640
  952. END_OF_FILE
  953.   if test 62 -ne `wc -c <'lyap/params/asharpe.6'`; then
  954.     echo shar: \"'lyap/params/asharpe.6'\" unpacked with wrong size!
  955.   fi
  956.   # end of 'lyap/params/asharpe.6'
  957. fi
  958. if test -f 'lyap/params/asharpe.7' -a "${1}" != "-c" ; then 
  959.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.7'\"
  960. else
  961.   echo shar: Extracting \"'lyap/params/asharpe.7'\" \(76 characters\)
  962.   sed "s/^X//" >'lyap/params/asharpe.7' <<'END_OF_FILE'
  963. Xlyap -a3.7999 -b3.299999 -w0.2 -h0.2 -D300 -S150 -fabaabbaaabbb -H480 -W640
  964. END_OF_FILE
  965.   if test 76 -ne `wc -c <'lyap/params/asharpe.7'`; then
  966.     echo shar: \"'lyap/params/asharpe.7'\" unpacked with wrong size!
  967.   fi
  968.   # end of 'lyap/params/asharpe.7'
  969. fi
  970. if test -f 'lyap/params/asharpe.8' -a "${1}" != "-c" ; then 
  971.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.8'\"
  972. else
  973.   echo shar: Extracting \"'lyap/params/asharpe.8'\" \(73 characters\)
  974.   sed "s/^X//" >'lyap/params/asharpe.8' <<'END_OF_FILE'
  975. Xlyap -a3.89 -b3.22 -h.028 -w.02999 -fbbbbbaaaaa -S600 -D1000 -H480 -W640
  976. END_OF_FILE
  977.   if test 73 -ne `wc -c <'lyap/params/asharpe.8'`; then
  978.     echo shar: \"'lyap/params/asharpe.8'\" unpacked with wrong size!
  979.   fi
  980.   # end of 'lyap/params/asharpe.8'
  981. fi
  982. if test -f 'lyap/params/asharpe.9' -a "${1}" != "-c" ; then 
  983.   echo shar: Will not clobber existing file \"'lyap/params/asharpe.9'\"
  984. else
  985.   echo shar: Extracting \"'lyap/params/asharpe.9'\" \(54 characters\)
  986.   sed "s/^X//" >'lyap/params/asharpe.9' <<'END_OF_FILE'
  987. Xlyap -a3.2 -b3.7 -w0.05 -h.005 -f abbbbaa -H700 -W800
  988. END_OF_FILE
  989.   if test 54 -ne `wc -c <'lyap/params/asharpe.9'`; then
  990.     echo shar: \"'lyap/params/asharpe.9'\" unpacked with wrong size!
  991.   fi
  992.   # end of 'lyap/params/asharpe.9'
  993. fi
  994. if test -f 'lyap/params/bigbug' -a "${1}" != "-c" ; then 
  995.   echo shar: Will not clobber existing file \"'lyap/params/bigbug'\"
  996. else
  997.   echo shar: Extracting \"'lyap/params/bigbug'\" \(99 characters\)
  998.   sed "s/^X//" >'lyap/params/bigbug' <<'END_OF_FILE'
  999. Xlyap -f abbba -D 800 -S 800 -W 640 -H 480 -M -0.85 -a 3.813906 -w 0.050135 -b 3.815211 -h 0.049336
  1000. END_OF_FILE
  1001.   if test 99 -ne `wc -c <'lyap/params/bigbug'`; then
  1002.     echo shar: \"'lyap/params/bigbug'\" unpacked with wrong size!
  1003.   fi
  1004.   # end of 'lyap/params/bigbug'
  1005. fi
  1006. if test -f 'lyap/params/catsup' -a "${1}" != "-c" ; then 
  1007.   echo shar: Will not clobber existing file \"'lyap/params/catsup'\"
  1008. else
  1009.   echo shar: Extracting \"'lyap/params/catsup'\" \(95 characters\)
  1010.   sed "s/^X//" >'lyap/params/catsup' <<'END_OF_FILE'
  1011. Xlyap -f aaaaaabbbbbb -D 500 -S 500 -M -0.85 -a 3.318053 -w 0.108585 -b 3.692203 -h 0.064125 $*
  1012. END_OF_FILE
  1013.   if test 95 -ne `wc -c <'lyap/params/catsup'`; then
  1014.     echo shar: \"'lyap/params/catsup'\" unpacked with wrong size!
  1015.   fi
  1016.   # end of 'lyap/params/catsup'
  1017. fi
  1018. if test -f 'lyap/params/circle-12' -a "${1}" != "-c" ; then 
  1019.   echo shar: Will not clobber existing file \"'lyap/params/circle-12'\"
  1020. else
  1021.   echo shar: Extracting \"'lyap/params/circle-12'\" \(64 characters\)
  1022.   sed "s/^X//" >'lyap/params/circle-12' <<'END_OF_FILE'
  1023. X
  1024. Xlyap -f aaaaaabbbbbb -m 1 -D 400 -S 200 -W 256 -H 256 -M -0.85
  1025. END_OF_FILE
  1026.   if test 64 -ne `wc -c <'lyap/params/circle-12'`; then
  1027.     echo shar: \"'lyap/params/circle-12'\" unpacked with wrong size!
  1028.   fi
  1029.   # end of 'lyap/params/circle-12'
  1030. fi
  1031. if test -f 'lyap/params/circle-12test' -a "${1}" != "-c" ; then 
  1032.   echo shar: Will not clobber existing file \"'lyap/params/circle-12test'\"
  1033. else
  1034.   echo shar: Extracting \"'lyap/params/circle-12test'\" \(64 characters\)
  1035.   sed "s/^X//" >'lyap/params/circle-12test' <<'END_OF_FILE'
  1036. X
  1037. Xlyap -f aaaaaabbbbbb -m 1 -D 400 -S 200 -W 256 -H 256 -M -0.85
  1038. END_OF_FILE
  1039.   if test 64 -ne `wc -c <'lyap/params/circle-12test'`; then
  1040.     echo shar: \"'lyap/params/circle-12test'\" unpacked with wrong size!
  1041.   fi
  1042.   # end of 'lyap/params/circle-12test'
  1043. fi
  1044. if test -f 'lyap/params/circle-2' -a "${1}" != "-c" ; then 
  1045.   echo shar: Will not clobber existing file \"'lyap/params/circle-2'\"
  1046. else
  1047.   echo shar: Extracting \"'lyap/params/circle-2'\" \(48 characters\)
  1048.   sed "s/^X//" >'lyap/params/circle-2' <<'END_OF_FILE'
  1049. X
  1050. Xlyap -m 1 -D 400 -S 200 -W 256 -H 256 -M -0.85
  1051. END_OF_FILE
  1052.   if test 48 -ne `wc -c <'lyap/params/circle-2'`; then
  1053.     echo shar: \"'lyap/params/circle-2'\" unpacked with wrong size!
  1054.   fi
  1055.   # end of 'lyap/params/circle-2'
  1056. fi
  1057. if test -f 'lyap/params/circle-8' -a "${1}" != "-c" ; then 
  1058.   echo shar: Will not clobber existing file \"'lyap/params/circle-8'\"
  1059. else
  1060.   echo shar: Extracting \"'lyap/params/circle-8'\" \(60 characters\)
  1061.   sed "s/^X//" >'lyap/params/circle-8' <<'END_OF_FILE'
  1062. X
  1063. Xlyap -f abbabaab -m 1 -D 400 -S 200 -W 256 -H 256 -M -0.85
  1064. END_OF_FILE
  1065.   if test 60 -ne `wc -c <'lyap/params/circle-8'`; then
  1066.     echo shar: \"'lyap/params/circle-8'\" unpacked with wrong size!
  1067.   fi
  1068.   # end of 'lyap/params/circle-8'
  1069. fi
  1070. if test -f 'lyap/params/manray' -a "${1}" != "-c" ; then 
  1071.   echo shar: Will not clobber existing file \"'lyap/params/manray'\"
  1072. else
  1073.   echo shar: Extracting \"'lyap/params/manray'\" \(102 characters\)
  1074.   sed "s/^X//" >'lyap/params/manray' <<'END_OF_FILE'
  1075. Xlyap -f abbabaab -D 800 -S 200 -W 400 -H 350 -M -0.85 -I 0.05 -a 3.91 -w 0.0899999999 -b 3.28 -h 0.35
  1076. END_OF_FILE
  1077.   if test 102 -ne `wc -c <'lyap/params/manray'`; then
  1078.     echo shar: \"'lyap/params/manray'\" unpacked with wrong size!
  1079.   fi
  1080.   # end of 'lyap/params/manray'
  1081. fi
  1082. if test -f 'lyap/params/period-12' -a "${1}" != "-c" ; then 
  1083.   echo shar: Will not clobber existing file \"'lyap/params/period-12'\"
  1084. else
  1085.   echo shar: Extracting \"'lyap/params/period-12'\" \(59 characters\)
  1086.   sed "s/^X//" >'lyap/params/period-12' <<'END_OF_FILE'
  1087. X
  1088. Xlyap -f aaaaaabbbbbb -D 400 -S 200 -W 256 -H 256 -M -0.85
  1089. END_OF_FILE
  1090.   if test 59 -ne `wc -c <'lyap/params/period-12'`; then
  1091.     echo shar: \"'lyap/params/period-12'\" unpacked with wrong size!
  1092.   fi
  1093.   # end of 'lyap/params/period-12'
  1094. fi
  1095. if test -f 'lyap/params/period-2' -a "${1}" != "-c" ; then 
  1096.   echo shar: Will not clobber existing file \"'lyap/params/period-2'\"
  1097. else
  1098.   echo shar: Extracting \"'lyap/params/period-2'\" \(43 characters\)
  1099.   sed "s/^X//" >'lyap/params/period-2' <<'END_OF_FILE'
  1100. X
  1101. Xlyap -D 400 -S 200 -W 256 -H 256 -M -0.85
  1102. END_OF_FILE
  1103.   if test 43 -ne `wc -c <'lyap/params/period-2'`; then
  1104.     echo shar: \"'lyap/params/period-2'\" unpacked with wrong size!
  1105.   fi
  1106.   # end of 'lyap/params/period-2'
  1107. fi
  1108. if test -f 'lyap/params/period-4' -a "${1}" != "-c" ; then 
  1109.   echo shar: Will not clobber existing file \"'lyap/params/period-4'\"
  1110. else
  1111.   echo shar: Extracting \"'lyap/params/period-4'\" \(51 characters\)
  1112.   sed "s/^X//" >'lyap/params/period-4' <<'END_OF_FILE'
  1113. X
  1114. Xlyap -f abbb -D 400 -S 200 -W 256 -H 256 -M -0.85
  1115. END_OF_FILE
  1116.   if test 51 -ne `wc -c <'lyap/params/period-4'`; then
  1117.     echo shar: \"'lyap/params/period-4'\" unpacked with wrong size!
  1118.   fi
  1119.   # end of 'lyap/params/period-4'
  1120. fi
  1121. if test -f 'lyap/params/period-8' -a "${1}" != "-c" ; then 
  1122.   echo shar: Will not clobber existing file \"'lyap/params/period-8'\"
  1123. else
  1124.   echo shar: Extracting \"'lyap/params/period-8'\" \(55 characters\)
  1125.   sed "s/^X//" >'lyap/params/period-8' <<'END_OF_FILE'
  1126. X
  1127. Xlyap -f abbabaab -D 400 -S 200 -W 256 -H 256 -M -0.85
  1128. END_OF_FILE
  1129.   if test 55 -ne `wc -c <'lyap/params/period-8'`; then
  1130.     echo shar: \"'lyap/params/period-8'\" unpacked with wrong size!
  1131.   fi
  1132.   # end of 'lyap/params/period-8'
  1133. fi
  1134. if test -f 'lyap/params/skewed-12' -a "${1}" != "-c" ; then 
  1135.   echo shar: Will not clobber existing file \"'lyap/params/skewed-12'\"
  1136. else
  1137.   echo shar: Extracting \"'lyap/params/skewed-12'\" \(64 characters\)
  1138.   sed "s/^X//" >'lyap/params/skewed-12' <<'END_OF_FILE'
  1139. X
  1140. Xlyap -m 2 -f aaaaaabbbbbb -D 400 -S 200 -W 256 -H 256 -M -0.85
  1141. END_OF_FILE
  1142.   if test 64 -ne `wc -c <'lyap/params/skewed-12'`; then
  1143.     echo shar: \"'lyap/params/skewed-12'\" unpacked with wrong size!
  1144.   fi
  1145.   # end of 'lyap/params/skewed-12'
  1146. fi
  1147. if test -f 'lyap/params/skewed-2' -a "${1}" != "-c" ; then 
  1148.   echo shar: Will not clobber existing file \"'lyap/params/skewed-2'\"
  1149. else
  1150.   echo shar: Extracting \"'lyap/params/skewed-2'\" \(48 characters\)
  1151.   sed "s/^X//" >'lyap/params/skewed-2' <<'END_OF_FILE'
  1152. X
  1153. Xlyap -m 2 -D 400 -S 200 -W 256 -H 256 -M -0.85
  1154. END_OF_FILE
  1155.   if test 48 -ne `wc -c <'lyap/params/skewed-2'`; then
  1156.     echo shar: \"'lyap/params/skewed-2'\" unpacked with wrong size!
  1157.   fi
  1158.   # end of 'lyap/params/skewed-2'
  1159. fi
  1160. if test -f 'lyap/params/skewed-4' -a "${1}" != "-c" ; then 
  1161.   echo shar: Will not clobber existing file \"'lyap/params/skewed-4'\"
  1162. else
  1163.   echo shar: Extracting \"'lyap/params/skewed-4'\" \(56 characters\)
  1164.   sed "s/^X//" >'lyap/params/skewed-4' <<'END_OF_FILE'
  1165. X
  1166. Xlyap -m 2 -f abbb -D 400 -S 200 -W 256 -H 256 -M -0.85
  1167. END_OF_FILE
  1168.   if test 56 -ne `wc -c <'lyap/params/skewed-4'`; then
  1169.     echo shar: \"'lyap/params/skewed-4'\" unpacked with wrong size!
  1170.   fi
  1171.   # end of 'lyap/params/skewed-4'
  1172. fi
  1173. if test -f 'lyap/params/skewed-8' -a "${1}" != "-c" ; then 
  1174.   echo shar: Will not clobber existing file \"'lyap/params/skewed-8'\"
  1175. else
  1176.   echo shar: Extracting \"'lyap/params/skewed-8'\" \(61 characters\)
  1177.   sed "s/^X//" >'lyap/params/skewed-8' <<'END_OF_FILE'
  1178. X
  1179. Xlyap -m 2 -f abbabaab  -D 400 -S 200 -W 256 -H 256 -M -0.85
  1180. END_OF_FILE
  1181.   if test 61 -ne `wc -c <'lyap/params/skewed-8'`; then
  1182.     echo shar: \"'lyap/params/skewed-8'\" unpacked with wrong size!
  1183.   fi
  1184.   # end of 'lyap/params/skewed-8'
  1185. fi
  1186. if test -f 'lyap/params/tbug' -a "${1}" != "-c" ; then 
  1187.   echo shar: Will not clobber existing file \"'lyap/params/tbug'\"
  1188. else
  1189.   echo shar: Extracting \"'lyap/params/tbug'\" \(103 characters\)
  1190.   sed "s/^X//" >'lyap/params/tbug' <<'END_OF_FILE'
  1191. Xlyap -f aaaaaabbbbbbbbb -D 1600 -S 1600 -W 640 -H 480 -M -0.85 -a 3.82 -w 0.050135 -b 3.82 -h 0.049336
  1192. END_OF_FILE
  1193.   if test 103 -ne `wc -c <'lyap/params/tbug'`; then
  1194.     echo shar: \"'lyap/params/tbug'\" unpacked with wrong size!
  1195.   fi
  1196.   # end of 'lyap/params/tbug'
  1197. fi
  1198. if test -f 'lyap/params/zity' -a "${1}" != "-c" ; then 
  1199.   echo shar: Will not clobber existing file \"'lyap/params/zity'\"
  1200. else
  1201.   echo shar: Extracting \"'lyap/params/zity'\" \(86 characters\)
  1202.   sed "s/^X//" >'lyap/params/zity' <<'END_OF_FILE'
  1203. Xlyap -f aaaaaabbbbbb -D 800 -S 400 -W 400 -H 350 -M -0.85 -a 2.5 -w 1.0 -b 3.0 -h 1.0
  1204. END_OF_FILE
  1205.   if test 86 -ne `wc -c <'lyap/params/zity'`; then
  1206.     echo shar: \"'lyap/params/zity'\" unpacked with wrong size!
  1207.   fi
  1208.   # end of 'lyap/params/zity'
  1209. fi
  1210. if test -f 'lyap/patchlevel.h' -a "${1}" != "-c" ; then 
  1211.   echo shar: Will not clobber existing file \"'lyap/patchlevel.h'\"
  1212. else
  1213.   echo shar: Extracting \"'lyap/patchlevel.h'\" \(1183 characters\)
  1214.   sed "s/^X//" >'lyap/patchlevel.h' <<'END_OF_FILE'
  1215. X/*************************************************************************
  1216. X *                                                                       *
  1217. X *  Copyright (c) 1992, 1993 Ronald Joe Record                           *
  1218. X *                                                                       *
  1219. X *  All rights reserved. No part of this program or publication may be   *
  1220. X *  reproduced, transmitted, transcribed, stored in a retrieval system,  *
  1221. X *  or translated into any language or computer language, in any form or *
  1222. X *  by any means, electronic, mechanical, magnetic, optical, chemical,   *
  1223. X *  biological, or otherwise, without the prior written permission of:   *
  1224. X *                                                                       *
  1225. X *      Ronald Joe Record (408) 458-3718                                 *
  1226. X *      212 Owen St., Santa Cruz, California 95062 USA                   *
  1227. X *                                                                       *
  1228. X *************************************************************************/
  1229. X
  1230. X#ifndef PATCHLEVEL_H
  1231. X#define PATCHLEVEL_H
  1232. X
  1233. X#define LYAP_PATCHLEVEL 1
  1234. X
  1235. X#define LYAP_VERSION "@(#) patchlevel.h 9.3 93/08/23"
  1236. X#endif
  1237. END_OF_FILE
  1238.   if test 1183 -ne `wc -c <'lyap/patchlevel.h'`; then
  1239.     echo shar: \"'lyap/patchlevel.h'\" unpacked with wrong size!
  1240.   fi
  1241.   # end of 'lyap/patchlevel.h'
  1242. fi
  1243. if test -f 'lyap/tags' -a "${1}" != "-c" ; then 
  1244.   echo shar: Will not clobber existing file \"'lyap/tags'\"
  1245. else
  1246.   echo shar: Extracting \"'lyap/tags'\" \(2233 characters\)
  1247.   sed "s/^X//" >'lyap/tags' <<'END_OF_FILE'
  1248. XABS    lyap.h    ?^#define ABS(a)    (((a)<0) ? (0-(a)) : (a) )$?
  1249. XCleanup    lyap.c    ?^Cleanup() {$?
  1250. XClear    lyap.c    ?^Clear() $?
  1251. XCreateXorGC    lyap.c    ?^CreateXorGC()$?
  1252. XCycle_frames    lyap.c    ?^Cycle_frames()$?
  1253. XDestroy_frame    lyap.c    ?^Destroy_frame()$?
  1254. XEndRubberBand    lyap.c    ?^void $?
  1255. XGetkey    lyap.c    ?^Getkey(event)$?
  1256. XMax    lyap.h    ?^#define Max(x,y) ((x > y)?x:y)$?
  1257. XMin    lyap.h    ?^#define Min(x,y) ((x < y)?x:y)$?
  1258. XMlyap    lyap.c    ?^main(ac, av)$?
  1259. XRedraw    lyap.c    ?^Redraw() $?
  1260. XSetupCorners    lyap.c    ?^SetupCorners(corners, data)$?
  1261. XStartRubberBand    lyap.c    ?^void $?
  1262. XTrackRubberBand    lyap.c    ?^void $?
  1263. Xcheck_params    lyap.c    ?^check_params(mapnum, parnum)$?
  1264. Xcircle    lyap.c    ?^circle(x, r)            /* sin() hump or sorta lik?
  1265. Xcomplyap    lyap.c    ?^complyap()$?
  1266. Xdcircle    lyap.c    ?^dcircle(x, r)            /* derivative of the "sin?
  1267. Xddoublelog    lyap.c    ?^ddoublelog(x, r)        /* derivative of the doubl?
  1268. Xdleftlog    lyap.c    ?^dleftlog(x, r)            /* derivative of the lef?
  1269. Xdlogistic    lyap.c    ?^dlogistic(x, r)            /* the derivative of lo?
  1270. Xdoublelog    lyap.c    ?^doublelog(x, r)            /* double logistic */$?
  1271. Xdrightlog    lyap.c    ?^drightlog(x, r)            /* derivative of the ri?
  1272. Xfreemem    lyap.c    ?^freemem()$?
  1273. Xgo_back    lyap.c    ?^go_back() $?
  1274. Xgo_down    lyap.c    ?^go_down() $?
  1275. Xgo_init    lyap.c    ?^go_init() $?
  1276. Xinit_canvas    lyap.c    ?^init_canvas()$?
  1277. Xinit_data    lyap.c    ?^init_data()$?
  1278. Xjumpwin    lyap.c    ?^jumpwin()$?
  1279. Xleftlog    lyap.c    ?^leftlog(x, r)            /* left skewed logistic *?
  1280. Xlogistic    lyap.c    ?^logistic(x, r)            /* the familiar logistic?
  1281. Xmain_event    lyap.c    ?^main_event()$?
  1282. Xparseargs    lyap.c    ?^parseargs(ac, av)$?
  1283. Xprint_help    lyap.c    ?^print_help() $?
  1284. Xprint_values    lyap.c    ?^print_values() $?
  1285. Xrecalc    lyap.c    ?^recalc() $?
  1286. Xredisplay    lyap.c    ?^void $?
  1287. Xredraw    lyap.c    ?^redraw(exparray, index, cont)$?
  1288. Xresize    lyap.c    ?^resize()$?
  1289. Xrestor_params    lyap.c    ?^restor_params() $?
  1290. Xrestor_picture    lyap.c    ?^restor_picture() {$?
  1291. Xrightlog    lyap.c    ?^rightlog(x, r)            /* right skewed logistic?
  1292. Xsave_to_file    lyap.c    ?^save_to_file() $?
  1293. Xsendpoint    lyap.c    ?^sendpoint(expo)$?
  1294. Xset_new_params    lyap.c    ?^set_new_params(w, data)$?
  1295. Xsetforcing    lyap.c    ?^setforcing()$?
  1296. Xsetupmem    lyap.c    ?^setupmem()$?
  1297. Xshow_defaults    lyap.c    ?^show_defaults() $?
  1298. Xstore_to_file    lyap.c    ?^store_to_file() $?
  1299. Xusage    lyap.c    ?^usage()$?
  1300. END_OF_FILE
  1301.   if test 2233 -ne `wc -c <'lyap/tags'`; then
  1302.     echo shar: \"'lyap/tags'\" unpacked with wrong size!
  1303.   fi
  1304.   # end of 'lyap/tags'
  1305. fi
  1306. echo shar: End of archive 3 \(of 3\).
  1307. cp /dev/null ark3isdone
  1308. MISSING=""
  1309. for I in 1 2 3 ; do
  1310.     if test ! -f ark${I}isdone ; then
  1311.     MISSING="${MISSING} ${I}"
  1312.     fi
  1313. done
  1314. if test "${MISSING}" = "" ; then
  1315.     echo You have unpacked all 3 archives.
  1316.     rm -f ark[1-9]isdone
  1317. else
  1318.     echo You still must unpack the following archives:
  1319.     echo "        " ${MISSING}
  1320. fi
  1321. exit 0
  1322. exit 0 # Just in case...
  1323. -- 
  1324.   // chris@Sterling.COM           | Send comp.sources.x submissions to:
  1325. \X/  Amiga - The only way to fly! |    sources-x@sterling.com
  1326.  "It's intuitively obvious to the |
  1327.   most casual observer..."        | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
  1328.