Changeset 28107 for trunk/ippTools/src/pxtools.c
- Timestamp:
- May 26, 2010, 11:05:44 AM (16 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/pxtools.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/pxtools.c
r28091 r28107 59 59 60 60 if (!version1) { 61 psStringAppend(&out, "%s", version2);62 return(out);61 psStringAppend(&out, "%s", version2); 62 return(out); 63 63 } 64 64 if (!version2) { 65 psStringAppend(&out, "%s", version1);66 return(out);67 } 68 65 psStringAppend(&out, "%s", version1); 66 return(out); 67 } 68 69 69 if (strchr(version1,'M')) { 70 psStringSubstitute(&version1,"M","");71 mod1 = true;70 psStringSubstitute(&version1,"M",""); 71 mod1 = true; 72 72 } 73 73 if (strchr(version2,'M')) { 74 psStringSubstitute(&version2,"M","");75 mod2 = true;74 psStringSubstitute(&version2,"M",""); 75 mod2 = true; 76 76 } 77 77 … … 80 80 81 81 if (num1 >= num2) { 82 numO = num1;82 numO = num1; 83 83 } 84 84 else { 85 numO = num2;86 } 87 85 numO = num2; 86 } 87 88 88 psStringAppend(&out,"%" PRId32,numO); 89 89 if (mod1 || mod2) { 90 psStringAppend(&out,"M");90 psStringAppend(&out,"M"); 91 91 } 92 92 return(out); … … 94 94 95 95 bool pxCoalesceRunStatus(pxConfig *config, const psString dbQFile, psS64 stage_id, psString *software_ver, 96 psS64 *maskfrac_npix, psF32 *maskfrac_static, psF32 *maskfrac_dynamic,97 psF32 *maskfrac_magic, psF32 *maskfrac_advisory) {96 psS64 *maskfrac_npix, psF32 *maskfrac_static, psF32 *maskfrac_dynamic, 97 psF32 *maskfrac_magic, psF32 *maskfrac_advisory) { 98 98 psString query = pxDataGet(dbQFile); 99 99 /* psString text_id = NULL; */ … … 102 102 /* psFree(text_id); */ 103 103 if (!p_psDBRunQueryF(config->dbh, query, stage_id)) { 104 psError(PS_ERR_UNKNOWN, false, "database error");105 psFree(query);106 return(false);104 psError(PS_ERR_UNKNOWN, false, "database error"); 105 psFree(query); 106 return(false); 107 107 } 108 108 psFree(query); 109 109 psArray *output = p_psDBFetchResult(config->dbh); 110 110 if (!output) { 111 psError(PS_ERR_UNKNOWN, false, "database error");112 return(false);113 } 114 111 psError(PS_ERR_UNKNOWN, false, "database error"); 112 return(false); 113 } 114 115 115 for (long i = 0; i < psArrayLength(output); i++) { 116 psMetadata *row = output->data[i]; 117 118 psS32 this_npix = psMetadataLookupS32(NULL, row, "maskfrac_npix"); 119 psF32 this_static = psMetadataLookupF32(NULL, row, "maskfrac_static"); 120 psF32 this_dynamic = psMetadataLookupF32(NULL, row, "maskfrac_dynamic"); 121 psF32 this_magic = psMetadataLookupF32(NULL, row, "maskfrac_magic"); 122 psF32 this_advisory = psMetadataLookupF32(NULL, row, "maskfrac_advisory"); 123 psString this_version = psMetadataLookupStr(NULL, row, "software_ver"); 124 125 *software_ver = pxMergeCodeVersions(*software_ver,this_version); 116 psMetadata *row = output->data[i]; 117 118 psS32 this_npix = psMetadataLookupS32(NULL, row, "maskfrac_npix"); 119 psF32 this_static = psMetadataLookupF32(NULL, row, "maskfrac_static"); 120 psF32 this_dynamic = psMetadataLookupF32(NULL, row, "maskfrac_dynamic"); 121 psF32 this_magic = psMetadataLookupF32(NULL, row, "maskfrac_magic"); 122 psF32 this_advisory = psMetadataLookupF32(NULL, row, "maskfrac_advisory"); 123 psString this_version = psMetadataLookupStr(NULL, row, "software_ver"); 124 125 psTrace("pxtools", 3, "Mask stats: %d %f %f %f %f %s\n", 126 this_npix, this_static, this_dynamic, this_magic, this_advisory, this_version); 127 128 *software_ver = pxMergeCodeVersions(*software_ver,this_version); 126 129 /* printf("%ld : %d %f %f %f %f <-> %ld %f %f %f %f\n",i,this_npix,this_static,this_dynamic,this_magic,this_advisory, */ 127 /* *maskfrac_npix,*maskfrac_static,*maskfrac_dynamic,*maskfrac_magic,*maskfrac_advisory); */128 if (this_npix > 0) {129 *maskfrac_static = ((*maskfrac_static * *maskfrac_npix) + (this_npix * this_static)) / (this_npix + *maskfrac_npix);130 *maskfrac_dynamic = ((*maskfrac_dynamic * *maskfrac_npix) + (this_npix * this_dynamic)) / (this_npix + *maskfrac_npix);131 *maskfrac_magic = ((*maskfrac_magic * *maskfrac_npix) + (this_npix * this_magic)) / (this_npix + *maskfrac_npix);132 *maskfrac_advisory = ((*maskfrac_advisory * *maskfrac_npix) + (this_npix * this_advisory)) / (this_npix + *maskfrac_npix);133 *maskfrac_npix += this_npix;134 }130 /* *maskfrac_npix,*maskfrac_static,*maskfrac_dynamic,*maskfrac_magic,*maskfrac_advisory); */ 131 if (this_npix > 0) { 132 *maskfrac_static = ((*maskfrac_static * *maskfrac_npix) + (this_npix * this_static)) / (this_npix + *maskfrac_npix); 133 *maskfrac_dynamic = ((*maskfrac_dynamic * *maskfrac_npix) + (this_npix * this_dynamic)) / (this_npix + *maskfrac_npix); 134 *maskfrac_magic = ((*maskfrac_magic * *maskfrac_npix) + (this_npix * this_magic)) / (this_npix + *maskfrac_npix); 135 *maskfrac_advisory = ((*maskfrac_advisory * *maskfrac_npix) + (this_npix * this_advisory)) / (this_npix + *maskfrac_npix); 136 *maskfrac_npix += this_npix; 137 } 135 138 } 136 139 psFree(output); … … 139 142 140 143 bool pxSetRunSoftware(pxConfig *config, const psString tableName, const psString stage_id_name, const psS64 stage_id, 141 psString software_ver) {144 psString software_ver) { 142 145 char *query = "UPDATE %s SET software_ver = '%s' WHERE %s = %" PRId64; 143 146 /* printf(query,tableName,software_ver,stage_id_name,stage_id); */ 144 147 if (!p_psDBRunQueryF(config->dbh,query,tableName,software_ver,stage_id_name,stage_id)) { 145 psError(PS_ERR_UNKNOWN, false,146 "failed to set software version for %s %" PRId64,stage_id_name,stage_id);147 return(false);148 } 149 148 psError(PS_ERR_UNKNOWN, false, 149 "failed to set software version for %s %" PRId64,stage_id_name,stage_id); 150 return(false); 151 } 152 150 153 return(true); 151 154 } 152 155 153 156 bool pxSetRunMaskfrac(pxConfig *config, const psString tableName, const psString stage_id_name, const psS64 stage_id, 154 psS64 maskfrac_npix, psF32 maskfrac_static, psF32 maskfrac_dynamic,155 psF32 maskfrac_magic, psF32 maskfrac_advisory) {157 psS64 maskfrac_npix, psF32 maskfrac_static, psF32 maskfrac_dynamic, 158 psF32 maskfrac_magic, psF32 maskfrac_advisory) { 156 159 char *query = "UPDATE %s SET maskfrac_npix = %f, maskfrac_static = %f, maskfrac_dynamic = %f, maskfrac_magic = %f, maskfrac_advisory = %f WHERE %s = %" PRId64; 157 160 if (!p_psDBRunQueryF(config->dbh,query,tableName,(float) maskfrac_npix,maskfrac_static, 158 maskfrac_dynamic, maskfrac_magic,maskfrac_advisory,stage_id_name,stage_id)) {159 psError(PS_ERR_UNKNOWN, false,160 "failed to set maskfrac stats for %s %" PRId64,stage_id_name,stage_id);161 return(false);162 } 163 161 maskfrac_dynamic, maskfrac_magic,maskfrac_advisory,stage_id_name,stage_id)) { 162 psError(PS_ERR_UNKNOWN, false, 163 "failed to set maskfrac stats for %s %" PRId64,stage_id_name,stage_id); 164 return(false); 165 } 166 164 167 165 168 … … 168 171 169 172 bool pxCamSetRunMaskfrac(pxConfig *config, const psString tableName, const psString stage_id_name, const psS64 stage_id, 170 psS64 maskfrac_ref_npix, psF32 maskfrac_ref_static, psF32 maskfrac_ref_dynamic,171 psF32 maskfrac_ref_magic, psF32 maskfrac_ref_advisory,172 psS64 maskfrac_max_npix, psF32 maskfrac_max_static, psF32 maskfrac_max_dynamic,173 psF32 maskfrac_max_magic, psF32 maskfrac_max_advisory) {173 psS64 maskfrac_ref_npix, psF32 maskfrac_ref_static, psF32 maskfrac_ref_dynamic, 174 psF32 maskfrac_ref_magic, psF32 maskfrac_ref_advisory, 175 psS64 maskfrac_max_npix, psF32 maskfrac_max_static, psF32 maskfrac_max_dynamic, 176 psF32 maskfrac_max_magic, psF32 maskfrac_max_advisory) { 174 177 char *query = "UPDATE %s SET maskfrac_ref_npix = %f, maskfrac_ref_static = %f, maskfrac_ref_dynamic = %f, maskfrac_ref_magic = %f, maskfrac_ref_advisory = %f, maskfrac_max_npix = %f, maskfrac_max_static = %f, maskfrac_max_dynamic = %f, maskfrac_max_magic = %f, maskfrac_max_advisory = %f WHERE %s = %" PRId64; 175 178 if (!p_psDBRunQueryF(config->dbh,query,tableName,(float) maskfrac_ref_npix,maskfrac_ref_static, 176 maskfrac_ref_dynamic, maskfrac_ref_magic,maskfrac_ref_advisory,177 (float) maskfrac_max_npix,maskfrac_max_static,178 maskfrac_max_dynamic, maskfrac_max_magic,maskfrac_max_advisory,179 stage_id_name,stage_id)) {179 maskfrac_ref_dynamic, maskfrac_ref_magic,maskfrac_ref_advisory, 180 (float) maskfrac_max_npix,maskfrac_max_static, 181 maskfrac_max_dynamic, maskfrac_max_magic,maskfrac_max_advisory, 182 stage_id_name,stage_id)) { 180 183 psError(PS_ERR_UNKNOWN, false, 181 "failed to set maskfrac stats for %s %" PRId64,stage_id_name,stage_id);184 "failed to set maskfrac stats for %s %" PRId64,stage_id_name,stage_id); 182 185 return(false); 183 186 } 184 187 185 188 186 189 … … 293 296 char *comma = ","; 294 297 295 # define addColumn(_tab, _val) \296 do { \297 if (_val) {\298 psStringAppend(pQuery, "%s %s.%s = '%s'", separator, _tab, #_val, _val); \299 separator = comma;\300 }\298 # define addColumn(_tab, _val) \ 299 do { \ 300 if (_val) { \ 301 psStringAppend(pQuery, "%s %s.%s = '%s'", separator, _tab, #_val, _val); \ 302 separator = comma; \ 303 } \ 301 304 } while (0) 302 305 … … 436 439 if (import_version && strcmp(import_version, schema_version)) { 437 440 psError(PS_ERR_UNKNOWN, true, "input file schema_version: %s does not match data base: %s", 438 import_version, schema_version);441 import_version, schema_version); 439 442 return false; 440 443 } else if (!import_version) {
Note:
See TracChangeset
for help on using the changeset viewer.
