Changeset 12726 for trunk


Ignore:
Timestamp:
12/15/11 14:33:53 (13 years ago)
Author:
lyard
Message:
bugfix fitsdump
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/fitsdump.cc

    r12725 r12726  
    535535
    536536template<typename T>
    537 void displayStats(char* array, int numElems)
    538 {
     537void displayStats(char* array, int numElems, ofstream& out)
     538{
     539        if (numElems == 0)
     540        {
     541                out << "Min: 0" << endl;
     542                out << "Max: 0" << endl;
     543                out << "Med: 0" << endl;
     544                out << "Mea: 0" << endl;
     545                return;
     546        }
    539547    sort(reinterpret_cast<T*>(array), &reinterpret_cast<T*>(array)[numElems]);
    540     cout << "Min: " << reinterpret_cast<T*>(array)[0] << endl;
    541     cout << "Max: " << reinterpret_cast<T*>(array)[numElems-1] << endl;
     548    out << "Min: " << reinterpret_cast<T*>(array)[0] << endl;
     549    out << "Max: " << reinterpret_cast<T*>(array)[numElems-1] << endl;
    542550    if (numElems%2 == 0)
    543         cout << "Med: " << (reinterpret_cast<T*>(array)[numElems/2] + reinterpret_cast<T*>(array)[numElems/2+1])/2.f << endl;
     551        out << "Med: " << (reinterpret_cast<T*>(array)[numElems/2] + reinterpret_cast<T*>(array)[numElems/2+1])/2.f << endl;
    544552    else
    545         cout << "Med: " << reinterpret_cast<T*>(array)[numElems/2+1] << endl;
     553        out << "Med: " << reinterpret_cast<T*>(array)[numElems/2+1] << endl;
    546554
    547555    double average = 0;
    548556    for (int i=0;i<numElems;i++)
    549557        average += reinterpret_cast<T*>(array)[i];
    550     cout << "Mea: " << average/(double)numElems << endl;
     558    out << "Mea: " << average/(double)numElems << endl;
    551559
    552560}
     
    633641    auto statsIt = statData.begin();
    634642
    635     auto nameIt = listNamesOnly.begin();
     643    auto nameIt = list.begin();
    636644    for (auto it=columnsData.begin(); it != columnsData.end(); it++, rangesIt++, statsIt++, nameIt++)
    637645    {
    638646        int span = rangesIt->second - rangesIt->first;
    639         cout << *nameIt << ": " << endl;
     647        out << *nameIt << ": " << endl;
    640648        switch (it->first) {
    641649            case 'L':
    642                     displayStats<bool>(*statsIt, numRows*span);
     650                    displayStats<bool>(*statsIt, numRows*span, out);
    643651                    break;
    644652            case 'B':
    645                     displayStats<char>(*statsIt, numRows*span);
     653                    displayStats<char>(*statsIt, numRows*span, out);
    646654                    break;
    647655            case 'I':
    648                     displayStats<int16_t>(*statsIt, numRows*span);
     656                    displayStats<int16_t>(*statsIt, numRows*span, out);
    649657                    break;
    650658            case 'J':
    651                     displayStats<int32_t>(*statsIt, numRows*span);
     659                    displayStats<int32_t>(*statsIt, numRows*span, out);
    652660                    break;
    653661            case 'K':
    654                     displayStats<int64_t>(*statsIt, numRows*span);
     662                    displayStats<int64_t>(*statsIt, numRows*span, out);
    655663                    break;
    656664            case 'E':
    657                     displayStats<float>(*statsIt, numRows*span);
     665                    displayStats<float>(*statsIt, numRows*span, out);
    658666                    break;
    659667            case 'D':
    660                     displayStats<double>(*statsIt, numRows*span);
     668                    displayStats<double>(*statsIt, numRows*span, out);
    661669                    break;
    662670            default:
Note: See TracChangeset for help on using the changeset viewer.