int StringCalculator::add(const std::string & numbersSequence) const {
  return add(extractNumbers(numbersSequence));
}
Ejemplo n.º 2
0
int main(int argc, char** argv) {
	// process the command-line options
	checkOptions(options, argc, argv);
	HumdrumFile infile;

	if (options.getArgCount() < 1) {
			infile.read(cin);
	} else {
			infile.read(options.getArg(1));
	}

	if (field <= 0) { // field counter starts at 1
			field = findBestField(infile);
	}
	if (field > infile.getMaxTracks()) {
			field = infile.getMaxTracks();
	}

	vector<Datum>  data;
	extractNumbers(infile, field, data);

	if (inputQ) {
			printRawNumbers(data, fullQ);
	}

	double mean;
	double sd;



	if (meanQ) {
			mean = myMean;
	} else {
			mean = getMean(data);
	}

	if (sdQ) {
			sd = mySd;
	} else {
			if (sampleQ) {
				sd = getSampleSD(mean, data);
			} else {
				sd = getStandardDeviation(mean, data);
			}
	}


	if (statQ) {
			cout << "Mean:\t" << mean << "\n";
			cout << "SD:\t" << sd << "\n";
	}
	if (inputQ) {
			exit(0);
	}
	if (statQ && !rawQ) {
			exit(0);
	}

	adjustData(data, mean, sd, reverseQ);

	if (rawQ) {
			printRawNumbers(data, fullQ);
			exit(0);
	} else if (replaceQ) {
			printDataReplace(data, field, infile, mean, sd);
	} else if (prependQ) {
			printDataPrepend(data, field, infile, mean, sd);
	} else if (appendQ) {
			printDataAppend(data, field, infile, mean, sd);
	} else {
			printDataSingle(data, field, infile, mean, sd);
	}

	return 0;
}