Ignore:
Timestamp:
06/21/13 17:08:18 (11 years ago)
Author:
lyard
Message:
added correct checksum calculation for compressed fits reader (zfits)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Mars/mcore/fits.h

    r16847 r16882  
    758758                clear(rdstate()|ios::badbit);
    759759    }
    760     uint8_t ReadRow(size_t row)
    761     {
    762         // For the checksum we need everything to be correctly aligned
    763         const uint8_t offset = (row*fTable.bytes_per_row)%4;
    764 
    765         auto ib = fBufferRow.begin();
    766         auto ie = fBufferRow.end();
     760
     761    void ZeroBufferForChecksum(vector<char>& vec, const uint64_t extraZeros=0)
     762    {
     763        auto ib = vec.begin();
     764        auto ie = vec.end();
     765
    767766        *ib++ = 0;
    768767        *ib++ = 0;
     
    770769        *ib   = 0;
    771770
    772         *--ie = 0;
    773         *--ie = 0;
    774         *--ie = 0;
    775         *--ie = 0;
    776         *--ie = 0;
    777         *--ie = 0;
    778         *--ie = 0;
    779         *--ie = 0;
     771        for (uint64_t i=0;i<extraZeros+8;i++)
     772            *--ie = 0;
     773    }
     774
     775    uint8_t ReadRow(size_t row)
     776    {
     777        // For the checksum we need everything to be correctly aligned
     778        const uint8_t offset = (row*fTable.bytes_per_row)%4;
     779
     780        ZeroBufferForChecksum(fBufferRow);
    780781
    781782        StageRow(row, fBufferRow.data()+offset);
Note: See TracChangeset for help on using the changeset viewer.