Changeset 27435 for trunk/Ohana/src/libfits/table/F_table_format.c
- Timestamp:
- Mar 24, 2010, 11:22:25 AM (16 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/libfits/table/F_table_format.c (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
-
Property svn:mergeinfo
set to
/branches/eam_branches/20091201/Ohana merged eligible /branches/eam_branches/largefiles.20100314/Ohana merged eligible
-
Property svn:mergeinfo
set to
-
trunk/Ohana/src/libfits/table/F_table_format.c
r26384 r27435 3 3 4 4 /***********************/ 5 // get the format of a table column 6 // Nval : number of joined columns 7 // Nbytes : width of column 5 8 int gfits_bintable_format (char *format, char *type, int *Nval, int *Nbytes) { 6 9 … … 119 122 120 123 /** extract a table subset to a vtable ***/ 121 int gfits_table_to_vtable (FTable *ftable, VTable *vtable, int start, int Nkeep) {124 int gfits_table_to_vtable (FTable *ftable, VTable *vtable, off_t start, off_t Nkeep) { 122 125 123 126 /* gfits_table_to_vtable (f, v, 0, Ny - 1) - keep all of table … … 125 128 */ 126 129 127 int i, Nx, Ny;128 129 gfits_scan (ftable[0].header, "NAXIS1", "% d", 1,&Nx);130 gfits_scan (ftable[0].header, "NAXIS2", "% d", 1,&Ny);130 off_t i, Nx, Ny; 131 132 gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx); 133 gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny); 131 134 132 135 if (start + Nkeep > Ny) return (FALSE); … … 134 137 if (Nkeep < 0) return (FALSE); 135 138 136 ALLOCATE (vtable[0].row, int, MAX (1, Nkeep));139 ALLOCATE (vtable[0].row, off_t, MAX (1, Nkeep)); 137 140 ALLOCATE (vtable[0].buffer, char *, MAX (1, Nkeep)); 138 141 for (i = 0; i < Nkeep; i++) { … … 143 146 144 147 vtable[0].header = ftable[0].header; 145 vtable[0]. size = ftable[0].size;148 vtable[0].datasize = ftable[0].datasize; 146 149 vtable[0].Nrow = Nkeep; 147 vtable[0].pad = vtable[0]. size - Nx*Ny;150 vtable[0].pad = vtable[0].datasize - Nx*Ny; 148 151 149 152 return (TRUE); … … 151 154 152 155 /** convert specified rows to vtable */ 153 int gfits_vtable_from_ftable (FTable *ftable, VTable *vtable, int *row, int Nrow) {154 155 int i, N, Nx, Ny;156 157 gfits_scan (ftable[0].header, "NAXIS1", "% d", 1,&Nx);158 gfits_scan (ftable[0].header, "NAXIS2", "% d", 1,&Ny);156 int gfits_vtable_from_ftable (FTable *ftable, VTable *vtable, off_t *row, off_t Nrow) { 157 158 off_t i, N, Nx, Ny; 159 160 gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx); 161 gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny); 159 162 160 163 /* make empty vtable from table */ 161 vtable[0].header = ftable[0].header; /* make this a copy? */162 vtable[0]. size = ftable[0].size;163 vtable[0].pad = vtable[0].size - Nx*Ny;164 vtable[0].Nrow = Ny;164 vtable[0].header = ftable[0].header; /* make this a copy? */ 165 vtable[0].datasize = ftable[0].datasize; 166 vtable[0].pad = vtable[0].datasize - Nx*Ny; 167 vtable[0].Nrow = Ny; 165 168 166 169 /* insert selected rows in vtable (mask rows marked with -1) */ 167 ALLOCATE (vtable[0].row, int, Nrow);170 ALLOCATE (vtable[0].row, off_t, Nrow); 168 171 ALLOCATE (vtable[0].buffer, char *, Nrow); 169 172 for (N = i = 0; i < Nrow; i++) { … … 181 184 char *gfits_table_print (FTable *table,...) { 182 185 183 int i, Nx, Nfields;184 int off, Nchar, Nval, Nbytes;186 off_t Nx, off; 187 int i, Nchar, Nval, Nbytes, Nfields; 185 188 char *line, format[64], field[16], type[16]; 186 189 va_list argp; … … 188 191 va_start (argp, table); 189 192 190 gfits_scan (table[0].header, "NAXIS1", "% d", 1,&Nx);193 gfits_scan (table[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx); 191 194 gfits_scan (table[0].header, "TFIELDS", "%d", 1, &Nfields); 192 195 … … 220 223 // apply table tzero, tscal in situ (from storage to data) 221 224 int gfits_table_scale_data (FTable *ftable) { 222 223 int i, j, n, Nx, Ny, Nfields; 224 int off, Nchar, Nval, Nbytes, status; 225 226 off_t Nx, Ny, off; 227 int i, j, n, Nfields; 228 int Nchar, Nval, Nbytes, status; 225 229 char format[64], field[16], type[16]; 226 230 double tzero, tscale; … … 232 236 off = 0; 233 237 234 gfits_scan (ftable[0].header, "NAXIS1", "% d", 1,&Nx);235 gfits_scan (ftable[0].header, "NAXIS2", "% d", 1,&Ny);238 gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx); 239 gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny); 236 240 gfits_scan (ftable[0].header, "TFIELDS", "%d", 1, &Nfields); 237 241 … … 304 308 int gfits_table_scale_storage (FTable *ftable) { 305 309 306 int i, j, n, Nx, Ny, Nfields; 307 int off, Nchar, Nval, Nbytes, status; 310 off_t Nx, Ny, off; 311 int i, j, n, Nfields; 312 int Nchar, Nval, Nbytes, status; 308 313 char format[64], field[16], type[16]; 309 314 double tzero, tscale; … … 315 320 off = 0; 316 321 317 gfits_scan (ftable[0].header, "NAXIS1", "% d", 1,&Nx);318 gfits_scan (ftable[0].header, "NAXIS2", "% d", 1,&Ny);322 gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx); 323 gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny); 319 324 gfits_scan (ftable[0].header, "TFIELDS", "%d", 1, &Nfields); 320 325
Note:
See TracChangeset
for help on using the changeset viewer.
