- if (_size == 1) {
- PrintOne(stream, vec[0], myname, mydesc, myprecision, myflags);
- } else {
- if (myflags & total)
- PrintOne(stream, mytotal, myname, mydesc, myprecision, myflags);
-
- if (myflags & dist) {
- ccprintf(stream, "%s.start_dist\n", myname);
- for (int i = 0; i < _size; ++i) {
- string subname, subdesc;
- subname = to_string(i);
- if (mysubnames) {
- if (!subname.empty()) {
- subname = (*mysubnames)[i];
- }
- }
- if (mysubdescs) {
- subdesc = (*mysubdescs)[i];
- }
- if (!(myflags & (pdf | cdf))) {
- PrintOne(stream, vec[i], subname, subdesc, myprecision,
- myflags | __substat);
- } else {
- if (_total) {
- _pdf = vec[i] / _total;
- _cdf += _pdf;
- } else {
- _pdf = _cdf = NAN;
- }
- if (!(myflags & cdf)) {
- PrintOne(stream, vec[i], subname, subdesc, myprecision,
- myflags | __substat, _pdf);
- } else {
- PrintOne(stream, vec[i], subname, subdesc, myprecision,
- myflags | __substat, _pdf, _cdf);
- }
- }
- }
- ccprintf(stream, "%s.end_dist\n", myname);
- } else {
- for (int i = 0; i < _size; ++i) {
- string subname;
- if (mysubnames) {
- subname = (*mysubnames)[i];
- if (subname.empty())
- continue;
- } else {
- subname = to_string(i);
- }
-
- string name = myname + NAMESEP + subname;
- if (!(myflags & pdf)) {
- PrintOne(stream, vec[i], name, mydesc, myprecision,
- myflags);
- } else {
- if (_total) {
- _pdf = vec[i] / _total;
- _cdf += _pdf;
- } else {
- _pdf = _cdf = NAN;
- }
- PrintOne(stream, vec[i], name, mydesc, myprecision,
- myflags, _pdf, _cdf);
- }
- }
- }