static void fillPpmBins(FILE * const ifP, unsigned int const cols, unsigned int const rows, xelval const maxval, int const format, bool const colorWanted[3], bool const verbose, xelval const startval, xelval const endval, unsigned int const histWidth, unsigned int ** const hist) { /*---------------------------------------------------------------------------- For each wanted color component, given by colorWanted[], hist[color] is the histogram. Each histogram as 'histWidth' bins; we ignore color component values less than 'startval' and greater than or equal to 'endval' and spread the rest evenly across the 'histWidth' bins. We get the color component values from the PNM image on *ifP, which is positioned to the raster, whose format is described by 'cols', 'rows', 'maxval', and 'format'. -----------------------------------------------------------------------------*/ pixel * pixrow; unsigned int row; pixrow = ppm_allocrow(cols); if (verbose) pm_message("making histogram..."); for (row = 0; row < rows; ++row) { unsigned int col; ppm_readppmrow(ifP, pixrow, cols, maxval, format); for (col = 0; col < cols; ++col) { if (colorWanted[WANT_RED]) countComp(PPM_GETR(pixrow[col]), startval, endval, histWidth, hist[WANT_RED]); if (colorWanted[WANT_GRN]) countComp(PPM_GETG(pixrow[col]), startval, endval, histWidth, hist[WANT_GRN]); if (colorWanted[WANT_BLU]) countComp(PPM_GETB(pixrow[col]), startval, endval, histWidth, hist[WANT_BLU]); } } ppm_freerow(pixrow); }
int main(int argc, const char * argv [] ) { std::ifstream file("/Users/JamesGuo/git_master/Algorithms/QuickSort.txt"); std::string str; int IntegerArray[100000]; int value; int i; unsigned long long int result; while (std::getline(file, str)) { value = atoi(str.c_str()); IntegerArray[i] = value; i++; } result = countComp(IntegerArray, 0, 99999); std::cout << result << std::endl; return 0; }
chemReductionGIA::chemReductionGIA(BaseLib::OrderedMap<std::string, ogsChem::ChemComp*> & list_chemComp, std::vector<ogsChem::chemReactionEq*> & list_eq_reactions, std::vector<ogsChem::chemReactionKin*> & list_kin_reactions, ogsChem::chemActivityModelAbstract *a ) : _list_eq_reactions(list_eq_reactions), _list_kin_reactions(list_kin_reactions), _activity_model(a) { // by default, the class is not yet initialized isInitialized = false; if ( list_chemComp.size() > 0 && (_list_eq_reactions.size() > 0 || _list_kin_reactions.size() > 0) ) { // if there are reactions. // cout how many mobile and how many immobile components countComp(list_chemComp); // make stoichiometric matrix buildStoi(list_chemComp, list_eq_reactions, list_kin_reactions); // calculate the reduction parameters update_reductionScheme(); // get the log k values read_logK(list_eq_reactions); // flip the initialization flag isInitialized = true; } }
static void pgmHist(FILE * const ifP, int const cols, int const rows, xelval const maxval, int const format, bool const dots, bool const no_white, bool const no_black, bool const verbose, xelval const startval, xelval const endval, unsigned int const histWidth, unsigned int const histHeight, bool const clipSpec, unsigned int const clipCount) { gray * grayrow; bit ** bits; int i, j; unsigned int * ghist; double vscale; unsigned int hmax; MALLOCARRAY(ghist, histWidth); if (ghist == NULL) pm_error("Not enough memory for histogram array (%u bytes)", histWidth * (unsigned)sizeof(int)); bits = pbm_allocarray(histWidth, histHeight); if (bits == NULL) pm_error("no space for output array (%u bits)", histWidth * histHeight); memset(ghist, 0, histWidth * sizeof(ghist[0])); /* read the pixel values into the histogram arrays */ grayrow = pgm_allocrow(cols); if (verbose) pm_message("making histogram..."); for (i = rows; i > 0; --i) { pgm_readpgmrow (ifP, grayrow, cols, maxval, format); for (j = cols-1; j >= 0; --j) countComp(grayrow[j], startval, endval, histWidth, ghist); } pgm_freerow(grayrow); /* find the highest-valued slot and set the vertical scale value */ if (verbose) pm_message("finding max. slot height..."); if (clipSpec) hmax = clipCount; else hmax = maxSlotCount(ghist, histWidth, no_white, no_black); assert(hmax > 0); if (verbose) pm_message("Done: height = %u", hmax); clipHistogram(ghist, histWidth, hmax); vscale = (double) histHeight / hmax; for (i = 0; i < histWidth; ++i) { int mark = histHeight - (int)(vscale * ghist[i]); for (j = 0; j < mark; ++j) bits[j][i] = PBM_BLACK; if (j < histHeight) bits[j++][i] = PBM_WHITE; for ( ; j < histHeight; ++j) bits[j][i] = dots ? PBM_BLACK : PBM_WHITE; } pbm_writepbm(stdout, bits, histWidth, histHeight, 0); }