|
|
1.1 ! root 1: /* ! 2: * ! 3: * An interval list used to map matrix elements into integers in the range 0 to ! 4: * 254 representing shades of gray on a PostScript printer. The list can be given ! 5: * using the -i option or can be set in the optional header that can preceed each ! 6: * matrix. The list should be a comma or space separated list that looks like, ! 7: * ! 8: * num1,num2, ... ,numn ! 9: * ! 10: * where each num is a floating point number. The list must be given in increasing ! 11: * numerical order. The n numbers in the list partion the real line into 2n+1 ! 12: * regions given by, ! 13: * ! 14: * region1 element < num1 ! 15: * region2 element = num1 ! 16: * region3 element < num2 ! 17: * region4 element = num3 ! 18: * . . ! 19: * . . ! 20: * . . ! 21: * region2n element = numn ! 22: * region2n+1 element > numn ! 23: * ! 24: * Every number in a given region is mapped into an integer in the range 0 to 254 ! 25: * and that number, when displayed on a PostScript printer using the image operator, ! 26: * prints as a square filled with a gray scale that reflects the integer that was ! 27: * chosen. 0 maps to black and 255 white (that's why 255 is normally omitted). ! 28: * ! 29: * The shades of gray chosen by the program are normally generated automatically, ! 30: * but can be reassigned using the -g option or by including a grayscale line in ! 31: * the optional header. The grayscale list is comma or space separated list of ! 32: * integers between 0 and 255 that's used to map individual regions into arbitray ! 33: * shade of gray, thus overriding the default choice made in the program. The list ! 34: * should look like, ! 35: * ! 36: * color1,color2, ... ,color2n+1 ! 37: * ! 38: * where color1 applies to region1 and color2n+1 applies to region2n+1. If less ! 39: * than 2n+1 numbers are given the default assignments will be used for the missing ! 40: * regions. Each color must be an integer in the range 0 to 255. ! 41: * ! 42: * The default interval list is given below. The default grayscale maps 254 (almost ! 43: * white) into the first region and 0 (black) into the last. ! 44: * ! 45: */ ! 46: ! 47: #define DFLTILIST "-1,0,1" ! 48: ! 49: /* ! 50: * ! 51: * The active interval list is built from an interval string and stored in an array ! 52: * whose elements are of type Ilist. ! 53: * ! 54: */ ! 55: ! 56: typedef struct { ! 57: double val; /* only valid in kind is ENDPOINT */ ! 58: int color; /* gray scale color */ ! 59: long count; /* statistics for each region */ ! 60: } Ilist; ! 61: ! 62: /* ! 63: * ! 64: * Non-integer function declarations. ! 65: * ! 66: */ ! 67: ! 68: char *savestring(); ! 69:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.