Changeset 38986 for trunk/Ohana/src/opihi/cmd.data
- Timestamp:
- Oct 27, 2015, 4:49:06 PM (11 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 5 edited
-
. (modified) (1 prop)
-
src/opihi/cmd.data/box.c (modified) (3 diffs)
-
src/opihi/cmd.data/device.c (modified) (2 diffs)
-
src/opihi/cmd.data/read_vectors.c (modified) (1 diff)
-
src/opihi/cmd.data/uniq.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
-
Property svn:mergeinfo
set to
/branches/eam_branches/ipp-20150625/Ohana merged eligible
-
Property svn:mergeinfo
set to
-
trunk/Ohana/src/opihi/cmd.data/box.c
r34749 r38986 48 48 if (strlen (graphmode.ticks) != 4) { goto usage; } 49 49 for (i = 0; i < strlen (graphmode.ticks); i++) { 50 if ((graphmode.ticks[i] != '0') && (graphmode.ticks[i] != '1') && (graphmode.ticks[i] != '2') ) { goto usage; }50 if ((graphmode.ticks[i] != '0') && (graphmode.ticks[i] != '1') && (graphmode.ticks[i] != '2') && (graphmode.ticks[i] != '3')) { goto usage; } 51 51 } 52 52 } … … 139 139 remove_argument (N, &argc, argv); 140 140 graphmode.padYp = atof(argv[N]); 141 remove_argument (N, &argc, argv); 142 } 143 144 if ((N = get_argument (argc, argv, "-fminor"))) { 145 remove_argument (N, &argc, argv); 146 graphmode.fMinorXm = atof(argv[N]); 147 graphmode.fMinorXp = atof(argv[N]); 148 graphmode.fMinorYm = atof(argv[N]); 149 graphmode.fMinorYp = atof(argv[N]); 150 remove_argument (N, &argc, argv); 151 } 152 if ((N = get_argument (argc, argv, "-xfminor"))) { 153 remove_argument (N, &argc, argv); 154 graphmode.fMinorXm = atof(argv[N]); 155 remove_argument (N, &argc, argv); 156 } 157 if ((N = get_argument (argc, argv, "+xfminor"))) { 158 remove_argument (N, &argc, argv); 159 graphmode.fMinorXp = atof(argv[N]); 160 remove_argument (N, &argc, argv); 161 } 162 if ((N = get_argument (argc, argv, "-yfminor"))) { 163 remove_argument (N, &argc, argv); 164 graphmode.fMinorYm = atof(argv[N]); 165 remove_argument (N, &argc, argv); 166 } 167 if ((N = get_argument (argc, argv, "+yfminor"))) { 168 remove_argument (N, &argc, argv); 169 graphmode.fMinorYp = atof(argv[N]); 170 remove_argument (N, &argc, argv); 171 } 172 173 if ((N = get_argument (argc, argv, "-flabel"))) { 174 remove_argument (N, &argc, argv); 175 graphmode.fLabelRangeXm = atof(argv[N]); 176 graphmode.fLabelRangeXp = atof(argv[N]); 177 graphmode.fLabelRangeYm = atof(argv[N]); 178 graphmode.fLabelRangeYp = atof(argv[N]); 179 remove_argument (N, &argc, argv); 180 } 181 if ((N = get_argument (argc, argv, "-xflabel"))) { 182 remove_argument (N, &argc, argv); 183 graphmode.fLabelRangeXm = atof(argv[N]); 184 remove_argument (N, &argc, argv); 185 } 186 if ((N = get_argument (argc, argv, "+xflabel"))) { 187 remove_argument (N, &argc, argv); 188 graphmode.fLabelRangeXp = atof(argv[N]); 189 remove_argument (N, &argc, argv); 190 } 191 if ((N = get_argument (argc, argv, "-yflabel"))) { 192 remove_argument (N, &argc, argv); 193 graphmode.fLabelRangeYm = atof(argv[N]); 194 remove_argument (N, &argc, argv); 195 } 196 if ((N = get_argument (argc, argv, "+yflabel"))) { 197 remove_argument (N, &argc, argv); 198 graphmode.fLabelRangeYp = atof(argv[N]); 141 199 remove_argument (N, &argc, argv); 142 200 } … … 174 232 gprint (GP_ERR, " alternatively, set each axis independently with:\n"); 175 233 gprint (GP_ERR, " -xpad, -ypad, +xpad, +ypad\n"); 234 gprint (GP_ERR, " \n"); 235 gprint (GP_ERR, " -fminor : set the number of minor ticks per major (all axes)\n"); 236 gprint (GP_ERR, " alternatively, set each axis independently with:\n"); 237 gprint (GP_ERR, " -xfminor, -yfminor, +xfminor, +yfminor\n"); 238 gprint (GP_ERR, " \n"); 239 gprint (GP_ERR, " -flabel : set the fraction of axis over which major ticks have labels (all axes)\n"); 240 gprint (GP_ERR, " alternatively, set each axis independently with:\n"); 241 gprint (GP_ERR, " -xflabel, -yflabel, +xflabel, +yflabel\n"); 176 242 177 243 return (FALSE); -
trunk/Ohana/src/opihi/cmd.data/device.c
r14590 r38986 6 6 char *name;; 7 7 /* set / get current graphics device */ 8 9 int QUIET = FALSE; 10 if ((N = get_argument (argc, argv, "-q"))) { 11 remove_argument (N, &argc, argv); 12 QUIET = TRUE; 13 } 8 14 9 15 name = NULL; … … 23 29 if (!GetGraph (NULL, &kapa, name)) return (FALSE); 24 30 } 25 gprint (GP_ERR, "kapa %s\n", name);31 if (!QUIET) gprint (GP_ERR, "kapa %s\n", name); 26 32 27 33 return (TRUE); -
trunk/Ohana/src/opihi/cmd.data/read_vectors.c
r38553 r38986 511 511 if (!gfits_fread_ftable_data (f, &table, padIfShort)) ESCAPE ("error reading table for extension %d\n", Nextend); 512 512 } else { 513 if (!gfits_fread_ftable_range (f, padIfShort, &table, start, Nrows)) ESCAPE ("error reading table for extension %d\n", Nextend); 513 // arg3 (FALSE) : seek to this segment start 514 if (!gfits_fread_ftable_range (f, padIfShort, FALSE, &table, start, Nrows)) ESCAPE ("error reading table for extension %d\n", Nextend); 514 515 } 515 516 -
trunk/Ohana/src/opihi/cmd.data/uniq.c
r20936 r38986 1 1 # include "data.h" 2 // NOTE: if there are only a few uniq values, the old algorithm is not bad. 3 // for 10000 uniq values, 30M points take ~20sec in the new algorithm, 4 // 3M points takess 45 sec in the old method. 2 5 3 6 int uniq (int argc, char **argv) { 4 7 5 int Nnew, i, j, found;8 int Nnew, i, N; 6 9 Vector *ivec, *ovec; 7 10 11 Vector *cvec = NULL; 12 if ((N = get_argument (argc, argv, "-c"))) { 13 remove_argument (N, &argc, argv); 14 if ((cvec = SelectVector (argv[N], ANYVECTOR, TRUE)) == NULL) { 15 gprint (GP_ERR, "invalid vector %s\n", argv[N]); 16 return FALSE; 17 } 18 remove_argument (N, &argc, argv); 19 } 20 8 21 if (argc != 3) { 9 gprint (GP_ERR, "USAGE: uniq (in) (out) \n");22 gprint (GP_ERR, "USAGE: uniq (in) (out) -c count\n"); 10 23 return (FALSE); 11 24 } … … 16 29 /* allocate the maximum possible needed */ 17 30 ResetVector (ovec, ivec->type, ivec->Nelements); 31 if (cvec) { 32 ResetVector (cvec, OPIHI_INT, ivec->Nelements); 33 } 18 34 19 35 Nnew = 0; 20 36 21 37 if (ivec->type == OPIHI_FLT) { 22 opihi_flt *v1 = ivec[0].elements.Flt; 23 for (i = 0; i < ivec[0].Nelements; i++, v1++) { 24 opihi_flt *v2 = ovec[0].elements.Flt; 25 found = FALSE; 26 for (j = 0; !found && (j < Nnew); j++, v2++) { 27 if (*v1 == *v2) found = TRUE; 38 // copy the input data to a temporary array to avoid damaging it with sort 39 opihi_flt *indata = NULL; 40 ALLOCATE (indata, opihi_flt, ivec[0].Nelements); 41 memcpy (indata, ivec->elements.Flt, ivec[0].Nelements*sizeof(opihi_flt)); 42 43 dsort (indata, ivec->Nelements); 44 45 Nnew = 0; 46 opihi_flt *vtgt = ovec[0].elements.Flt; 47 48 opihi_flt *vsrc = indata; 49 50 for (i = 0; i < ivec->Nelements; Nnew++) { 51 vtgt[Nnew] = *vsrc; 52 int Ndup = 0; 53 opihi_flt lastValue = *vsrc; 54 while ((i < ivec->Nelements) && (*vsrc == lastValue)) { 55 i++; 56 vsrc ++; 57 Ndup ++; 28 58 } 29 if (!found) { 30 ovec[0].elements.Flt[Nnew] = *v1; 31 Nnew ++; 59 if (cvec) { 60 cvec->elements.Int[Nnew] = Ndup; 32 61 } 33 62 } 63 free (indata); 34 64 } else { 35 opihi_int *v1 = ivec[0].elements.Int; 36 for (i = 0; i < ivec[0].Nelements; i++, v1++) { 37 opihi_int *v2 = ovec[0].elements.Int; 38 found = FALSE; 39 for (j = 0; !found && (j < Nnew); j++, v2++) { 40 if (*v1 == *v2) found = TRUE; 65 // copy the input data to a temporary array to avoid damaging it with sort 66 opihi_int *indata = NULL; 67 ALLOCATE (indata, opihi_int, ivec[0].Nelements); 68 memcpy (indata, ivec->elements.Int, ivec[0].Nelements*sizeof(opihi_int)); 69 70 isort (indata, ivec->Nelements); 71 72 Nnew = 0; 73 opihi_int *vtgt = ovec[0].elements.Int; 74 75 opihi_int *vsrc = indata; 76 77 for (i = 0; i < ivec->Nelements; Nnew++) { 78 vtgt[Nnew] = *vsrc; 79 int Ndup = 0; 80 opihi_int lastValue = *vsrc; 81 while ((i < ivec->Nelements) && (*vsrc == lastValue)) { 82 i++; 83 vsrc ++; 84 Ndup ++; 41 85 } 42 if (!found) { 43 ovec[0].elements.Int[Nnew] = *v1; 44 Nnew ++; 86 if (cvec) { 87 cvec->elements.Int[Nnew] = Ndup; 45 88 } 46 89 } 90 free (indata); 47 91 } 48 92 49 93 // free up extra memory 50 94 ResetVector (ovec, ivec->type, Nnew); 95 if (cvec) ResetVector (cvec, OPIHI_INT, Nnew); 51 96 52 97 return (TRUE);
Note:
See TracChangeset
for help on using the changeset viewer.
